如何还原丢失的IIS Express SSL证书?

vddsk6oq  于 2022-12-27  发布在  其他
关注(0)|答案(8)|浏览(395)

在IIS Express中设置HTTPS后,根据thisthis等文章,我无法使用HTTPS实际加载IIS Express站点。在Chrome中,我只得到:
此网页不可用(错误代码为“ERR_CONNECTION_RESET”)
...而在IE中,我只能得到:
Internet Explorer无法显示该网页
......当我按照那些文章里的指示去做的时候。
这似乎与IIS Express自动安装的“IIS Express开发证书”已被删除有关。如何重新安装此证书?

nom7f22z

nom7f22z1#

Windows 10用户:修复只在控制面板中,而不在添加删除程序应用程序中。我通常运行appwiz. cpl来启动旧的控制面板小程序,并从那里运行修复。
Windows 7和8.1:转到"添加/删除程序"并选择IIS Express上的"修复"选项后,证书已重新安装,现在我可以使用HTTPS启动IIS Express站点。

证书回来了:

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

vbopmzt1

vbopmzt12#

对于Visual Studio 2015、IIS Express 10、Windows 10,这些选项对我不起作用。IIS Express 10没有修复选项。
我设法使用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重新启动了我的站点,它提示自动信任自签名证书。

t2a7ltrp

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

bvjveswy

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

sxpgvts3

sxpgvts35#

对于新的Chrome 58,下面的答案没有任何帮助。我刚刚花了1个小时卸载/重新安装证书,并试图找出问题所在。
显然,Chrome 58将拒绝证书,因为“missing_subjectAltName”
解决方案要么是“badidea”密码,或者如果你需要打开弹出窗口登录,你必须用途:

chrome://flags/#allow-insecure-localhost

来源是,且赞成票属于:https://stackoverflow.com/a/38926117/2089232:)

zfycwa2u

zfycwa2u6#

我想补充这一点,因为它是荒谬的,但也许它会帮助一些人。请记住,我从来没有打开过我的项目属性之前,所以我不知道这是如何发生的(我自己没有改变这一点,也没有机会),但是在Project〉Properties〉Web中,我的SSL URL被列为我常用的URL,但显示为http而不是https(以前是https,因为它以前是工作的)。我经历了这个页面上列出的所有步骤,卸载VS,然后IIS,最后注意到错误,这应该是https://mySSLURL(但在https中缺少s)。一旦我把http改成https,一切都再次工作。

mitkmikd

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
希望这有帮助!

fcwjkofz

fcwjkofz8#

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

相关问题