Windows 环境 Tomcat 的 HTTPS 单向认证和双向认证的配置

原创
2017/03/15 12:38
阅读数 67

单向认证,说的是浏览器验证服务器的真实性,双向认证是服务器也验证浏览器用户的真实性。 1、使用keytool生成keystore,命令如下:

keytool -genkey -alias fengyunhe -keyalg RSA -keystore fengyunhe.keystore -validity 3650

需要注意,填写的证书信息中名字于姓氏应该填写你的域名。 2、导出cert证书命令,因为是自签名的证书,不是CA颁发的所以浏览器会有警告,需要人工的安装证书到受信任的根证书颁发机构:

keytool -exportcert -alias fengyunhe -keystore fengyunhe.keystore -f fengyunhe.cer -v

3、打开tomcat的配置文件conf/server.xml,找到Connector对于HTTPS的配置,加入keystoreFile 和keystorePass属性。

<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" 
               keystoreFile="conf/fengyunhe.keystore" 
               keystorePass="123456" 
             />

注意端口是8443,所以启动tomcat后,访问https://www.fengyunhe.com:8443/就可以发现出现浏览器对于没有认证证书的警告信息。我们安装cert证书到系统中,人工加入到可信任的根证书颁发机构中,就好了。   如果是双向的认证,则需要将浏览器端生成的证书导入到服务器端的密钥库中,也就是keystore文件中。并且在上面的xml配置中,需要开启对客户端的验证。clientAuth需要设置为true,另外增加truststoreFile="conf/test.keystore" 和truststorePass="123456"的密钥库到服务端的keysotre文件中。下面是具体的步骤: 1、生成p12密钥库

keytool -genkey -alias client -keyalg RSA -storetype PKCS12 -keystore client.key.p12

因为是客户端的证书,所以名字好与姓氏就不需要一定是域名了。 2、将生成的p12证书安装到浏览器中,windows下直接双击就可以了,保存的位置使用自己就可以了。会存在“个人”中。 3、从p12密钥库导出证书

keytool -export -keystore cleint.key.p12 -storetype PKCS12 -alias client -file client.key.cer

4、将证书导入到server端的密钥库信任链中

keytool -import -file client.key.cer -keystore fengyunhe.keystore

5、在tomcat的配置中开启客户端的认证,并设置信任库文件和密码。 clientAuth需要设置为true,另外增加truststoreFile="conf/test.keystore" 和truststorePass="123456" 重启tomcat,再次访问server 的https 地址后就可以看到效果了,在打开浏览器访问server的时候,就会弹出证书确认的窗口。  

tips:

本文由wp2Blog导入,原文链接:http://devonios.com/windows-tomcat-https.html

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部