Tomcat 安装StartSSL证书

分类:软件编程
阅读:2877
作者: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。。。。。。。。。 输入之前保存的两个密文信息及密码

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" 
           maxThreads="150" scheme="https" secure="true" 
           keystoreFile=" 证书路径   " keystorePass=" 密码   "   keystoreType="PKCS12"   
           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>后面加上以下配置:

<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> 
2.单个应用强制https访问

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

<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> 

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

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