我正在寻找一种在 Synology 服务器中导入根证书的方法(该证书来自 ssl 拦截代理)。
我已将证书复制到
/usr/share/ca-certificates/<somesubfolder>
并将权限更改为 744,将所有者更改为 root:root。然后我在
/etc/ssl/certs
这并没有改变什么,所以我另外修改了文件
/etc/ca-certificates.conf
并添加了这一行:
<somesubfolder>/<certfile.crt>
再次,这并没有改变行为,仍然无法与外界建立连接。有什么想法吗?
答案1
好的,感谢 Spiff,我解决了这个问题。以下是我所做的:
将证书(以 .crt 结尾)复制到 /usr/share/ca-certificates/randomsubfolder/
在所有根 CA 证书列表中导入该证书:
sudo sh -c'cat /usr/share/ca-certificates/randomsubfolder/cert >> /etc/ssl/certs/ca-certificates.crt'
注意:synology 不正式支持此功能。将来的 DSM 更新可能会将 root-ca-certs 列表恢复为默认值,然后您必须再次导入该证书。
答案2
在 Debian / Ubuntu 中,我们使用update-ca-certficates
它来添加证书。事实上,这update-ca-certficates
是一个 shell 脚本,没有什么可以阻止它在 Synology 上运行。要实现这一点,您需要执行以下操作:
- 通过 SSH 进入 Synology
update-ca-certficates
从 Debian 源获取
sudo wget -O /usr/sbin/update-ca-certificates https://sources.debian.org/data/main/c/ca-certificates/20211016/sbin/update-ca-certificates
sudo chmod +x /usr/sbin/update-ca-certificates
- 创建其他证书的目录并将您的证书复制到其中
sudo mkdir -p /usr/local/share/ca-certificates
sudo chmod 755 /usr/local/share/ca-certificates
sudo cp /path/to/your/certificate.crt /usr/local/share/ca-certificates
sudo chmod 644 /usr/local/share/ca-certificates/*.crt
- 称呼
update-ca-certificates
sudo update-ca-certificates
运行脚本后你应该看到:
1 added, 0 removed; done.
这种方法的好处是您可以update-ca-certificates
在启动时从 Synology 的任务计划程序调用,这应该允许证书在 DSM 更新后继续存在。
答案3
对于 Synology DSM 7,这是安装私人 CA 证书的正确方法:
- 将以 结尾的 ca 证书复制到
.crt
目录中:/var/db/ca-certificates
并将证书的权限更改(chmod)为644
。 - 然后执行synology提供的脚本:
update-ca-certificates.sh
- 重启
- 享受!
答案4
/usr/syno/bin/update-ca-certificates.sh
在 DSM 7.2 中,存在用于重新创建内容的脚本/etc/ssl/certs
。
.crt
它允许添加您自己的证书/usr/syno/etc/security-profile/ca-bundle-profile/ca-certificates/
。运行脚本时将识别这些证书。
该目录默认不存在,因此如果缺失则创建。尚未找到创建它的官方方法(2024-02)。