Tomcat 安装StartSSL证书

分类:软件编程
阅读:1536
作者:majingjing
发布:2016-10-25 17:05

登录到StartSSL官方网站,填写好域名验证后进入到如下界面
ssl-1.png
验证主域名
ssl-2.png

下载工具,生成 .key 和 .csr 文件
ssl-3.png

设置密码
ssl-4.png

将证书导出到本地
ssl-5.png

将刚刚生成的一长串code填入到页面的框框中
ssl-6.png

配置tomcat,将证书载入到tomcat中
ssl-7.png
选Create PFX file。。。。。。。。。
输入之前保存的两个密文信息及密码

  1. <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
  2. maxThreads="150" scheme="https" secure="true"
  3. keystoreFile=" 证书路径 " keystorePass=" 密码 " keystoreType="PKCS12"
  4. clientAuth="false" sslProtocol="TLS" />

docker暴露8443端口
ssl-8.png

附证书和操作工具包: ssl(www.majingjing.cn).zip

前面已经介绍了https的配置

下面来讲下如何强制将http自动跳转到https

1.tomcat下所有应用都强制https访问

tomcat/conf/web.xml中的</welcome-file-list>后面加上以下配置:

  1. <login-config>
  2. <!-- Authorization setting for SSL -->
  3. <auth-method>CLIENT-CERT</auth-method>
  4. <realm-name>Client Cert Users-only Area</realm-name>
  5. </login-config>
  6. <security-constraint>
  7. <!-- Authorization setting for SSL -->
  8. <web-resource-collection >
  9. <web-resource-name >SSL</web-resource-name>
  10. <url-pattern>/*</url-pattern>
  11. </web-resource-collection>
  12. <user-data-constraint>
  13. <transport-guarantee>CONFIDENTIAL</transport-guarantee>
  14. </user-data-constraint>
  15. </security-constraint>
2.单个应用强制https访问

WEB-INF/web.xml</welcome-file-list>后面加上以下配置:

  1. <login-config>
  2. <!-- Authorization setting for SSL -->
  3. <auth-method>CLIENT-CERT</auth-method>
  4. <realm-name>Client Cert Users-only Area</realm-name>
  5. </login-config>
  6. <security-constraint>
  7. <!-- Authorization setting for SSL -->
  8. <web-resource-collection >
  9. <web-resource-name >SSL</web-resource-name>
  10. <url-pattern>/*</url-pattern>
  11. </web-resource-collection>
  12. <user-data-constraint>
  13. <transport-guarantee>CONFIDENTIAL</transport-guarantee>
  14. </user-data-constraint>
  15. </security-constraint>

看上去很简单,但是我就在这个地方反复跳了好多次坑,之前一直是配置的整个tomcat都跳转的,但是由于使用了docker导致启动的时候端口号不好修改,映射后又出现了https无法访问的问题.
最终还是在每个应用里面强制跳转就没有问题了.

题外话,由于这个免费的证书暂时还不能支持多域名,导致只能输入完整的www.majingjing.cn 才能跳转到https,证书才会被认可,直接输入majingjing.cn 是会提示证书不安全的警告.