一个典型的场景是使用 RouterOS fetch 工具、DoH(DNS over HTTPS)或其他需要 HTTPS 连接的功能时,由于 RouteOS 的证书信任库里没有相关网站签发机构的“根证书颁发机构”,就会产生 SSL: ssl: no trusted CA certificate found (6)错误。
方法一:导入通用 CA 证书包
一劳永逸解决根证书信任问题,cURL 项目维护了一个非常好的证书包cacert.pem,包含了当前所有主流根 CA 证书。
1. 下载最新的 CA 证书包
访问 cURL 的 CA Extract 页面,下载cacert.pem文件
2. 上传 cacert.pem 到 RouterOS
通过 WinBox 的 Files 功能将 cacert.pem 文件上传到 RouterOS,或者使用 scp/rsync 等终端工具上传(需要在 RouterOS 开启相关功能)。
3. 导入证书
通过 WinBox 或者 SSH 连接到 RouterOS 终端,执行导入命令。
/certificate import file-name=cacert.pem4. 信任证书
默认情况下,导入之后即是信任状态,如果是非信任状态,手动信任所有证书。
:foreach i in=[/certificate find where trusted=no] do={ /certificate set $i trusted=yes }方法二:手动导入目标网站的 CA 证书
出于安全性考虑,不必为所有网站都导入 CA 证书,只需要对访问的目标网站添加相应的 CA 证书即可。
可以先通过浏览器访问目标网站,然后查看详细信息,获取到 Root CA 名称,通过搜索引擎搜索 CA 机构官网下载相关证书进行导入。