如何将IIS被删除的SSL服务器证书私钥重新恢复回来
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将IIS被删除的SSL服务器证书私钥重新恢复回来相关的知识,希望对你有一定的参考价值。
如果没有备份无法找回,需要去Gworg重新申请SSL证书安装。 参考技术A 没有备份吗?如果有备份的话重新安装一下就可以了,还有就是怎么会把私匙删除了呢?是自己配置的证书吗?如果是自己配置的话比较麻烦现在都是由证书颁发机构来合成,自己只需要安装一下就可以了。如果证书有损坏的话可以找证书颁发机构重新颁发的。其他的国外品牌的证书重新颁发的话会受一定的费用,建议使用景安公司的证书,在证书有效期内免费重新颁发,并且不限制颁发次数。详细的可以联系我本回答被提问者和网友采纳
如何恢复丢失的 IIS Express SSL 证书?
【中文标题】如何恢复丢失的 IIS Express SSL 证书?【英文标题】:How do I restore a missing IIS Express SSL Certificate? 【发布时间】:2013-11-30 23:10:26 【问题描述】:在 IIS Express 中设置 HTTPS 后,根据 this 和 this 等文章,我无法实际使用 HTTPS 加载 IIS Express 站点。在 Chrome 中,我只得到:
此网页不可用(错误代码为“ERR_CONNECTION_RESET”)
...在 IE 中我只得到:
Internet Explorer 无法显示网页
...当我按照这些文章中的说明进行操作时。
这似乎与 IIS Express 自动安装的“IIS Express 开发证书”已被删除有关。如何重新安装此证书?
【问题讨论】:
我也曾尝试在端口 443 上运行 IISExpress(或者实际上在 44300-44399 范围之外的任何端口上) 注意:即使存在 IIS Express 本地主机证书并且看起来没问题,这个问题的公认答案也适用。 对于 Visual Studio 2017,请参阅 ***.com/questions/44142037/… 【参考方案1】:Windows 10 用户:修复仅在控制面板中,不在添加删除程序应用程序中。我通常运行 appwiz.cpl 来启动旧的控制面板小程序并从那里运行修复。
Windows 7 和 8.1: 转到添加/删除程序并在 IIS Express 上选择“修复”选项后,证书已重新安装,我现在可以使用 HTTPS 启动 IIS Express 站点。
证书回来了:
我现在可以使用 HTTPS 启动 IIS Express 站点:
【讨论】:
也适用于我,但就我而言,证书在那里。不知道为什么,但这导致了同样的错误。所以我删除了证书,并“修复”重新安装了这个,瞧。非常感谢。 Windows 10 用户注意事项:修复仅在控制面板中,不在添加删除程序应用程序中。好主意msft。 更快的方法是启动 Jexus Manager 并生成新证书,然后绑定到您的站点。 jexusmanager.com 当然,它还没有修复损坏的证书绑定,我会看看如何让它成为一键式功能。 VS2019 用户注意事项:“修复”将不起作用,因为 Visual Studio 安装程序没有将 MSI 文件放在控制面板预期的位置。但是,在同一目录中有一个_package.json
文件,它包含 MSI 文件的 URL。您可以手动运行它,也可以将其复制到控制面板所需的位置。
IIS Express 上的修复似乎对我不起作用。我正在使用 Visual Studio 2019,但我无法找到正确的 MSI 来手动运行它。【参考方案2】:
对于 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 替换为您的网址。
例如
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。 如果这里有人在获取 IIS Express 使用的特定端口时遇到问题,您可能需要检查是否有人在 IIS 中使用该端口注册了站点。那是我今天的一天。 在 Windows 10 中,IIS Express具有一个修复选项。您需要通过控制面板。接受的答案对我有用。 如果你厌倦了使用命令行,你可以使用 Jexus Manager 来做同样的事情,blog.lextudio.com/…【参考方案3】:另请注意,要使 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
【讨论】:
在使用 Bernie White 的答案中的命令后,我能够使用此范围之外的端口,没有任何问题。 Windows 10 / Visual Studio Community 2015 / .Net Core 1.0.1 / IIS Express 10.0 谢谢!这为我解决了这个问题。奇怪的是 Visual Studio 没有对此发出警告。 44300-44399 只是映射了证书的默认端口范围。您可以通过调用netsh
轻松创建类似的证书映射,或者直接使用Jexus Manager,blog.lextudio.com/…【参考方案4】:
有时此错误是因为为 localhost 安装了 不同 证书。如果是这种情况,则无需恢复 IIS Express 证书。相反,您可以执行以下操作来告诉 IIS Express 使用您现有的证书:
-
如here 所述打开证书 MMC 管理单元
找到您的本地主机证书,例如在 Personal...Certicates 下并获取其指纹:
-
打开 localhost 证书的属性对话框并找到 Thumbprint 属性
将指纹值粘贴到记事本(或其他)中,并删除开头的空格和任何特殊字符
-
转到 Visual Studio 中的项目属性并找到“SSL URL”值,例如“https://localhost:44300/MyApp”。
在本例中,44300 是端口号。如果您的不同,请在后面的命令中更改该值。
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。
【讨论】:
更直观的方式是使用 Jexus Manager,blog.lextudio.com/…,这样您就不必记住证书哈希等细节。 如果您收到“参数不正确”。错误 - 先使用此 appid,然后使用 certash。示例:netsh http add sslcert ipport=0.0.0.0:44300 appid=C21B9F4D-2A5D-4160-81C8-FBCC3EFC335E certash=your_cert_hash_with_no_spaces【参考方案5】:对于新的 Chrome 58,以下答案无济于事。我刚刚花了 1 小时卸载/重新安装证书并试图找出问题所在。
显然 Chrome 58 将拒绝证书,因为“missing_subjectAltName”
解决方案是“badidea”密码短语,或者如果您需要打开弹出窗口进行登录,您必须使用:
chrome://flags/#allow-insecure-localhost
来源是,点赞属于:https://***.com/a/38926117/2089232 :)
【讨论】:
见***.com/questions/43676993/… 另见blog.lextudio.com/…【参考方案6】:我想添加这个,因为它很荒谬,但也许它会对某人有所帮助。请记住,我以前从未打开过我的项目属性,所以我不知道这是怎么发生的(我自己没有更改,也没有机会更改),但是在 Project > Properties > Web 我的 SSL url 被列为我常用的 URL但作为 http 而不是 https(以前是 https,因为它以前可以工作)。我完成了此页面上列出的所有步骤,卸载了 VS,然后卸载了 IIS,最后注意到应该是 https://mySSLURL 的错误(但在 https 中缺少 s)。一旦我将 http 更改为 https,一切都会再次运行。
【讨论】:
谢谢。为我节省了很多卸载/重新安装!【参考方案7】:在将我的 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
希望这会有所帮助!
【讨论】:
这是唯一对我有用的解决方案。【参考方案8】:您可以重新安装 IIS Express 10.0(或您需要的任何版本)来修复丢失的证书。 Download from Microsoft here
【讨论】:
以上是关于如何将IIS被删除的SSL服务器证书私钥重新恢复回来的主要内容,如果未能解决你的问题,请参考以下文章