利用 tomcat 服务器配置https
1. 为服务器生成证书
keytool -genkeypair -v -alias tomcat -keyalg RSA -keystore .\https\tomcat.keystore -validity 36500
2. 为客户端生成证书
keytool -genkeypair -v -alias mykey -keyalg RSA -storetype PKCS12 -keystore .\https\mykey.p12
3. 让服务器信任客户端证书
keytool -export -alias mykey -keystore .\https\mykey.p12 - storetype PKCS12 -storepass 123456 -rfc -file .\https\mykey.cer
4. 将该文件导入到服务器的证书库,添加为一个信任证书
keytool -import -v -file .\https\mykey.cer -keystore .\https\tomcat.keystore
5. 让客户端信任服务器证书
keytool -keystore .\https\tomcat.keystore -export -alias tomcat -file .\https\tomcat.cer
6. 配置 Tomcat 服务器
打开 Tomcat 目录下的 /conf/server.xml ,找到 Connector port=“8443” 配置段,修改为如下:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true" scheme="https"
secure="true" clientAuth="true" sslProtocol="TLS"
keystoreFile="C:\\Users\\springer\\Desktop\\https\\tomcat.keystore" keystorePass="123456"
truststoreFile="C:\\Users\\springer\\Desktop\\https\\tomcat.keystore" truststorePass="123456"/>
(tomcat 要与生成的服务端证书名一致)
属性说明
clientAuth: 设置是否双向验证,默认为 false,设置为 true 代表双向验证
keystoreFile: 服务器证书文件路径
keystorePass: 服务器证书密钥
truststoreFile: 用来验证客户端证书的授权书,此例中就是服务器证书
truststorePass: 根证书密钥
7. 浏览器信任.p12 证书
Google Chrome 为例:设置 -> 高级 -> 管理证书 -> 导入 .p12 文件