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

时间:2013-11-17 22:24:40

标签: ssl https ssl-certificate iis-express

在IIS Express中设置HTTPS后,根据thisthis等文章,我无法使用HTTPS实际加载IIS Express网站。在 Chrome 中,我只会:

  

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

...并且在 IE 中我只会:

  

Internet Explorer无法显示网页

......当我按照这些文章中的指示进行操作时。

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

8 个答案:

答案 0 :(得分:176)

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

Repair IIS Express

证书又回来了:

IIS Express Development Certificate

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

Success!

答案 1 :(得分:124)

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

我设法使用B提供的D命令来解决问题。

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

IisExpressAdminCmd.exe

用您的网址替换urlToYourSite。

e.g。

C:\Program Files (x86)\IIS Express

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

希望有所帮助。

答案 2 :(得分:31)

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

  1. 按照here
  2. 所述打开证书MMC管理单元
  3. 查找您的localhost证书,例如在个人...证明并得到它的指纹:
    1. 打开localhost证书的属性对话框并找到Thumbprint属性
    2. 将指纹值粘贴到记事本(或其他)中,并删除空格和开头的任何特殊字符
  4. 查找IIS Express项目的端口值:
    1. 转到Visual Studio中的项目属性,找到" SSL URL"价值,例如" https://localhost:44300/MyApp&#34 ;.
    2. 在此示例中,44300是端口号。如果您的不同,请在以后的命令中更改该值。
  5. 在管理命令提示符(而非Powershell)中使用以下命令:
  6. 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值都不对应。

    有关详细信息,请参阅Handling URL Binding Failures in IIS Express

答案 3 :(得分:28)

另请注意,要使IIS Express使用SSL,所使用的端口必须位于44300到44399范围内(http://www.iis.net/learn/extensions/using-iis-express/running-iis-express-without-administrative-privileges)。

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

答案 4 :(得分:11)

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

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

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

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

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

答案 5 :(得分:1)

我想补充一点,因为它很荒谬,但也许会帮助别人。请记住,我之前从未打开过我的项目属性,所以我不知道这是怎么发生的(我自己没有改变或有机会改变),但在项目>属性> Web我的SSL网址被列为我的常用网址,但是作为http而不是https(以前是https,因为之前有效)。我完成了本页列出的所有步骤,卸载了VS,然后是IIS,最后注意到错误应该是https://mySSLURL(但是错过了https中的s)。一旦我将http改为https,一切都恢复了。

答案 6 :(得分:0)

您可以重新安装IIS Express 10.0(或所需的任何版本)以修复丢失的证书。 Download from Microsoft here

答案 7 :(得分:0)

我将VS 2017更新到最新版本并创建了一个新的(.Net)MVC / WebAPI项目(通过模板)后,才遇到此问题。我可以通过将端口号调整到正确的范围内来解决此问题

Chorme Default Port Ranges for DEV SSL

我可以在这里找到:https://www.pluralsight.com/guides/visual-studio-2017-resolving-ssl-tls-connections-problems-with-iis-express

希望这会有所帮助!