网上一搜都是使用 Let’s Encrypt或者沃通的SSL,他们的格式和阿里云下载的还是不同的,阿里云的相对来说,可能更简单些,不用合并root证书。

首先当然要去阿里云申请的ssl证书下载其他类型证书,解压缩后有两个文件上传到相应目录,这里是/opt/zimbra/ssl/aliyunssl/,文件名类似18131-domain.key和.pem

对比Let’s Encrypt和Wosign的证书,这里会涉及到转换阿里云的RSA密钥到PKCS#8的格式,两者的区别,在于开头和结尾的内容。zimbra是不能验证RSA秘钥的。

—–BEGIN RSA PRIVATE KEY—–

—–BEGIN PRIVATE KEY—–

我们可以通过openssl命令把阿里云的私钥转成zimbra能接受的格式。

 openssl pkcs8 -topk8 -inform PEM -in 18131XXXXXXXXX.key -outform PEM -nocrypt -out privkey.pem

完整脚本如下:

#!/bin/bash
# Note: create by itgeeker

domain=mail.itgeeker.net

su - zimbra -c 'zmproxyctl stop'
su - zimbra -c 'zmmailboxdctl stop'

mkdir /opt/zimbra/ssl/aliyunssl/
echo "up load aliyun ssl other to this folder first !!!!!!!"
cd /opt/zimbra/ssl/aliyunssl/
openssl pkcs8 -topk8 -inform PEM -in 18131XXXXXXXXX.key -outform PEM -nocrypt -out privkey.pem
mv 1813131_mail.geekerconsulting.com.pem cert.pem
chown zimbra:zimbra /opt/zimbra/ssl/aliyunssl/*

su - zimbra -c 'cd /opt/zimbra/ssl/aliyunssl/ && /opt/zimbra/bin/zmcertmgr verifycrt comm privkey.pem cert.pem '

echo "Backup Zimbra SSL directory"
cp -a /opt/zimbra/ssl/zimbra /opt/zimbra/ssl/zimbra.$(date "+%Y%m%d")

echo "Copy the private key under Zimbra SSL path"
cp /opt/zimbra/ssl/aliyunssl/privkey.pem /opt/zimbra/ssl/zimbra/commercial/commercial.key

echo "Final SSL deployment"
su - zimbra  -c 'cd /opt/zimbra/ssl/aliyunssl/ /opt/zimbra/bin/zmcertmgr deploycrt comm cert.pem'

echo "restart zimbra"
su - zimbra -c 'zmcontrol restart'

gist link:

https://gist.github.com/alanljj/2f90ca543dc2f2e45319ac13c30bbf72

验证zimbra ssl证书命令:

su - zimbra -c '/opt/zimbra/bin/zmcertmgr viewdeployedcrt'

更新

通过上面的方法虽然没有提示任何错误,但可能无法更新证书,使用验证命令,仍然会显示老的证书。那么就需要以下的复杂流程了。

zimbra证书的三个文件,目录/opt/zimbra/ssl/zimbra/commercial/:

  1. commercial_ca.crt
  2. commercial.crt
  3. commercial.key

zimbra ssl证书制作方法:

commercial_ca.crt – 阿里云下载证书1813131_domain.pem的第二部分,也就是第二个—–BEGIN CERTIFICATE—–到—–END CERTIFICATE—– 也就是中级证书(mid-digicert-ca) + 根证书(root-digiert-ca)

阿里云免费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-----

https://gist.github.com/alanljj/26b12b591173b3ba7c3c51edea09cad6

commercial.crt – 1813131_domain.pem的第一部分,也就是第一个—–BEGIN CERTIFICATE—–到—–END CERTIFICATE—–部分。

commercial.key – 就是1813131_domain.key,用上面的RSA密钥到PKCS#8 转换方法先转换,然后改名字就可以了。

开始部署

上传三个文件到/opt/zimbra/ssl/zimbra/commercial/目录,上传前检查、检查、再检查是否已经正确,如果老的文件已存在,先删除老的三个文件(技术奇客有碰到未删除,生成的文件格式不对导致无法更新ssl证书的情况)

验证证书。进入/opt/zimbra/ssl/zimbra/commercial/目录后,使用zimbra用户执行:

/opt/zimbra/common/bin/openssl verify -CAfile commercial_ca.crt commercial.crt

部署证书。 使用zimbra用户执行 :

/opt/zimbra/bin/zmcertmgr deploycrt comm commercial.crt commercial_ca.crt

重启zimbra服务。

su - zimbra -c 'zmcontrol restart' 

查看新证书。

su - zimbra -c '/opt/zimbra/bin/zmcertmgr viewdeployedcrt' 

本方法ITGeeker技术奇客在CentOS 6 zimbra 8.8.11_FOSS版本实操通过。

by ITGeeker Approven

留下评论

电子邮件地址不会被公开。 必填项已用*标注