登录到StartSSL官方网站,填写好域名验证后进入到如下界面 验证主域名
下载工具,生成 .key 和 .csr 文件
设置密码
将证书导出到本地
将刚刚生成的一长串code填入到页面的框框中
配置tomcat,将证书载入到tomcat中 选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(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 是会提示证书不安全的警告.