Tomcat + SSL 加密
1、环境
(1)Linux:Linux系统
(2)Tomcat:Apache Tomcat/8.0.36
2、生成keystore.jks文件
.jks文件为JAVA用的存储密钥的容器。可以同时容纳n个公钥或私钥,后缀一般是.jks或者.keystore或.truststore等。
(1)安装JDK
安装Tomcat需要JDK支持。
(2)生成keystore文件
生成密钥库文件keystore.jks需要使用JDK的keytool工具。命令行以管理员身份进入JDK下的bin目录,运行keytool命令。(示例中红色部分为可自定义部分,请根据实际配置情况作相应调整)
keytool -genkey -alias server -keyalg RSA -keysize 2048 -keystore keystore.jks -storepass password
参数含义如下:
根据提示,键入内容:
(3)导入服务器证书、
进入JDK安装目录下的bin目录,运行keytool命令,查看keystore文件内容
keytool -list -keystore C:\keystore.jks -storepass password
导入CA证书
keytool -import -alias intermediate1 -keystore C:\keystore.jks -trustcacerts -storepass password -file C:\intermediate1.cer
导入服务器证书
keytool -import -alias server -keystore C:\keystore.jks -trustcacerts -storepass password -file C:\server.cer
注意:导入服务器证书时,服务器证书的别名必须和私钥(上面的server)别名一致。
3、配置Tomcat
复制已正确导入认证回复的keystore.jks文件到Tomcat安装目录下的conf目录。打开conf目录下的server.xml文件,将
<!— <Connector protocol="org.apache.coyote.http11.Http11Protocol" port="8443" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" /> -->
修改为
<Connector protocol="org.apache.coyote.http11.Http11Protocol" port="443" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" keystoreFile="conf/keystore.jks" keystorePass="password" clientAuth="false" sslProtocol="TLS" ciphers="TLS_ECDHE_RSA_WITH_RC4_128_SHA,TLS_ECDH_RSA_WITH_RC4_128_SHA, TLS_RSA_WITH_RC4_128_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, TLS_RSA_WITH_3DES_EDE_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA"/>
默认的SSL访问端口号为443,如果用其他端口号,需要使用https://yourdomain:port方式访问您的站点。
注意:keystorePass为生成keystore.jks时的password