我刚刚将 NAS(网络附加存储)添加到我的 LAN,我想通过 访问它HTTPS
。一切正常,只是当我浏览它时,chrome 在地址栏中响应“不安全”,并且 URL 的“https”协议部分有一条删除线。我在使用 Mozilla Firefox 时也遇到了类似的问题。
脚步
- 在运行 Linux Mint 17.3 的 PC 上,我通过执行创建了根证书颁发机构
sudo /usr/lib/ssl/misc/CA.sh -newca
。 - 我使用 http 登录 NAS 并创建 CSR(证书签名请求),然后将其下载到我的 PC。该文件的扩展名为 .csr。
- 然后我使用命令对.csr 文件进行了签名
sudo openssl ca -out myCert.pem -infiles myCert.csr
。 - 我使用它的 Web 界面将证书 myCert.pem 导入 NAS。
- 我将电脑上的 CA 证书 myCaCert.pem 移动到
/usr/share/ca-certificates/extra/myCaCert.crt
,然后运行 ,添加到其证书存储中sudo dpkg-reconfigure ca-certificates
。 - 然后,我通过运行检查最终证书 myCert.pem 文件是否正常工作
openssl verify myCert.pem
。输出为“myCert.pem:OK”。 - 然后,我将根证书 myCaCert.pem 文件导入 Mozilla Firefox 和 chrome。
完成这些步骤后,Firefox 和 Chrome 都显示通过 https 访问 NAS 的 URL 不安全。是否需要在 PC 上设置一个包含 myCaCert.pem 文件的服务来提供该文件?目前还不知道该怎么做...
编辑
根据 dave_thompson_085 的建议,我在开发者工具中检查了 Chrome 中的安全错误。显示以下两个错误:
(1)缺少主题备用名称:此站点的证书不包含含有域名或 IP 地址的主题备用名称扩展。
(2)证书错误:站点的证书链存在问题(net::ERR_CERT_COMMON_NAME_INVALID)。
我认为主题备用名称是可选的....我将尝试使用 SAN 生成另一个 CSR....
答案1
date_thompson_085 和 tonioc 发表的评论对追踪问题很有帮助。不幸的是,我使用的 NAS(即 Synology DS916+)创建的 CSR 没有在请求中包含 SAN(主题备用名称)的选项。因此,我过去常常openssl
在 PC 上创建证书请求,然后使用openssl ca ...
与原始问题中发布的方法 () 相同的方法对其进行签名。我需要使用带有 openssl 命令的自定义 .cnf 配置文件,一个用于发出请求,一个用于签名,以便让 SAN 显示在最终证书中。但是,将该证书导入 NAS 后,chrome 和 firefox 出现的问题就消失了。