1丶定位到jdk下bin目录下
2丶生成服务器证书,输入以下命令
keytool -genkey -v -alias tomcat -keyalg RSA -keystore D:/keys/tomcat.keystore -validity 365
输入跳出如下界面:
注意:
1丶口令需自己记清楚,要用到
2丶您的名字与姓氏? 对应访问域名(比如: 本地 localhost)
参数说明:
1丶 -genkey 生成对称或非对称加密
2丶 -keystore 生成文件保存地址(文件夹先创建好,否则报错)
3丶-validity 有效期, 单位(天)
4丶-keyalg 加密方式
3丶生成客户端证书, 命令如下
keytool -genkey -v -alias clientkey -keyalg RSA -storetype PKCS12 -keystore D:/keys/clientkey.p12
4丶双向认证: 服务端信任客户端,命令如下:
由于不能直接将PKCS12格式的证书库导入,所以必须先把客户端证书导出为一个单独的CER文件
keytool -export -alias clientkey -keystore D:/keys/clientkey.p12 -storetype PKCS12 -storepass 123456 -rfc -file D:/keys/clientkey.cer
5丶双向认证: 客户端信任服务端(导入证书库)
keytool -import -v -file D:/keys/clientkey.cer -keystore D:/keys/tomcat.keystore
6丶双向认证: 生成证书文件
keytool -keystore D:/keys/tomcat.keystore -export -alias tomcat -file D:/keys/tomcat.cer
7丶安装证书(双击上步生成的tomcat.cer文件)
8丶配置tomcat/service.xml文件
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="D:/keys/tomcat.keystore" keystorePass="123456"
ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_
CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_C
BC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RS
A_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA" />
参数说明:
1丶keystoreFile: 证书配置路径
2丶keystorePass: 生成口令
3丶ciphers: 浏览器 ‘公共密钥过弱’
9丶配置工程tomcat/web.xml,添加ssl认证,将http请求全部需要ssl认证:
<login-config>
<!-- Authorization setting for SSL -->
<auth-method>CLIENT-CERT</auth-method>
<realm-name>Client Cert Users-only Area</realm-name>
</login-config>
<security-constraint>
<!-- Authorization setting for SSL -->
<web-resource-collection>
<web-resource-name>SSL</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>