首先说明以下两个方案不可行:
- 在Web界面中无法通过上传证书和中间证书的方式添加信任的CA证书
- 直接在
/etc/ssl/certs文件夹中做出的修改在执行更新脚本后会失效
正确的方式是上传可信根证书到指定文件夹后使用脚本更新全局所有CA信任证书。此时上传的可以是个人自签名的CA证书,用于验证自签名的服务端证书。
Step1:上传CA文件到群晖服务器,文件格式为 crt 格式
Step2:修改 crt 文件的权限,用户和用户组改为 root:root ,文件权限修改为644
Bash
sudo chown root:root XXX.crt
sudo chmod 644 XXX.crtStep3:拷贝 crt 文件到 /var/db/ca-certificates 文件夹
Bash
sudo mv XXX.crt /var/db/ca-certificates/Step4:执行证书更新脚本
Bash
sudo /usr/syno/bin/update-ca-certificates.sh该脚本会在文件夹 /etc/ssl/certs 创建软连接到 /var/db/ca-certificates/ 文件夹的crt文件上,会在 ca-certificates.crt 文件中拼接所有的证书。(以下为示例)
Bash
$ ll /etc/ssl/certs | grep WolfBolin
lrwxrwxrwx 1 root root 21 Feb 6 00:43 52f05ea5.0 -> WolfBolin_Root_CA.pem
lrwxrwxrwx 1 root root 45 Feb 6 00:43 WolfBolin_Root_CA.pem -> /var/db/ca-certificates/WolfBolin_Root_CA.crt
$ cat /etc/ssl/certs/ca-certificates.crt尝试使用CA签名的HTTPS服务器验证CA证书(HTTPS需要使用Web配置,此处不再赘述)
Bash
openssl s_client -connect mysynology:5001 -showcerts参考文档
https://superuser.com/questions/1103219/how-to-import-a-root-certificate-into-a-synology-server
