此文章是vip文章,如何查看?  

1,点击链接获取密钥 http://nicethemes.cn/product/view29882.html

2,在下方输入文章查看密钥即可立即查看当前vip文章


OPENSSL、KEYTOOL生成服务器与客户端证二级证书签名

  • 时间:
  • 浏览:
  • 来源:互联网

.证书结构说明:

 

1.我们需要生成的证书根证书:需要三个证书 根证书, 服务器二级证书 ,客户端二级证书.

 关系如下:

 CA--       (ca.crt,ca_keystore)

 -----server  (server_keystore)

 -----client   (tomcat_client.pfx)

2.证书格式,由于服务器是JAVA写的,客户是安罩或者WINDOWS

所以证书,JAVA需要存放在KEYSTORE文件中(java存储格式);而客户端需要存放为CRT证书p12私钥证书格式.

 

.证书生成工具:

 1.证书生成工具需要Openssl 与JAVA的keytool 工具

 

 keytool安装说明:

     安装JAVA JDK环境会带有KEYTOOL工具,文件存放在JAVA安装路径的%JAVA_HOME%/bin;目录中配置环境变量PATH,加入%JAVA_HOME%/bin

 

OPENSSL安装进行说明:

假如安装路径如下:

 openssl安装在D:\OPENSSL   OPENSSL工作目录D:\CA

 

安装OPENSSL完成后需要进行如下简单配置:

   1)建立工作目录下(假如在D:\CA),在CA目录下新建目录 demoCA、demoCA/certs、demoCA/certs 、demoCA/newcerts
2)    在demoCA建立一个空文件 index.txt
3)    在demoCA建立一个文本文件 serial, 没有扩展名,内容是一个合法的16进制数字,例如 0000

4) 配置文件修改: 找到D:\OPENSSL\openssl.cfg作如下修改

 default_days =1000

[policy_match ]

countryName              = optional

stateOrProvinceName   = optional

organizationName      =optional

organizationalUnitName        = optional

commonName                 = supplied

emailAddress               = optional

 

 

 

这样就安装完成。

 

证书生成如下:

1.CMD下进入刚才我们的工作目录 d:\ca

 输入 1.D

      2. CD CA

 

2.    生成CA的自签名证书

openssl req -new -x509 -keyout ca.key -outca.crt -config d:\openssl\openssl.cfg


注意要把自己密码记到。此处密码为123456  注意密码要一致,最后输入keystore按提示可以直接回车表示密码与KEY一致

CA.CRT存放到JAVA格式中,文件名为ca_keystore

keytool -import -v -alias caroot -file ca.crt -storepass 123456-keystore  ca_keystore


3.   
生成server端证书
1)   
生成KeyPair生成密钥对
 keytool -genkey -alias tomcat_server-validity 365 -keyalg RSA -keysize 1024 -keypass 123456  -storepass 123456-keystore server_keystore
  输入common  name时,要和服务器的域名保持一致。此处为192.168.20.104


2)   
生成证书签名请求
keytool -certreq -alias tomcat_server -sigalgMD5withRSA -file tomcat_server.csr -keypass 123456 -storepass 123456 -keystoreserver_keystore 

3)    CA私钥进行签名,也可以到权威机构申请CA签名。
   openssl ca -in tomcat_server.csr-out tomcat_server.crt -cert ca.crt -keyfile ca.key -notext -config    d:\openssl\openssl.cfg
 
其中-notext表示不要把证书文件的明文内容输出到文件中去,否则在后面用keytool导入到keystore时会出错。
4)   
导入信任的CA根证书到keystore
   keytool -import -v-trustcacerts  -alias my_ca_root -file ca.crt -storepass 123456 -keystoreserver_keystore
5)   
CA签名后的server端证书导入keystore
keytool -import -v -alias tomcat_server -filetomcat_server.crt -storepass 123456 -keystore server_keystore
6)   
查看server端证书
   keytool -list -v -keystoreserver_keystore  

 可以看到tomcat_server的证书链长度是2
 
4.   
生成client端证书
1)   
生成客户端CSR
   openssl genrsa -des3 -outtomcat_client.key 1024
openssl req -new -key tomcat_client.key -outtomcat_client.csr -config d:\openssl\openssl.cfg
2)   
CA私钥进行签名,也可以到权威机构申请CA签名
openssl ca -in tomcat_client.csr -outtomcat_client.crt -cert ca.crt -keyfile ca.key -notext -config d:\openssl\openssl.cfg
3)   
生成PKCS12格式证书
openssl pkcs12 -export -inkeytomcat_client.key -in tomcat_client.crt -out  tomcat_client.pfx

如果需要查看证书内容使用Keytool列出pkcs12证书的内容:
   keytool -rfc -list -keystoretomcat_client.pfx -storetype pkcs12

  keytool-list -v -keystore tomcat_client.pfx -storetype pkcs12

 

这样就完成了证书生成.

生成根证书 CA.CRT ca_keystore  密码123456

sever证书存放在keystore server_keystore 密码123456

client证书tomcat_client.pfx密码123456

 

 

本文链接http://element-ui.cn/news/show-577037.aspx