首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >IIS Express --让SSL正常工作

IIS Express --让SSL正常工作
EN

Stack Overflow用户
提问于 2011-04-02 13:07:45
回答 4查看 57.4K关注 0票数 74

我无法让IIS Express为我正在开发的VS2010 MVC3项目接受安全连接。我可以让它接受端口80上的不安全连接,但不能接受端口443上的安全连接。

基于googling搜索,我采取了以下步骤:

1)通过在VS2010命令行上执行以下命令,找到IIS Express Server自签名证书的SHA1指纹:

代码语言:javascript
复制
certmgr.exe /c /s /r localMachine MY

结果是9B088F80 A4FC3141 28F62890 70BA1FC4 49FDD009。后来我了解到,在使用指纹时需要删除空格。

2)通过在提升的命令行提示符上执行以下命令,删除链接到端口443的所有证书:

代码语言:javascript
复制
netsh http delete sslcert ipport=0.0.0.0:443

3)通过运行VS2010工具菜单上的Create GUID生成新的GUID。在我的例子中,我得到了B0421A5B-FF61-47CE-892D-11AA3A9C7D2A。

4)通过在提升的命令行提示符下执行以下命令,将自签名证书安装到端口443:

代码语言:javascript
复制
netsh http add sslcert ipport=0.0.0.0:443 certhash=9B088F80A4FC314128F6289070BA1FC449FDD009 appid={B0421A5B-FF61-47CE-892D-11AA3A9C7D2A}

5)通过在提升的命令行提示符下运行以下命令,修改了ACL:

代码语言:javascript
复制
netsh http add urlacl url=https://localhost:443/ user=everyone

6)通过添加端口443和https协议的绑定,修改了IIS Express的application.config文件。该文件的sites部分最终如下所示:

代码语言:javascript
复制
        <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服务:

代码语言:javascript
复制
net stop http
net start http

8)将MVC项目属性页的Web选项卡上的项目URL更改为:

代码语言:javascript
复制
http://localhost/

在我进行此更改后,保存项目属性页会触发服务器的重新配置。

当我从VS2010内部启动MVC应用程序时,它会正确地绑定回http://localhost (在端口80上,默认情况下;我没有包含让IIS Express在端口80上使用不安全/正常连接的所有步骤,但它们本质上是步骤5到7,但重点是http和端口80,而不是https和端口443)。

然而,尝试转换到任何需要https的操作都会得到一个“服务器拒绝连接”的错误。

我做错了什么?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5521305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档