SpringBoot的SSL双向认证
SpringBoot的SSL双向认证
1. 生成证书文件
1.1 为客户端生成证书
cmd窗口执行keytool -genkey -v -alias sms -keyalg RSA -storetype PKCS12 -keystore E:\sms.key.p12
.
名字和姓氏最好填域名或者服务器ip
双击E:\sms.key.p12,导入证书
1.2 为服务器生成证书
cmd窗口执行keytool -genkey -v -alias server -keyalg RSA -keystore E:\server.keystore -validity 36500
,-validity 36500含义是证书有效期,默认值是90天;
名字和姓氏最好填域名或者服务器ip
1.3 让服务器信任客户端证书
1.3.1 将客户端证书导出为CER文件
执行keytool -export -alias sms -keystore E:\sms.key.p12 -storetype PKCS12 -storepass sms123456 -rfc -file E:\sms.key.cer
-storepass是客户端证书密码
1.3.2 将CER文件导入到服务器的证书库
执行keytool -import -v -file E:\sms.key.cer -keystore E:\server.keystore
1.3.3 检查安装结果
通过list命令查看服务器的证书库,可以看到两个证书,一个是服务器证书,一个是受信任的客户端证书:
keytool -list -keystore E:\server.keystore
1.4 让客户端信任服务器证书
1.4.1 把服务器证书导出为CER文件
cmd窗口执行keytool -keystore E:\server.keystore -export -alias server -file E:\server.cer
.
1.4.1 在客户端安装服务器证书
双击server.cer`
2. 配置Tomcat
Tomcat/conf/server.xml修改为
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="true" sslProtocol="TLS"
keystoreFile="E:\\server.keystore" keystorePass="123456"
truststoreFile="E:\\server.keystore" truststorePass="123456" />
3. 启动Tomcat