在IIS Express中设置HTTPS后,根据this和this等文章,我无法使用HTTPS实际加载IIS Express站点。在Chrome中,我只得到:此网页不可用(错误代码为“ERR_CONNECTION_RESET”)...而在IE中,我只能得到:Internet Explorer无法显示该网页......当我按照那些文章里的指示去做的时候。这似乎与IIS Express自动安装的“IIS Express开发证书”已被删除有关。如何重新安装此证书?
nom7f22z1#
Windows 10用户:修复只在控制面板中,而不在添加删除程序应用程序中。我通常运行appwiz. cpl来启动旧的控制面板小程序,并从那里运行修复。Windows 7和8.1:转到"添加/删除程序"并选择IIS Express上的"修复"选项后,证书已重新安装,现在我可以使用HTTPS启动IIS Express站点。
证书回来了:
现在,我可以使用HTTPS启动IIS Express站点:
vbopmzt12#
对于Visual Studio 2015、IIS Express 10、Windows 10,这些选项对我不起作用。IIS Express 10没有修复选项。我设法使用C:\Program Files (x86)\IIS Express上提供的IisExpressAdminCmd.exe命令解决了这个问题。从提升的命令提示符运行:
C:\Program Files (x86)\IIS Express
IisExpressAdminCmd.exe
cd C:\Program Files (x86)\IIS Express IisExpressAdminCmd.exe setupsslUrl -url:urlToYourSite -UseSelfSigned
将urlToYourSite替换为您的url。例如:
cd C:\Program Files (x86)\IIS Express IisExpressAdminCmd.exe setupsslUrl -url:https://localhost:44387/ -UseSelfSigned
之后,我关闭了IIS Express并从Visual Studio重新启动了我的站点,它提示自动信任自签名证书。
t2a7ltrp3#
另请注意,要使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
bvjveswy4#
有时,此错误是由于为localhost安装了不同的证书。如果是这种情况,则无需还原IIS Express证书。相反,您可以执行以下操作来通知IIS Express使用现有证书:1.按照here所述打开证书MMC管理单元1.在Personal... Certificates下找到您的本地主机证书并获取其指纹:1.打开localhost证书的属性对话框并找到Thumbprint属性1.将指纹值粘贴到记事本(或其他任何地方)中,并删除开头的空格和任何特殊字符1.查找IIS Express项目的端口值:1.转到Visual Studio中的项目属性并查找“SSL URL”值,例如“https://localhost:44300/MyApp“。1.在这个例子中,44300是端口号。如果你的端口号不同,请在后面的命令中更改该值。1.在管理命令提示符(而不是Powershell)中使用以下命令:第一个月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。
netsh http add sslcert ipport=0.0.0.0:44300 certhash=your_cert_hash_with_no_spaces appid= {123a1111-2222-3333-4444-bbbbcccdddee}
sxpgvts35#
对于新的Chrome 58,下面的答案没有任何帮助。我刚刚花了1个小时卸载/重新安装证书,并试图找出问题所在。显然,Chrome 58将拒绝证书,因为“missing_subjectAltName”解决方案要么是“badidea”密码,或者如果你需要打开弹出窗口登录,你必须用途:
chrome://flags/#allow-insecure-localhost
来源是,且赞成票属于:https://stackoverflow.com/a/38926117/2089232:)
zfycwa2u6#
我想补充这一点,因为它是荒谬的,但也许它会帮助一些人。请记住,我从来没有打开过我的项目属性之前,所以我不知道这是如何发生的(我自己没有改变这一点,也没有机会),但是在Project〉Properties〉Web中,我的SSL URL被列为我常用的URL,但显示为http而不是https(以前是https,因为它以前是工作的)。我经历了这个页面上列出的所有步骤,卸载VS,然后IIS,最后注意到错误,这应该是https://mySSLURL(但在https中缺少s)。一旦我把http改成https,一切都再次工作。
mitkmikd7#
我在将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希望这有帮助!
fcwjkofz8#
您可以重新安装IIS Express 10.0(或所需的任何版本)以修复丢失的证书。Download from Microsoft here
8条答案
按热度按时间nom7f22z1#
Windows 10用户:修复只在控制面板中,而不在添加删除程序应用程序中。我通常运行appwiz. cpl来启动旧的控制面板小程序,并从那里运行修复。
Windows 7和8.1:转到"添加/删除程序"并选择IIS Express上的"修复"选项后,证书已重新安装,现在我可以使用HTTPS启动IIS Express站点。
证书回来了:
现在,我可以使用HTTPS启动IIS Express站点:
vbopmzt12#
对于Visual Studio 2015、IIS Express 10、Windows 10,这些选项对我不起作用。IIS Express 10没有修复选项。
我设法使用
C:\Program Files (x86)\IIS Express
上提供的IisExpressAdminCmd.exe
命令解决了这个问题。从提升的命令提示符运行:
将urlToYourSite替换为您的url。
例如:
之后,我关闭了IIS Express并从Visual Studio重新启动了我的站点,它提示自动信任自签名证书。
t2a7ltrp3#
另请注意,要使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
bvjveswy4#
有时,此错误是由于为localhost安装了不同的证书。如果是这种情况,则无需还原IIS Express证书。相反,您可以执行以下操作来通知IIS Express使用现有证书:
1.按照here所述打开证书MMC管理单元
1.在Personal... Certificates下找到您的本地主机证书并获取其指纹:
1.打开localhost证书的属性对话框并找到Thumbprint属性
1.将指纹值粘贴到记事本(或其他任何地方)中,并删除开头的空格和任何特殊字符
1.查找IIS Express项目的端口值:
1.转到Visual Studio中的项目属性并查找“SSL URL”值,例如“https://localhost:44300/MyApp“。
1.在这个例子中,44300是端口号。如果你的端口号不同,请在后面的命令中更改该值。
1.在管理命令提示符(而不是Powershell)中使用以下命令:
第一个月
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。
sxpgvts35#
对于新的Chrome 58,下面的答案没有任何帮助。我刚刚花了1个小时卸载/重新安装证书,并试图找出问题所在。
显然,Chrome 58将拒绝证书,因为“missing_subjectAltName”
解决方案要么是“badidea”密码,或者如果你需要打开弹出窗口登录,你必须用途:
来源是,且赞成票属于:https://stackoverflow.com/a/38926117/2089232:)
zfycwa2u6#
我想补充这一点,因为它是荒谬的,但也许它会帮助一些人。请记住,我从来没有打开过我的项目属性之前,所以我不知道这是如何发生的(我自己没有改变这一点,也没有机会),但是在Project〉Properties〉Web中,我的SSL URL被列为我常用的URL,但显示为http而不是https(以前是https,因为它以前是工作的)。我经历了这个页面上列出的所有步骤,卸载VS,然后IIS,最后注意到错误,这应该是https://mySSLURL(但在https中缺少s)。一旦我把http改成https,一切都再次工作。
mitkmikd7#
我在将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
希望这有帮助!
fcwjkofz8#
您可以重新安装IIS Express 10.0(或所需的任何版本)以修复丢失的证书。Download from Microsoft here