本文整理自zimbra wiki,有需要的朋友可阅读原文:https://wiki.zimbra.com/wiki/Installing_a_LetsEncrypt_SSL_Certificate
上述zimbra wiki地址详细介绍了安装 Let's Encrypt 在 Zimbra 服务器上,而本文参考其介绍使用阿里云aliyun免费证书安装zimbra可信任的SSL证书
说明:本文适用于Zimbra8.7及以上,Zimbra8.6及以下请阅读原文进行部署。
操作系统:CentOS7.7 64位
Zimbra版本:Zimbra-8.8.15
首先当然要去阿里云申请的ssl证书下载其他类型证书,解压缩后有两个文件上传到相应目录,
文件名类似18131-mail.xxx.comkey和181111-mail.xxx.com.pem
创建目录 /opt/zimbra/ssl/aliyunssl/ 上传这两个文件
对比Let’s Encrypt和Wosign的证书,这里会涉及到转换阿里云的RSA密钥到PKCS#8的格式,两者的区别,在于开头和结尾的内容。zimbra是不能验证RSA秘钥的。
我们可以通过openssl命令把阿里云的私钥转成zimbra能接受的格式。
# mkdir /opt/zimbra/ssl/aliyunssl/
# cd /opt/zimbra/ssl/aliyunssl
# cd /opt/zimbra/ssl/aliyunssl
# openssl pkcs8 -topk8 -inform PEM -in 18131_mail.XXX.com.key -outform PEM -nocrypt -out privkey.pem
# mv 18131_mail.xxxx.com.key cert.pem
# chown zimbra:zimbra /opt/zimbra/ssl/aliyunssl/*
在 /opt/zimbra/ssl/aliyunssl/ 创建chain.pem 文件 也就是中级证书(mid-digicert-ca) + 根证书(root-digiert-ca)
将阿里云下载证书1813131_domain.pem的第二部分,也就是第二个—–BEGIN CERTIFICATE—–到—–END CERTIFICATE—–
copy到chain.pem中也就是中级证书(mid-digicert-ca),再将发证机构的根证书追加到chain.pem中也就第二部分的根证书。
阿里云免费ssl的根证书分享,不同发证机构根证书会有所不同
-----BEGIN CERTIFICATE-----
MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD
QTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVT
MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkqhkiG
9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsB
CSDMAZOnTjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97
nh6Vfe63SKMI2tavegw5BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt
43C/dxC//AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7P
T19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y7vrTC0LUq7dBMtoM1O/4
gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQABo2MwYTAO
BgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbR
TLtm8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUw
DQYJKoZIhvcNAQEFBQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/Esr
hMAtudXH/vTBH1jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg
06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp+dWOIrWcBAI+0tKIJF
PnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886UAb3LujEV0ls
YSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk
CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=
-----END CERTIFICATE-----
切换zimbra用户验证证书
[root@mail ~]# su - zimbra
Last login: Tue Jan 7 15:47:50 CST 2020 on pts/5
[zimbra@mail ~]$ cd /opt/zimbra/ssl/aliyunssl/
[zimbra@mail aliyunssl]$ /opt/zimbra/bin/zmcertmgr verifycrt comm privkey.pem cert.pem chain.pem
** Verifying 'cert.pem' against 'privkey.pem'
Certificate 'cert.pem' and private key 'privkey.pem' match.
** Verifying 'cert.pem' against 'chain.pem'
Valid certificate chain: cert.pem: OK
1.部署之前,进行备份
cp -a /opt/zimbra/ssl/zimbra /opt/zimbra/ssl/zimbra.$(date "+%Y%m%d%H%M%S")
2.在Zimbra SSL路径下复制私钥
在部署SSL证书之前,需要将privkey.pem移动到Zimbra SSL商业路径下,如下所示:
cp /opt/zimbra/ssl/aliyunssl/privkey.pem /opt/zimbra/ssl/zimbra/commercial/commercial.key
3.开始部署
一定切换到zimbra再部署,否则部署不了。
[root@mail ~]# su - zimbra
Last login: Tue Jan 7 16:39:52 CST 2020 from 113.57.27.111 on pts/8
[zimbra@mail ~]$ cd /opt/zimbra/ssl/aliyunssl/
[zimbra@mail aliyunssl]$ /opt/zimbra/bin/zmcertmgr deploycrt comm cert.pem chain.pem
4.重启zimbra服务
[zimbra@mail ~]$ zmcontrol restart
5.查看证书
[zimbra@mail aliyunssl]$ /opt/zimbra/bin/zmcertmgr viewdeployedcrt
六、测试证书是否生效
浏览器访问你的服务器地址,看到没有证书错误提示并且地址栏证书的地方是绿色就表示成功了。