Kev*_*vin 126 ssl visual-studio-debugging visual-studio-2013
我第一次使用新的Visual Studio 2013和IISExpress(之前在VS2010上使用的ASP.net开发服务器).我遇到了试图调试我的项目的问题.
这就是我在Chrome中看到的内容:
无法与服务器建立安全连接.这可能是服务器的问题,或者可能需要您没有的客户端身份验证证书.错误代码:ERR_SSL_PROTOCOL_ERROR
我更新了我的Properies - > web文件,以便Project Url现在使用https URL.但是,在执行此操作后,我现在在启动时遇到新错误:
与localhost的连接中断.错误代码:ERR_CONNECTION_RESET
谢谢
Jas*_*ban 328
我得到ERR_CONNECTION_RESET因为我的Visual Studio 2013/IIS Express配置的应用程序端口号不在范围内:44300-:44398.(我不记得必须忽略任何警告才能超出该范围.)将端口号更改为此范围内的某些内容是我必须做的才能使其正常工作.
在查看了netsh http show sslcert > sslcert.txt
输出后,我注意到了这一点,并且点击了我最近读到的有关端口号的内容.
小智 81
确保删除任何以前的"localhost"证书,因为这些证书可能与IIS Express生成的证书冲突.我有同样的错误(ERR_SSL_PROTOCOL_ERROR),在尝试了许多"解决方案"之后我花了很多时间才弄明白.我的错误是我创建了自己的'localhost'证书,其中有两个.我不得不删除它们并让IIS Express重新创建它.
以下是检查和删除"localhost"证书的方法:
在Visual Studio上,选择项目,然后在属性选项卡下,启用SSL = true.保存,构建和运行.IIS Express将生成新的"localhost"证书.
注意:如果它不起作用,请尝试以下操作:确保在删除"localhost"证书之前,在VS项目上禁用IIS Express并停止其上的所有正在运行的应用程序.此外,您可以转到"控制面板>程序"和"修复IIS Express".
小智 40
如果您使用URLRewrite在web.config中强制SSL连接,则可能会重写您的localhost地址以强制https.如果启用SSL的调试对您来说并不重要,并且您正在使用URLRewrite,请考虑添加<add input="{HTTP_HOST}" pattern="localhost" negate="true" />
到web.config文件的重写部分.它将停止重写任何本地主机地址,但将其保留在生产环境中.如果您没有使用URLRewrite或需要使用SSL进行调试,那么http://www.hanselman.com/blog/WorkingWithSSLAtDevelopmentTimeIsEasierWithIISExpress.aspx可能会有所帮助.它适用于VS2010,但也适用于VS2013.
Kar*_*hik 30
我总结了帮助我解决这个问题的步骤:
在安装过程中,IIS Express使用Http.sys保留端口44300到44399以供SSL使用.这使IISExpress的标准用户(没有提升权限)可以配置和使用SSL.有关详细信息,请参阅此处
netsh http show sslcert> sslcert.txt
IP:端口 :0.0.0.0:44300
证书哈希 :eb380ba6bd10fb4f597cXXXXXXXXXX
申请ID :{214124cd-d05b-4309-XXX-XXXXXXX}
(单击ServerRoot - >在IIS() - >打开服务器证书下)
netsh http delete sslcert ipport = 0.0.0.0:44300
netsh http add sslcert ipport = 0.0.0.0:44300 certhash = New_Certificate_Hash_without_space appid = {214124cd-d05b-4309-XXX-XXXXXXX}
New_Certificate_Hash将是您的本地主机(我们在步骤4中找到)或您要添加为新证书的默认证书.
PS感谢您的回答uosɐs(帮助我解决了这个问题)
Pus*_*ots 22
我遇到的问题与我有关,在某个时间点,为本地主机启用HSTS而没有意识到这会破坏我在IIS Express中的http:// localhost:someport.
HSTS告诉浏览器(在我的情况下为Chrome)始终使用HTTPS请求URL.因此,即使我甚至没有为我的MVC 5应用程序启用SSL,浏览器仍然会尝试使用URL而不是HTTP来访问我的网站.
修复?
Dha*_*shM 12
对我来说,它使用了博客中提供的解决方案。
C:\Program Files (x86)\IIS Express\IisExpressAdminCmd.exe setupsslUrl -url:https://localhost:44387/ -UseSelfSigned
Run Code Online (Sandbox Code Playgroud)
使用您的项目用于 https 的端口。
我遇到的问题与@Jason Kleban 的回答有关,但我在 IIS Express 的 Visual Studio 属性中的设置有一个小问题。
确保在将端口更改为以下范围后:44300 到 44399,地址也以 HTTPS
就我而言,我在端口 443 上运行时遇到了这个确切的错误,并且(出于我不会在这里讨论的原因)切换到不同的端口不是一个选项。为了让 IIS Express 在端口 443 上工作,我必须运行此命令...
C:\Program Files\IIS Express>IisExpressAdminCmd.exe setupsslUrl -url:https://localhost:443/ -UseSelfSigned
Run Code Online (Sandbox Code Playgroud)
非常感谢 Robert Muehsig 最初在此发布此解决方案。
在我的情况下,我创建了一个自签名证书并使其正常工作,除了我在浏览器中收到错误,因为证书不受信任.因此,我将证书移动到"证书"管理单元中的"受信任的根证书颁发机构">"证书"文件夹中.它工作,然后我关闭Visual Studio当天.
第二天,我开始了我的项目,并收到了原始问题中提到的错误.问题是您配置IISExpress的证书必须存在于Personal> Certificates文件夹中,否则HTTPS将停止工作.IIS Express成功启动后,您可以将证书拖回受信任位置.它将继续工作,直到您重新启动IIS Express.
我不想每次来回拖动证书都大惊小怪,我只是在两个地方都放了一份证书副本,现在一切正常.
小智 5
我在Visual Studio 2015中遇到同样的问题.因为我在web.config中使用SSL绑定
<rewrite>
<rules>
<rule name="HTTP to HTTPS Redirect" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Found" />
</rule>
</rules>
</rewrite>
Run Code Online (Sandbox Code Playgroud)
我可以用Mr.djroedger的答案解决这个问题.通过更换
<add input="{HTTPS}" pattern="off" />
Run Code Online (Sandbox Code Playgroud)
同
<add input="{HTTP_HOST}" pattern="localhost" negate="true" />
进入我的web.config,所以我的代码是
<rewrite>
<rules>
<rule name="HTTP to HTTPS Redirect" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="localhost" negate="true" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Found" />
</rule>
</rules>
</rewrite>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
94950 次 |
最近记录: |