如何找到群晖NAS中用于curl --cacert参数的CA证书
如何找到群晖NAS中用于curl --cacert参数的CA证书
我来帮你搞定这个问题!首先得搞清楚为啥从控制面板导出的证书不好用——那玩意儿通常是服务器证书(带公钥的那种),而curl --cacert需要的是能验证服务器证书的CA根证书(自签场景下,就是当初签发这个服务器证书的根CA文件)。
下面是具体的查找步骤:
先通过SSH登录你的群晖NAS
先确保已经在群晖控制面板的「终端机和SNMP」里开启了SSH服务,然后用终端连接:ssh admin@你的NAS_IP地址输入管理员密码登录后,切换到root权限(执行
sudo -i,再输一次密码)。搜索系统里的CA根证书
用find命令过滤掉docker相关的路径,专门找系统里的CA证书:find / -name "*.pem" -o -name "*.crt" | grep -E "(ca|root)" | grep -v docker这个命令会找出所有带ca/root关键词的证书文件,同时排除docker容器里的无关证书。
常见的正确路径参考
群晖自签CA证书一般存放在这些位置:/usr/syno/etc/certificate/ca/[随机ID文件夹]/ca.crt:这里的随机ID文件夹是一串类似abcdef-123456的字符,进去就能看到ca.crt文件/usr/syno/etc/certificate/_archive/[随机ID文件夹]/ca.crt:如果你是自己导入的自签CA,可能会在这个归档目录下
验证证书是否正确
找到证书文件后,直接用curl测试:curl --cacert /找到的证书路径/ca.crt https://你的NAS_IP地址如果没有弹出证书错误,说明找对了!
要是你拿不准哪个是正确的CA证书,还可以用openssl查看证书内容:
openssl x509 -in /path/to/ca.crt -text -noout
自签CA证书的「Issuer」和「Subject」信息是完全一致的,而服务器证书的Issuer会指向这个CA的信息,这样就能区分开啦。
备注:内容来源于stack exchange,提问作者Async
相关产品推荐
相关产品推荐

