利用Keytool产生证书实现Tomcat的SSL双向握手

  • 首先配置单向握手

利用keytool产生服务器证书:

keytool -genkey -v -alias tomcat -keyalg RSA -keystore server.jks

 
产生的结果:

创建1,024比特RSA键值对及针对CN=localhost, OU=cqc, O=cqcca, L=beijing, ST=beijing
, C=cn的自我签署的认证 (MD5WithRSA)

修改tomcat/conf/server.xml文件

注释掉默认的

<Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" />

 添加

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" 
			   keystoreFile="d:/tomcat6/conf/keystore/server.jks" keystorePass="123456" />

 说明:keystoreFile:就是服务器证书,keystorePass:是产生服务器证书时的口令

测试:访问https://localhost:8443

单向握手配置完毕

 

  • 配置双向握手

在单向握手基础上,继续配置

 

第一步:产生个人证书

keytool:

keytool -genkey -v -alias test001 -keyalg RSA -storetype PKCS12 -keystore test001.p12

产生的结果:

创建1,024比特RSA键值对及针对CN=test001, OU=cqc, O=cqcca, L=beijing, ST=beijing,
C=cn的自我签署的认证 (MD5WithRSA)
        :
输入<test001>的主密码
        (如果和 keystore 密码相同,按回车):
[正在存储 test001.p12]

 

第二步:导入个人证书  

将个人证书导入到服务器证书中,由于不能直接将p12文件导入,所以需要将p12转换成cer

keytool:

keytool -export -alias test001 -keystore test001.p12 -storetype PKCS12 -storepass 123456 -rfc -file test001.cer

 keytool:

keytool -import -alias test001 -v -file test001.cer -keystore server.jks

可以验证导入是否成功,查看服务器证书中的证书内容:

keytool:

keytool -list -keystore server.jks

 

第三步:修改tomcat/conf/server.xml

将clientAuth属性设置为true,添加truststoreFile="d:/tomcat6/conf/keystore/server.jks" truststorePass="123456"

完整代码:

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"
               clientAuth="true" sslProtocol="TLS" 
			   keystoreFile="d:/tomcat6/conf/keystore/server.jks" keystorePass="123456" 
			   truststoreFile="d:/tomcat6/conf/keystore/server.jks" truststorePass="123456" />

 

最后,将p12证书导入到浏览器,然后测试,双向握手配置完毕

 

 

你可能感兴趣的:(tomcat,c,xml,浏览器,Scheme)