配置管理SSL证书,是一件不常见的工作,以前曾花费大量时间研究过SSL安全证书相关的问题,也配置过十多个WEB项目的SSL证书。但是,过了一段时间,再去配置SSL时,还是有些陌生。最近一个网站SSL证书过期了,需要重新配置,于是把这一过程记录下来,以便于今后解决类似问题做参考。
一、购买或者重新申请证书
以西部数码【www.west.cn】购买或申请TrustAsia DV型证书为例:
1、绑定证书的域名
本例证书绑定的域名:tianjin.jadepool.net
2、选择域名验证类型
域名验证类型有两种,分别是:
DNS验证 【注:申请SSL证书给云建站使用只能选择DNS验证】(需您手动为域名添加一条TXT解析记录)
文件验证 【推荐】(需要您在域名根目录下创建指定的文件验证域名所有权)
这里选择了文件验证【推荐】
3、提交申请后,TrustAsia将验证绑定的域名
在域名tianjin.jadepool.net上下文根目录下,添加路径.well-known\pki-validation,并创建fileauth.txt文件。将以上对话框中的验证值粘贴到fileauth.txt文件中。
提交验证后,出现了302错误(转跳所致)。这是由于证书过期,而在该域名下的web.xml设置了代码
<login-config>
<auth-method>CLIENT-CERT</auth-method>
<realm-name>Client Cert Users-only Area</realm-name>
</login-config>
<security-constraint>
<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>
这段代码是访问http时,自动切换到https协议,将以上代码注释掉,重新启动服务器。
再次验证后,OK。
使用https访问网站
此时,使用https协议访问网站出现了安全警告。由于证书已经过期,需要重新下载安装证书。
二、验证域名后,下载SSL文件证书
项目在TomEE8下运行,下载SSL文件格式:JKS格式(适合tomcat8.5+)
三、修改证书别名
以SSL证书SHA256withRSA_tianjin.jadepool.net.jks为例
执行在cmd窗口执行keytool -list -v -keystore SHA256withRSA_tianjin.jadepool.net.jks命令,输入密码后,会发现从TrustAsia下载的证书,默认的别名是您填写的网站域名,多次list其它证书也是如此。这个证书的别名就是“tianjin.jadepool.net”。
Tomcat/TomEE大概从9.0/8.0之后,要求证书别名必须是tomcat,因此,执行以下命令将证书别名tianjin.jadepool.net修改为tomcat。
keytool -changealias -keystore SHA256withRSA_tianjin.jadepool.net.jks -alias tianjin.jadepool.net -destalias tomcat
重新执行keytool -list -v -keystore SHA256withRSA_tianjin.jadepool.net.jks命令,看到了以下结果,已经更改为别名:tomcat
将修改别名后的SHA256withRSA_tianjin.jadepool.net.jks证书文件粘贴到TomEE8服务器的conf目录下,重新启动服务器。
再次访问https://tianjin.jadepool.net,恢复正常。