Centos 7.4 部署SSL证书 Tomcat
本人的SSL证书是从腾讯云免费申请的。记录第一次部署SSL证书,实现https访问
废话不多说,直接来
- 阅读腾讯云证书安装指引
证书安装指引 如果不想看,可以直接跳过 - 下载证书
下载证书并解压,找到对应的tomcat文件夹,里面两个资源文件。www.**.jks文件是证书文件,.txt文件为密钥库密码 复制证书
复制文件(www.**.jks)至Tomcat的conf目录下修改配置文件
修改conf目录下的server.xml文件,执行命令vim service.xml
<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
keystoreFile="conf/www.domain.com.jks"
keystorePass="changeit"
clientAuth="false" sslProtocol="TLS" />
复制上面代码到最后一个<Connector/>标签之后,修改
keystoreFile="自己的www.**.jks文件目录"
keystorePass="自己的密钥库密码"
keystoreFilde的详细说明:指定keystore文件的存放位置,可以指定绝对路径,也可以指定相对于 (Tomcat安装目录)环境变量的相对路径。如果此项没有设定,默认情况下,Tomcat将从当前操作系统用户的用户目录下读取名为 “.keystore”的文件。
keystorePass的详细说明:密钥库密码,指定keystore的密码。(如果申请证书时有填写私钥密码,密钥库密码即私钥密码,否则填写密钥库密码文件中的密码)
退出esc,执行wq,强制保存。
- 完成
重启tomcat,完成。
http自动跳转https的安全配置
到conf目录下的web.xml。在后面,,也就是倒数第二段里,加上这样一段
<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>
这步目的是让非ssl的connector跳转到ssl的connector去。所以还需要前往server.xml进行配置:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443" />
redirectPort改成ssl的connector的端口443,重启后便会生效。