申请地址
申请流程
-
填写域名及选择品牌
-
输入邮箱并选择生成方式(我这里选择离线生成)
-
安装KeyManager重新尝试
-
keymanager生成CSR文件成功,返回网页继续
-
进入域名购买商平台(我这里是阿里云平台),验证DNS
具体配置指南参考扩展(注意先点一下右下角检测,没问题再点验证按钮) -
配置好之后点击验证,验证成功,即成功生成证书信息
其中私钥存储在keyManager中
点击将证书保存到keyManager -
保存成功在keyManager内可查看到我们申请的https证书了,然后导出所需的格式部署到服务器即可
linux tomcat部署https证书
上述步骤创建完成证书以后,我们导出所需证书格式文件(例如我的服务是tomcat)
- 进入keyManager选择导出证书
- 根据服务器类型选择导出证书类型,填写备注,我这里开启加密私钥(后续配置用到),然后点击导出即可
- 将导出的证书上传到服务器指定目录下,然后打开tomcat的
conf
目录下的server.xml
文件配置https证书- keystoreFile:证书路径
- keystorePass:证书私钥密码(即我们从keyManager导出证书时候设置的密码)
- 配置好以后重启tomcat服务,浏览器可正常访问网站,证书生效。
扩展
申请证书-域名验证配置指南
详细参考:https://blog.freessl.cn/free-certificate-verification-guide/
Https证书缺少中间证书解决方案
昨天刚更新到期的证书,今天就出问题了。因为之前我是使用Let's EncryptV2
品牌,但是证书有效期仅有3个月,更换周期太短,所以这次选择了TrustAsia
品牌。
具体问题是通过手机无法访问,浏览器却可以正常访问,当时的第一直觉应该是服务器证书出了问题,最后排查(SSL服务器证书安装检查器)下来结果是通过TrustAsia中级证书签发商签发的证书,在导出的tomcat平台.jks
格式证书文件时缺少中间证书,所以在部分浏览器上就会出现问题
解决方案
既然缺少证书链中的中间证书,我们生成不就完事了。
Tomcat支持PFX
格式和JKS
两种格式的证书,上次导出的tomcat平台的jks格式证书缺少中间证书,这次我们导出Apache(pem)平台证书试试看(经测试导出IIS(pfx/pkcs12)平台一样缺少中间证书
)。
-
通过keyManager导出证书
注意:这里不要选择加密私钥(
后面需要通过私钥转换证书格式
)
导出结果解压如下
ca_bundle.crt:中间证书文件
zcmain.top.crt:服务器证书
zcmain.top_key.key:服务器证书私钥
注意:如果没有ca_bundle.crt中间证书文件,我们可通过服务器证书文件在获取证书信息 及 下载中间证书
这里生成我们需要的中间证书,保存下来即可。
-
合并证书文件
将我们的中间证书(ca_bundle.crt
或者你通过上面网址生成的中间证书)内容完全copy追加至我们服务器证书的结尾,最终我们服务器证书文件格式如下:-----BEGIN CERTIFICATE----- MIIFozCCBIugAwIBAgIQAwOn83Q9k3anEyqIR7LA9TANBgkqhkiG9w0BAQsFADBy ....原服务器证书内容... 3zcGwh0wRw== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIErjCCA5agAwIBAgIQBYAmfwbylVM0jhwYWl7uLjANBgkqhkiG9w0BAQsFADBh ....追加的中间证书内容.... RmE= -----END CERTIFICATE-----
-
转换证书格式
经过上述步骤后,我们完成了将中间证书合并到服务器证书内,此时需要将crt格式证书转换为我们需要的PFX证书格式,点击SSL证书格式转换工具转换(这里可以设置证书密码)
-
配置证书到tomcat,然后重启,再次检测一下我们的证书看看,中间证书已经存在,且可正常访问了
闲暇之余写了个小程序,欢迎大家扫码使用