How do I create/install self-signed SSL cert on local Windows virtualhost dev machine that Chrome will trust?
本问题已经有最佳答案,请猛点这里访问。
正如标题所说。我开始将服务工作者添加到站点,为了工作,他们需要有效的SSL证书。我已经让我的本地开发服务器通过https提供了一段时间的自签名证书,尽管Chrome提供了"不安全"的消息,我直到现在才忽略这一消息。我在这里看到了很多类似的问题(使用localhost),但没有任何东西与我的确切设置相匹配(在localhost上使用虚拟主机),而且我尝试过的任何东西都没有用。
我将描述我的设置:
- 这适用于本地开发机器。我不需要任何超级安全的东西。我只需要Chrome就可以信任它。
- 我的开发堆栈是Windows 10上的Apache(运行PHP和ColdFusion)。
-
我有多个站点在本地设置(127.0.0.1)与Apache虚拟主机,例如:
- https://michael.domain1.com(www.domain1.com的本地开发副本)
- https://michael.domain2.com(www.domain2.com的本地开发副本)
- 等等...
- 为了让https处理每一个,我使用了Shining Light Productions的Win64 OpenSSL v.1.1.0e安装程序,并在我的Apache httpd-vhosts.conf中为每个域设置了一个证书。
-
我使用以下创建我的证书:
openssl req –x509 –nodes -sha256 –days 3650 –newkey rsa:2048 –keyout michael.domain1.key –out michael.domain1.crt -subj"/C=US/ST=Michigan/L=SomeCity/O=CompanyName/OU=Dev/CN=michael.domain1.com" - 我打开了我的虚拟主机正在使用的.crt文件,并将其安装到Windows受信任的根证书颁发机构。
- (所有这些直到这一点都运行正常。我可以通过https://michael.domain1.com访问该网站,但我看到Chrome的"不安全"消息。)
在Chrome开发者工具安全性标签中,我有两个错误:
-
主题备用名称缺失:此站点的证书不包含包含域名或IP地址的主题备用名称扩展名。
- 我该如何添加?但是对于我的设置,我对该值使用了什么?它应该是michael.domain1.com吗?
-
证书错误:站点的证书链存在问题(net :: ERR_CERT_COMMON_NAME_INVALID)。
- michael.domain1.com不是正确的价值吗?我用上面的openssl命令将它添加到正确的位置吗?
谢谢。
我终于明白了! Drakes的这个有点埋没的评论是帮助我使用.sh文件生成适当的证书文件的原因。 我不确定最后是什么对我有用,但我最终得到的命名文件略有不同。 我现在有michael.domain1.com.cer而不是michael.domain1.cer。 新的证书文件修复了Chrome Dev Tools安全选项卡中的主题备用名称缺失和ERR_CERT_COMMON_NAME_INVALID错误,但我确实有一个新的错误,即它是一个不受信任的权限。 然后,我使用Windows和Chrome本身将相同的文件以不同的方式导入受信任的根权限(您可以在设置>高级>经理证书>导入下从Chrome导入它们)。 在最后一次重新启动Apache并关闭并重新打开Chrome后,一切正常。