在没有任何警告消息的情况下为专用网络创建 SSL 证书

Creating an SSL certificate for a private network without any warning messages

我们在本地业务网络上有一台服务器 运行 一个 IIS7 php webapp,它通过公共域 http://ourinternalnetwork/. I was just wondering if anyone knew a way to install a self signed certificate without having any warning messages on the client machines accessing the https://ourinternalnetwork/ 到 [=18] 为整个建筑物中的其他客户端机器提供服务=].

如果可以解决问题,我们可以手动更改每台客户端计算机吗?但这只是以特定方式在服务器上安装它的情况吗?

提前致谢!

要避免出现针对自签名证书的警告,您必须要求您的客户"install the certificate"。根据您的用户使用的OS,他们将不得不做不同的事情。

此外,由于 chrome 58,您需要确保服务器的证书包含具有正确 DNS and/or IP entry/entries 的 subjectAltName,即使它只是针对单个主机。

Mac OS X

由于 Chrome 不再在 URL 旁边显示证书选项,您的用户将不得不打开开发人员工具 (Option + Command + i) 并转到 "Security" 选项卡。然后点击"View Certificate"然后将证书图片拖放到任意文件夹即可

接下来双击您刚刚保存的 cer 文件,Keychain Access 将打开。

选择要存储的钥匙串并点击"always trust"。

如果系统没有询问您将其保存在何处或您是否应该信任它,请找到新添加的证书(它应该位于列表的顶部),右键单击它,选择 "get info"然后在 "When using this certificate" 下的“信任”选项卡中选择 "Always trust"。

您可以使用如下脚本自动执行此操作:

sudo security add-trusted-cert -p ssl -d -r trustRoot -k ~/Library/Keychains/login.keychain selfsigned.crt

Windows

按照与 OS X 相同的步骤下载证书,然后单击 开始 和 运行 命令 certmgr.msc

展开树以到达受信任的根证书颁发机构 |证书。转到所有任务,选择导入并导入有问题的证书。

在 Windows 上,您可以使用以下命令编写脚本:

certutil -addstore Root C:\windows\temp\selfsigned.crt

selfsigned.crt 将是要安装的 PEM 编码证书。

自从我使用它以来已经有几年了,但是如果您将证书复制到每台机器并且 运行 那个,它应该被认为是可信的。理想情况下,该证书将由您的 IIS 证书颁发机构签署,因此您只需在每台计算机上安装自签名根 CA 证书,然后由该证书签署的任何证书都将被自动信任。