如何修复缺less的IIS Express SSL证书?

在IIS Express中设置HTTPS之后,根据这样和那样的文章,我实际上无法使用HTTPS加载IIS Express站点。 我只在Chrome浏览器中遇到“此网页不可用”(错误代码为“ERR_CONNECTION_RESET”),或者按照这些文章中的说明操作,IE中的“Internet Explorer无法显示网页”。

看起来这与IIS Express自动安装的“IIS Express开发证书”已被删除的事实有关。 我如何获得这个证书重新安装?

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

修复IIS Express

证书回来了:

IIS Express开发证书

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

成功!

对于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 

用您的urlreplaceurlToYourSite。

例如

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

之后,我closuresIIS Express,并从Visual Studio重新启动我的网站,并提示自动信任自签名证书。

希望有所帮助。

有时候这个错误是因为为本地主机安装了不同的证书。 如果是这种情况,则不需要还原IIS Express证书。 相反,您可以执行以下操作来告诉IIS Express使用您现有的证书:

  1. 按照此处所述打开证书MMCpipe理单元
  2. find您的本地主机证书,例如在个人…certificate并获得指纹:
    1. 调出本地主机证书的属性对话框,并find指纹属性
    2. 将指纹值粘贴到记事本(或其他),并删除开头的空格和任何特殊字符
  3. find您的IIS Express项目的端口值:
    1. 转到Visual Studio中的项目属性,find“SSL URL”值,例如“ https:// localhost:44300 / MyApp ”。
    2. 在这个例子中,44300是端口号。 如果你的不同,在后面的命令中更改该值。
  4. 在pipe理命令提示符(不是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可以replace为您生成的Guid。 它不符合任何现有的IIS Express值。

有关更多参考,请参阅处理IIS Express中的URL绑定失败 。

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

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

随着新的Chrome 58,下面的答案没有任何帮助。 我刚花了1个小时卸载/重新安装证书,并试图找出问题所在。

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

解决scheme是“badidea”口令,或者如果您需要打开popuplogin,您必须使用:

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

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