我无法让IIS Express为我正在开发的VS2010 MVC3项目接受安全连接。我可以让它接受端口80上的不安全连接,但不能接受端口443上的安全连接。
基于googling搜索,我采取了以下步骤:
1)通过在VS2010命令行上执行以下命令,找到IIS Express Server自签名证书的SHA1指纹:
certmgr.exe /c /s /r localMachine MY
结果是9B088F80 A4FC3141 28F62890 70BA1FC4 49FDD009。后来我了解到,在使用指纹时需要删除空格。
2)通过在提升的命令行提示符上执行以下命令,删除链接到端口443的所有证书:
netsh http delete sslcert ipport=0.0.0.0:443
3)通过运行VS2010工具菜单上的Create GUID生成新的GUID。在我的例子中,我得到了B0421A5B-FF61-47CE-892D-11AA3A9C7D2A。
4)通过在提升的命令行提示符下执行以下命令,将自签名证书安装到端口443:
netsh http add sslcert ipport=0.0.0.0:443 certhash=9B088F80A4FC314128F6289070BA1FC449FDD009 appid={B0421A5B-FF61-47CE-892D-11AA3A9C7D2A}
5)通过在提升的命令行提示符下运行以下命令,修改了ACL:
netsh http add urlacl url=https://localhost:443/ user=everyone
6)通过添加端口443和https协议的绑定,修改了IIS Express的application.config文件。该文件的sites部分最终如下所示:
<sites>
<site name="Development Web Site" id="1" serverAutoStart="true">
<application path="/">
<virtualDirectory path="/" physicalPath="%IIS_BIN%\AppServer\empty_wwwroot" />
</application>
<bindings>
<binding protocol="https" bindingInformation="*:443:localhost" />
<binding protocol="http" bindingInformation="*:80:localhost" />
</bindings>
</site>
<siteDefaults>
<logFile logFormat="W3C" directory="%IIS_USER_HOME%\Logs" />
<traceFailedRequestsLogging directory="%IIS_USER_HOME%\TraceLogFiles" enabled="true" maxLogFileSizeKB="1024" />
</siteDefaults>
<applicationDefaults applicationPool="IISExpressAppPool" />
<virtualDirectoryDefaults allowSubDirConfig="true" />
</sites>
7)在提升的命令行提示符下执行以下命令,重新启动http服务:
net stop http
net start http
8)将MVC项目属性页的Web选项卡上的项目URL更改为:
http://localhost/
在我进行此更改后,保存项目属性页会触发服务器的重新配置。
当我从VS2010内部启动MVC应用程序时,它会正确地绑定回http://localhost (在端口80上,默认情况下;我没有包含让IIS Express在端口80上使用不安全/正常连接的所有步骤,但它们本质上是步骤5到7,但重点是http和端口80,而不是https和端口443)。
然而,尝试转换到任何需要https的操作都会得到一个“服务器拒绝连接”的错误。
我做错了什么?
发布于 2011-04-06 22:35:45
将项目设置为使用IISExpress后,在解决方案资源管理器上选择该项目时按F4
键以调出属性,并在属性中设置SSL设置SSL Enable
,然后在SSL URL
下使用要用于true
的端口(在本例中为443)设置URL。
这对我来说是有效的,而不是在引擎盖下,并且自签名证书是自动的。
要在缺省情况下在该URL上运行项目,您可以右键单击该项目,选择属性,然后选择Web并将project Url替换为https://localhost:443
发布于 2016-12-30 05:07:24
如果您遵循了jbtule的步骤,但SSL仍然不起作用,请确保您的端口采用:443XX
格式。
Visual Studio为我启用SSL的第一个项目自动执行了此操作,但任何后续项目似乎都有随机的SSL端口。在Project > Web
UI下将其更改为上面的443结构得到了它,并为我工作。
发布于 2019-08-29 16:34:11
我最近在VS 2019和IIS Epress上遇到了一个非常类似的问题。我尝试将http更改为https,这样我就可以使用ADFS了。(消息:此站点无法访问本地主机不允许连接)。
在进一步研究之后,我尝试将“Require SSL”属性从true切换到false,然后再切换回true。这触发了对applicationhost.config文件的更新(...Vs \ SSL \ config \ applicationhost.config),它为https协议创建了一个具有新端口号的新ProjectName绑定。因此,我用建议的新端口修改了所有链接(在项目的web属性、配置文件和ADFS配置中),它可以工作。结论,对于同一站点,http端口不必与https端口相同。
https://stackoverflow.com/questions/5521305
复制相似问题