Tomcat部署多域名ssl证书
转载来自:http://blog.51cto.com/zhanx/2287657
学习参考
部署步骤:
1、搭建Tomcat环境。
2、申请域名证书。
3、部署域名的http访问。
4、部署域名的https访问。
5、强制使http跳转至https。
具体操作如下:
1、搭建tomact环境。
这里不做赘述,搭建可以所搜其他网络资源。(我这里的环境是Windows2012系统搭建的Tomcat环境)
2、申请域名证书。
域名证书这里不在说明,(可以参考“Apache配置https证书并跳转”)
3、部署域名的http访问。
部署好Tomcat后,找到对应目录下的conf文件找到server.xml文件修改对应的配置。
找到Host添加域名绑定配置
配置如下:
<Host name="域名" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context path="" docBase="网站文件路径"/>
</Host>
<Host name="域名" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context path="" docBase="网站文件路径"/>
</Host>
测试域名访问成功后,进行下一步测试。
4、配置域名https访问。
现将域名的ssl证书放到Tomcat中的conf文件中。
在server.xml文件中找到ssl配置中做如下配置修改:
**
<Certificate certificateKeystoreFile="conf/证书路径以及名称" certificateKeystorePassword="证书密码" type="RSA"/>
<Certificate certificateKeystoreFile="conf/证书路径以及名称" certificateKeystorePassword="证书密码" type="RSA"/>
**
5、强制使http跳转至https
到conf目录下的web.xml。在</welcome-file-list>后面,</web-app>,也就是倒数第二段里,加上这样一段
<!-- 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进行配置:
connectionTimeout="20000"
redirectPort="443" />
访问http域名自动跳转至https。
测试过程中遇到的坑:
1、配置多域名ssl证书时,指有一个域名访问生效,另外一个域名的证书为不安全证书。
经多方测试Tomcat的8.5 jdk版本1.8.0 配置多域名多证书访问成功。
使用Tomcat的9以上的版本不能成功,建议大家多测试。有好方案,配置可以留言