caddy所用的EC证书不被QTS的网页界面支持,总是提示“证书错误”。其实系统的openssl已支持EC,只需ssh进去强制更新。

需求

威联通自签证书不在客户端安装则每次都有警告,安装影响安全性且很麻烦。
QTS自带的letsencrypt申请仅http方式,而国内的个人上网服务是封了80,433端口的,不可行。
以前用acme.sh申请的证书,直接用网页界面上传即可。但最近换成了caddy,其所用的EC证书不被QTS的网页界面支持。其实系统的openssl版本足够新,已支持EC,只是网页端的检查步骤还是旧代码,故需ssh进去强制更新。

更新证书

admin身份ssh进入威联通nas。
QTS新版本没有uca.pem,旧版则需去这里下载并更名,跳过。不清楚可通过ls /etc/stunnel/查看所需替换的证书。
caddy申请的证书位于$HOME/.local/share/caddy/certificates/acme-v02.api.letsencrypt.org-directory/example.com/
将key和crt合并:

1
cat example.com.key example.com.crt > stunnel.pem

scpstunnel.pem上传到nas并替换掉/etc/stunnel/stunnel.pem
重启web server相关服务:

1
2
3
/etc/init.d/thttpd.sh restart
/etc/init.d/stunnel.sh restart
/etc/init.d/Qthttpd.sh restart

参考资料

How to replace SSL certificate manually on SSH console?