为什么 SSL 443 无法在 IIS Express 中为 Visual Studio web 项目的自定义域工作?

Why does SSL 443 fail to work in IIS Express for custom domains of Visual Studio web projects?

我使用 IIS Express 设置 VS2013 以使用自定义域,如下所示:

http://mydomain.local
https://mydomain.local

端口 80 url 工作正常,端口 443 不工作(错误请求,页面无法显示,也就是站点不存在)。

为什么?

显然 IIS Express 正在努力映射或使用此名称的端口 443,但为什么呢?

applicationhost.config:

  <site name="MyDomain" id="16">
      <application path="/" applicationPool="Clr4IntegratedAppPool">
          <virtualDirectory path="/" physicalPath="C:\Projects\MyDomain" />
      </application>
      <bindings>
          <binding protocol="http" bindingInformation="*:80:MyDomain.local" />
          <binding protocol="https" bindingInformation="*:443:MyDomain.local" />
      </bindings>
  </site>

主机文件:

127.0.0.1   MyDomain.local

VS 项目属性:

启动Url、项目Url和覆盖应用程序根目录URL都是https://MyDomain.local

单击 Create Virtual Directory 不会出现错误,因为它对 applicationhosts.config 中的配置感到满意。

注意:单独使用上述设置,http://mydomain.local(端口 80)工作正常!

此外,查看项目节点上的属性window,所有设置都符合预期:

SSL Enabled: True
SSL URL:     https://mydomain.local 
URL:         http://mydomain.local

此外,查看任务栏中的 IIS Express,它们分别按预期显示为 443 和 80。

忍者:

应该没有必要(似乎 http:// 如何在不这样做的情况下工作),但我为此 运行 netsh 只是为了确保 URL 已注册:

netsh http add urlacl url=https://MyDomain.local:443/ user=Everyone

这当然会导致错误“...已经存在”。那么我 运行:

netstat -o
  TCP    127.0.0.1:80           mydomain:2063      ESTABLISHED     4
  TCP    127.0.0.1:2063         mydomain:http      ESTABLISHED     2276
  ...

我在443端口上没有看到任何camping。不,这台机器上没有安装Skype! (一个应该是常见的问题)。

我完全不知所措。有没有搞错?这不是火箭科学。

环境:

其他信息:

我疯狂地研究了这个。关于 Stack Overflow 和其他地方的许多文章。这里只是几个主要的:

Using Custom Domains With IIS Express

http://www.hanselman.com/blog/WorkingWithSSLAtDevelopmentTimeIsEasierWithIISExpress.aspx

我已经尝试了所有我能看到的符合逻辑的事情。对于我提出的问题,解决方案是设置我刚才描述的所有设置。既然那行不通,它 war运行 就是它自己的 post!

我错过了什么?

根据下面链接的博客,需要绑定证书到443端口,IIS Express已经为本地https开发绑定了44300到44399端口到本地证书。

我还没有尝试过,但是这个博客(的底部部分)显示了如何将 IISExpress 用于端口 44300 到 44399 的现有本地证书绑定到端口 443。

Run IISExpress on port 443 using SSL and wildcard subdomains