如何还原缺少的IIS Express SSL证书?

Chr*_*ons 125 ssl https ssl-certificate iis-express

建立在IIS快递HTTPS后,根据该文章的这个这个,我无法实际加载使用HTTPS的IIS快递网站.在Chrome中,我只会得到:

此网页不可用(错误代码为"ERR_CONNECTION_RESET")

...而在IE中我只得到:

Internet Explorer无法显示该网页

......当我按照那些文章中的指示.

这似乎与IIS Express自动安装的"IIS Express开发证书"已被删除有关.如何重新安装此证书?

Chr*_*ons 180

转到"添加/删除程序"并在IIS Express上选择"修复"选项后,已重新安装证书,现在我可以使用HTTPS启动IIS Express站点.

修复IIS Express

证书回来了:

IIS Express开发证书

我现在可以使用HTTPS启动IIS Express站点:

成功!

  • Windows 10用户注意:修复仅在"控制面板"中,而不在"添加删除程序"应用程序中.很棒的想法. (30认同)
  • VS2019 用户请注意:“修复”将不起作用,因为 Visual Studio 安装程序不会将 MSI 文件放在控制面板期望的位置。但是,同一目录中有一个“_package.json”文件,其中包含 MSI 文件的 URL。您可以手动运行它或将其复制到控制面板期望的位置。 (12认同)
  • IIS Express 上的修复似乎对我不起作用。我正在使用 Visual Studio 2019,但我无法找到正确的 MSI 来手动运行它。 (2认同)

Ber*_*ite 129

对于Visual Studio 2015,IIS Express 10,Windows 10,这些选项对我不起作用.IIS Express 10没有修复选项.

我设法使用IisExpressAdminCmd.exe可用的命令解决问题C:\Program Files (x86)\IIS Express.

从提升的命令提示符运行:

cd C:\Program Files (x86)\IIS Express
IisExpressAdminCmd.exe setupsslUrl -url:urlToYourSite -UseSelfSigned
Run Code Online (Sandbox Code Playgroud)

用你的网址替换urlToYourSite.

例如

cd C:\Program Files (x86)\IIS Express
IisExpressAdminCmd.exe setupsslUrl -url:https://localhost:44387/ -UseSelfSigned
Run Code Online (Sandbox Code Playgroud)

之后,我关闭了IIS Express并从Visual Studio重新启动了我的站点,并提示自动信任自签名证书.

希望有所帮助.

  • 这对我尝试在端口443上运行IISExpress起作用。+1 (3认同)
  • 在Windows 10中,IIS Express*具有*修复选项.您需要通过控制面板.接受的答案对我有用. (2认同)

exp*_*nit 36

有时,此错误是由于为localhost安装了不同的证书.如果是这种情况,则无需还原IIS Express证书.相反,您可以执行以下操作以告知IIS Express使用您现有的证书:

  1. 按照此处所述打开证书MMC管理单元
  2. 找到您的localhost证书,例如在Personal ... Certicates下并获取其指纹:
    1. 打开localhost证书的属性对话框并找到Thumbprint属性
    2. 将指纹值粘贴到记事本(或其他)中,并删除空格和开头的任何特殊字符
  3. 找到IIS Express项目的端口值:
    1. 转到Visual Studio中的项目属性并查找"SSL URL"值,例如" https:// localhost:44300/MyApp ".
    2. 在此示例中,44300是端口号.如果您的不同,请在以后的命令中更改该值.
  4. 在管理命令提示符(而不是Powershell)中使用以下命令:

netsh http delete sslcert ipport=0.0.0.0:44300

netsh http add sslcert ipport=0.0.0.0:44300 certhash=your_cert_hash_with_no_spaces appid= {123a1111-2222-3333-4444-bbbbcccdddee}

上面命令中的Guid可以替换为您生成的Guid.它与任何现有的IIS Express值都不对应.

有关进一步参考,请参阅在IIS Express中处理URL绑定失败.

  • 更直观的方式是使用Jexus Manager,https://blog.lextudio.com/why-chrome-says-iis-express-https-is-not-secure-and-how-to-resolve-that-d906a183f0然后您不必记住证书哈希等细节. (2认同)

Shi*_*raz 30

另请注意,要使IIS Express使用SSL,所使用的端口需要在44300到44399范围内(http://www.iis.net/learn/extensions/using-iis-express/running-iis-express-没有管理权限).

因此,如果您在Visual Studio中使用IIS Express,请确保所选端口处于所需范围内: vs iis express的设置

  • 44300-44399只是映射证书的默认端口范围.您可以通过调用`netsh`轻松创建类似的证书映射,或者只使用Jexus Manager,https://blog.lextudio.com/why-chrome-says-iis-express-https-is-not-secure-and-how -to-解决 - 也就是说,d906a183f0 (4认同)
  • 在Bernie White的回答中使用命令后,我能够使用此范围之外的端口,没有任何问题.Windows 10/Visual Studio社区2015/.Net Core 1.0.1/IIS Express 10.0 (3认同)
  • 的确不错。几个月前,我遇到了这个问题。整理出来真是太痛苦了! (2认同)

mil*_*nio 11

使用新的Chrome 58,以下答案中的任何内容都无济于事.我花了1个小时卸载/重新安装证书,并试图找出问题所在.

显然Chrome 58将拒绝证书,因为"missing_subjectAltName"

解决方案是"badidea"密码,或者如果您需要打开弹出窗口进行登录,则必须使用:

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

来源是和upvote属于:https://stackoverflow.com/a/38926117/2089232 :)

  • 请参见http://stackoverflow.com/questions/43676993/how-do-i-change-my-iis-express-ssl-certificate-for-one-that-will-work-with-chrom (2认同)

Eli*_*ate 6

我想添加这一点,因为这很荒谬,但也许会对某人有所帮助。请记住,我以前从未打开过我的项目属性,所以我不知道这是如何发生的(我自己没有更改它或有机会更改),但在“项目”>“属性”>“Web”中,我的 SSL url 被列为我常用的 URL但作为http而不是https(之前是https,因为它之前可以工作)。我完成了此页面上列出的所有步骤,卸载了 VS,然后卸载了 IIS,最后注意到应该是https://mySSLURL 的错误(但缺少 https 中的 s)。一旦我将 http 更改为 https,一切又恢复正常了。