Linux配置Tomcat实现双向SSL认证(使用keytool工具生成证书)


 一、首先为tomcat服务器生成证书(tomcat8.5)

keytool -genkey -v -alias tomcat -keystore tomcat.keystore -keyalg RSA -validity 180 -keysize 2048

 

 其中keystore password自己随便设置即可。

What is your first and last name?必须是tomcat部署主机的域名或者IP[如:hxc.com 或者 192.168.1.6](就是你将来要在浏览器中输入的访问地址),否则浏览器会弹出警告窗口,提示用户证书与所在域不匹配。在本地做开发测试时,应填入“localhost”。

二、生成客户端证书

keytool -genkey -v -alias mykey -keystore mykey.p12 -storetype PKCS12 -keyalg RSA -validity 180 -keysize 2048

 

 

 其中内容随便填即可。

三、让服务器信任客户端证书

1.由于是双向SSL认证,服务器必须要信任客户端证书,因此,必须把客户端证书添加为服务器的信任认证。因不能直接将PKCS12格式的证书库导入服务器证书库,首先需要将客户端证书导出为一个单独的CER文件。

keytool -export  -alias mykey -keystore mykey.p12 -storetype PKCS12 -storepass 你设置的证书密钥 -rfc -file mykey.cer

 

 2.然后将该文件导入到服务器证书中

keytool -import -v -file mykey.cer -keystore tomcat.keystore

 

 3.我们可以验证一下是否成功将客户端证书加入到服务器证书库中

keytool -list -keystore tomcat.keystore

 

 四、让客户端信任服务器证书

由于是双向SSL认证,客户端也要验证服务器证书,因此,必须把服务器证书添加到浏览的“受信任的根证书颁发机构”。由于不能直接将keystore格式的证书库导入,这里需要把服务器证书导出为一个单独的CER文件。

keytool -keystore tomcat.keystore -export -alias tomcat -file tomcat.cer

 

五、目前我们生成了如下四个文件,其中tomcat.keystore用于配置服务器,mykey.p12和tomcat.cer提供给客户端进行证书导入

 

 六、配置tomcat服务器server.xml文件(tomcat根目录的conf文件夹)

找到Connector port="8443"那里,把注释去掉并修改

clientAuth:设置是否双向验证,默认为false,设置为true代表双向验证
keystoreFile:服务器证书文件路径
keystorePass:服务器证书密码
truststoreFile:用来验证客户端证书的根证书,此例中就是服务器证书
truststorePass:根证书密码
配置完记得重启tomcat服务器
 
注意:tomcat10修改的内容和8,9不一样!

 

 

七、在客户端导入证书
1.导入mykey.p12客户端证书

 

 

 

 2.导入tomcat.cer,将证书添加到“受信任的根证书颁发机构”

 

 

 如果安装证书之前浏览器处于打开状态,需要重启浏览器。

 八、我们可以访问服务器测试一下

 

 本次会话已经实现SSL双向认证。

 

 

 附录:keytool工具使用方法

 

 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM