JKS文件准备
jks文件转换参考:https://www.yuque.com/sheca/kfxgzb/tyb1xg
转换完成之后将jks文件上传至tomcat服务器中。
证书配置
在Tomcat的server.xml文件中,已经提供了现成的配置SSL连接器的代码,只要把
clientAuth=”false” sslProtocol=”TLS” keystoreFile=”C:/tomcat/server.jks” keystorePass=”123456”/>
配置修改完成之后重启Tomcat,通过浏览器https方式访问验证是否正确。
基于SSL的HTTPS使用的默认端口是443。但Tomcat在这里将HTTPS端口设置为8443。
SSLEnabled开启SSL功能
clientAuth验证客户端(值为false单向认证,双向认证值为true)
keystoreFile指定jks文件的存放位置及文件名
keystorePass指定keystore的密码(即jks文件密码)
http自动跳转HTTPS
在tomcat\conf\web.xml中的后面加上这样一段
关闭过时的加密套件算法
通过配置sslEnabledProtocols和ciphers参数,为Tomcat指定安全的传输层协议和加密算法套件,同时可以避免Chrome和Firefox访问加密网站时提示“服务器的瞬时Diffie-Hellman 公共密钥过弱”错误。
基于Java 1.6,请添加:
sslEnabledProtocols=”TLSv1,TLSv1.1,TLSv1.2” ciphers=”TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA” />
基于Java 7,请添加:
sslEnabledProtocols=”TLSv1,TLSv1.1,TLSv1.2” ciphers=”TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA256” />
基于Java 8,请添加:
sslEnabledProtocols=”TLSv1,TLSv1.1,TLSv1.2” ciphers=”TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA256” />
如果您还在使用Java 1.6或7.0版本,建议升级到最新的Java 8,以获得最佳安全保护。
Tomcat 6官方文档: https://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html
Tomcat 7官方文档: https://tomcat.apache.org/tomcat-7.0-doc/ssl-howto.html
Tomcat 8官方文档: https://tomcat.apache.org/tomcat-8.0-doc/ssl-howto.html
Tomcat 9官方文档: https://tomcat.apache.org/tomcat-9.0-doc/ssl-howto.html