我如何 create/install self-signed Chrome 信任的本地 Windows 虚拟主机开发机器上的 SSL 证书?
How do I create/install self-signed SSL cert on local Windows virtualhost dev machine that Chrome will trust?
正如标题所说。我开始向站点添加 Service Worker,为了工作,他们需要有效的 SSL 证书。我已经让我的本地开发服务器通过带有 self-signed 证书的 https 交付了一段时间,尽管 Chrome 给出了我直到现在才忽略的 "Not secure" 消息。我在这里看到了很多类似的问题(使用 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.[=45 中的每个域设置了一个证书=]
- 我使用以下方法创建了我的证书:
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 的 "Not secure" 消息。)
在 Chrome Dev Tools Security 选项卡中,我有两个错误:
- 缺少主题备用名称:此站点的证书不包含包含域名或 IP 地址的主题备用名称扩展。
- 如何添加?而且对于我的设置,我用什么来获得价值?应该是 michael.domain1.com?
- 证书错误:站点的证书链 (net::ERR_CERT_COMMON_NAME_INVALID) 存在问题。
- michael.domain1.com 不是正确的值吗?我是否使用上面的 openssl 命令将它添加到正确的位置?
谢谢。
我终于明白了! somewhat buried comment by Drakes 帮助我使用 .sh 文件生成正确的证书文件。我不确定最后对我做了什么,但我最终得到的命名文件与以前略有不同。我现在有 michael.domain1.com.cer 而不是 michael.domain1.cer。新的证书文件修复了 Chrome Dev Tools Security 选项卡中的 Subject Alternative Name Missing 和 ERR_CERT_COMMON_NAME_INVALID 错误,但我确实有一个关于它是不受信任的权威的新错误。然后,我使用 Windows 和 Chrome 本身将同一文件以几种不同的方式导入到受信任的根权限中(您可以从 Chrome 下的设置 > 高级 > 管理器证书 > 导入导入它们) .在我最后一次重新启动 Apache 并关闭并重新打开后 Chrome,一切正常。
正如标题所说。我开始向站点添加 Service Worker,为了工作,他们需要有效的 SSL 证书。我已经让我的本地开发服务器通过带有 self-signed 证书的 https 交付了一段时间,尽管 Chrome 给出了我直到现在才忽略的 "Not secure" 消息。我在这里看到了很多类似的问题(使用 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.[=45 中的每个域设置了一个证书=]
- 我使用以下方法创建了我的证书:
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 的 "Not secure" 消息。)
在 Chrome Dev Tools Security 选项卡中,我有两个错误:
- 缺少主题备用名称:此站点的证书不包含包含域名或 IP 地址的主题备用名称扩展。
- 如何添加?而且对于我的设置,我用什么来获得价值?应该是 michael.domain1.com?
- 证书错误:站点的证书链 (net::ERR_CERT_COMMON_NAME_INVALID) 存在问题。
- michael.domain1.com 不是正确的值吗?我是否使用上面的 openssl 命令将它添加到正确的位置?
谢谢。
我终于明白了! somewhat buried comment by Drakes 帮助我使用 .sh 文件生成正确的证书文件。我不确定最后对我做了什么,但我最终得到的命名文件与以前略有不同。我现在有 michael.domain1.com.cer 而不是 michael.domain1.cer。新的证书文件修复了 Chrome Dev Tools Security 选项卡中的 Subject Alternative Name Missing 和 ERR_CERT_COMMON_NAME_INVALID 错误,但我确实有一个关于它是不受信任的权威的新错误。然后,我使用 Windows 和 Chrome 本身将同一文件以几种不同的方式导入到受信任的根权限中(您可以从 Chrome 下的设置 > 高级 > 管理器证书 > 导入导入它们) .在我最后一次重新启动 Apache 并关闭并重新打开后 Chrome,一切正常。