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

Mic*_*ael 5 ssl google-chrome ssl-certificate

正如标题所说。我开始向站点添加 Service Workers,为了工作,他们需要有效的 SSL 证书。我已经让我的本地开发服务器通过 https 提供自签名证书有一段时间了,尽管 Chrome 给出了我直到现在才忽略的“不安全”消息。我在这里看到了很多类似的问题(使用本地主机),但没有任何与我的确切设置(使用本地主机上的虚拟主机)相匹配的问题,而且我尝试过的任何方法都没有奏效。

我将描述我的设置:

  • 这是针对本地开发机器的。我不需要任何超级安全的东西。我只需要 Chrome 信任它。
  • 我的开发堆栈是 Windows 10 上的 Apache(运行 PHP 和 ColdFusion)。
  • 我在本地(127.0.0.1)使用 Apache 虚拟主机设置了多个站点,例如:
  • 为了让 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 Dev Tools Security 选项卡中,我有两个错误:

  • 缺少主题备用名称:此站点的证书不包含包含域名或 IP 地址的主题备用名称扩展。
    • 我如何添加这个?但对于我的设置,我用什么来衡量价值?它应该是michael.domain1.com 吗?
  • 证书错误:站点的证书链存在问题 (net::ERR_CERT_COMMON_NAME_INVALID)。
    • michael.domain1.com 不是正确的值吗?我是否使用上面的 openssl 命令将它添加到正确的位置?

谢谢你。

Mic*_*ael 1

我终于明白了!Drakes 的这条有点隐藏的评论帮助我使用 .sh 文件生成正确的证书文件。我不太确定最终对我有什么帮助,但我最终得到的命名文件与以前略有不同。我现在拥有 michael.domain1.com.cer 而不是 michael.domain1.cer。新的证书文件修复了 Chrome 开发工具“安全”选项卡中的主题备用名称缺失和 ERR_CERT_COMMON_NAME_INVALID 错误,但我确实遇到了一个关于它是不受信任的机构的新错误。然后,我使用 Windows 和 Chrome 本身以几种不同的方式将同一文件导入受信任的根权限(您可以在“设置”>“高级”>“管理器证书”>“导入”下从 Chrome 导入它们)。在我最后一次重新启动 Apache 并关闭并重新打开 Chrome 后,一切正常。