在IIS Express中设置HTTPS后,根据此类和此类文章,我无法使用HTTPS实际加载IIS Express站点。 在Chrome中,我只会得到:
This webpage is not available (with error code"ERR_CONNECTION_RESET")
...而在IE中我只得到:
Internet Explorer cannot display the webpage
......当我按照那些文章中的指示。
这似乎与IIS Express自动安装的"IIS Express开发证书"已被删除有关。 如何重新安装此证书?
-
我还试图在端口443上运行IISExpress(或实际上在44300-44399范围之外的任何端口上)
-
注意:即使存在IIS Express本地主机证书并且似乎没有问题,此问题的已接受答案也适用。
-
对于Visual Studio 2017,请参阅stackoverflow.com/questions/44142037/…
转到"添加/删除程序"并在IIS Express上选择"修复"选项后,已重新安装证书,现在我可以使用HTTPS启动IIS Express站点。
证书回来了:
我现在可以使用HTTPS启动IIS Express站点:
-
也适合我,但在我的情况下证书就在那里。不确定原因,但导致同样的错误。所以我已经删除了证书,"修复"重新安装了这个,瞧。非常感谢。
-
Windows 10用户注意:修复仅在"控制面板"中,而不在"添加删除程序"应用程序中。很棒的想法。
-
更快捷的方法是启动Jexus Manager并生成新证书,然后绑定到您的站点。 jexusmanager.com当然它还没有修复损坏的证书绑定,我将看到如何使其成为一键式功能。
-
修复工作,但我不得不使用MMC删除任何现有的证书。我遇到的问题是我没有从localMachine中删除它们作为管理员。确保您使用提升的权限运行MMC!
-
VS2019用户注意:"修复"不起作用,因为Visual Studio安装程序没有将MSI文件放在控制面板预期的位置。但是,同一目录中有一个_package.json文件,它包含MSI文件的URL。您可以手动运行它,也可以将其复制到控制面板所需的位置。
对于Visual Studio 2015,IIS Express 10,Windows 10,这些选项对我不起作用。 IIS Express 10没有修复选项。
我设法使用C:\Program Files (x86)\IIS Express提供的IisExpressAdminCmd.exe命令解决了这个问题。
从提升的命令提示符运行:
1 2
| cd C:\Program Files (x86)\IIS Express
IisExpressAdminCmd.exe setupsslUrl -url:urlToYourSite -UseSelfSigned |
用你的网址替换urlToYourSite。
例如
1 2
| cd C:\Program Files (x86)\IIS Express
IisExpressAdminCmd.exe setupsslUrl -url:https://localhost:44387/ -UseSelfSigned |
之后,我关闭了IIS Express并从Visual Studio重新启动了我的站点,并提示自动信任自签名证书。
希望有所帮助。
-
这对我来说试图在端口443上运行IISExpress。+ 1
-
这个解决方案对我很有帮助。 Windows 10,Visual Studio 2015,IIS Express 10。
-
在VS2017社区中仍然如此。当我在Windows 10上使用IIS Express 10从http更改为https时,我必须运行此命令以获取默认的MVC5 / Web Api 2站点。感谢您发布我绝不会想到这一点拥有。
-
谢谢。这适合我。但只是想知道所有应用程序是否有永久解决方案。因为如果我创建一个新项目,我需要再次做同样的事情。是否正在卸载并重新安装解决方案?
-
如果此处的任何人在获取IIS Express使用的特定端口时遇到问题,您可能需要检查是否有人使用该端口在IIS中注册了站点。那是我今天的日子。
-
在Windows 10中,IIS Express具有修复选项。您需要通过控制面板。接受的答案对我有用。
-
如果您厌倦了使用命令行,可以使用Jexus Manager来执行相同的操作,blog.lextudio.com /…
-
我的天啊!大量的文章和手册 - 只有你的解决方案真的有效!非常感谢,来自白雪皑皑的俄罗斯的问候。
-
这确实对我有用!
有时,此错误是由于为localhost安装了不同的证书。如果是这种情况,则无需还原IIS Express证书。相反,您可以执行以下操作以告知IIS Express使用您现有的证书:
按照此处所述打开证书MMC管理单元
找到您的localhost证书,例如在个人...证明并得到它的指纹:
打开localhost证书的属性对话框并找到Thumbprint属性
将指纹值粘贴到记事本(或其他)中,并删除空格和开头的任何特殊字符
找到IIS Express项目的端口值:
转到Visual Studio中的项目属性并查找"SSL URL"值,例如"https://开头本地主机:44300 / MyApp的"。
在此示例中,44300是端口号。如果您的不同,请在以后的命令中更改该值。
在管理命令提示符(而不是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,blog.lextudio.com/…那么你不必记住像证书哈希这样的细节。
另请注意,要使IIS Express使用SSL,所使用的端口需要在44300到44399范围内(http://www.iis.net/learn/extensions/using-iis-express/running-iis-express-没有行政-权限)。
因此,如果您在Visual Studio中使用IIS Express,请确保所选端口位于所需范围内:
vs iis express的设置
-
确实很好。几个月前我遇到了这个问题。这是一个痛苦的解决方案!
-
在Bernie White的回答中使用命令后,我能够使用此范围之外的端口,没有任何问题。 Windows 10 / Visual Studio社区2015 / .Net Core 1.0.1 / IIS Express 10.0
-
谢谢!这解决了我的问题。很奇怪,Visual Studio并没有对此发出警告。
-
在弄乱证书,修复IIS Express等之后 - 尝试将其作为最后的尝试 - 它只是去了工作!!接得好! Upvoted ..
-
44300-44399只是映射证书的默认端口范围。您可以通过调用netsh轻松创建类似的证书映射,或者只使用Jexus Manager,blog.lextudio.com/…
-
为我解决了它。谢谢
使用新的Chrome 58,以下答案中的任何内容都无济于事。我花了1个小时卸载/重新安装证书,并试图找出问题所在。
显然Chrome 58将拒绝证书,因为"missing_subjectAltName"
解决方案是"badidea"密码,或者如果您需要打开弹出窗口进行登录,则必须使用:
铬://标志/#允许不安全,本地主机
来源是和upvote属于:https://stackoverflow.com/a/38926117/2089232 :)
-
请参阅stackoverflow.com/questions/43676993/…
-
另见blog.lextudio.com/…
我想补充一点,因为它很荒谬,但也许会帮助别人。请记住,我之前从未打开过我的项目属性,因此我不知道这是怎么发生的(我没有自己更改或有机会),但在Project> Properties> Web中,我的SSL URL被列为我常用的URL但是作为http而不是https(以前是https,因为它之前正在工作)。我完成了本页列出的所有步骤,卸载了VS,然后是IIS,最后注意到错误应该是https:// mySSLURL(但是错过了https中的s)。一旦我将http改为https,一切都恢复了。
您可以重新安装IIS Express 10.0(或任何您需要的版本)来修复丢失的证书。从这里下载Microsoft