如何更改适用于Chrome 58+的IIS Express SSL证书?

Chr*_*ris 25 powershell ssl google-chrome iis-express

Chrome 58+在SSL证书中不再支持CN,这意味着(至少在我的机器上)IIS Express中托管的浏览网站会抛出持续的安全警告.

如何更改适用于Chrom 58+的IIS Express SSL证书?

Chr*_*ris 40

这就是我解决这个问题的方法.可能有一种更简单的方法(我确定有!)

步骤1 - 打开Windows PowerShell(在管理模式下)并生成如下证书:

New-SelfSignedCertificate -DnsName "localhost", "localhost" -CertStoreLocation "cert:\LocalMachine\My"
Run Code Online (Sandbox Code Playgroud)

保持指纹安全.

步骤2 - 打开命令提示符(在管理模式下)并运行这些命令.

第一个将删除端口44300-44399的当前IIS Express证书.

for /L %i in (44300,1,44399) do netsh http delete sslcert ipport=0.0.0.0:%i
Run Code Online (Sandbox Code Playgroud)

接下来将您的新证书添加到这些端口.明显改变指纹.

for /L %i in (44300,1,44399) do netsh http add sslcert ipport=0.0.0.0:%i certhash=33459ADA4D5329673604F43A073B7F43084818A7 appid={214124cd-d05b-4309-9af9-9caa44b2b74a}
Run Code Online (Sandbox Code Playgroud)

应用程序适用于IIS Express 10我相信.您可能想要检查您的IIS Express appid与我的第一个相同.为此,请执行以下操作:

netsh http show sslcert
Run Code Online (Sandbox Code Playgroud)

第3步 - 重新启动IIS Express和Chrome,然后在Chrome中运行您的某个网站.

它会再次给你安全警告.继续进入该页面,然后进入设置>高级设置,HTTPS/SSL管理证书.在此处,从Personal导出证书并将证书导入受信任的根证书颁发机构(我将其作为.p7b),然后重新启动Chrome.

再次尝试该网站 - 您现在应该安全.

您也可以在certmgr中的Chrome之外完成所有这些操作.

编辑:使用certmgr执行上述步骤3的备用步骤:

  1. 点击win键并输入"certmgr"以打开Windows证书管理器.
  2. 展开证书 - 本地计算机>个人>证书,找到您刚刚创建的证书(它应该发布到localhost,并且从当前日期开始一年到期).
  3. 选择要复制的cert和ctrl-c.
  4. 展开证书 - 本地计算机>受信任的根证书颁发机构>证书和ctrl-v以粘贴.


小智 24

克里斯给出的答案解决了这个问题,谢谢!因为我的整个团队都有这个问题,所以我创建了一个小的Powershell脚本来运行Chris回答中的步骤.

https://gist.github.com/camieleggermont/5b2971a96e80a658863106b21c479988

在高架模式下运行它对我来说是个窍门.


小智 6

我只是使用此设置,直到它在Visual Studio中修复:

铬://标志/#允许不安全,本地主机

它只是防止每次都允许安全异常,但它仍然会在浏览器栏中将SSL显示为无效(红色).