一、首先为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"那里,把注释去掉并修改


2.导入tomcat.cer,将证书添加到“受信任的根证书颁发机构”
如果安装证书之前浏览器处于打开状态,需要重启浏览器。
八、我们可以访问服务器测试一下
本次会话已经实现SSL双向认证。
附录:keytool工具使用方法