如何在Chrome将信任的本地Windows虚拟主机开发计算机上创建/安装自签名SSL证书?

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后,一切正常。