如何使用https而不是localhost的域名来调试IIS中的网站

时间:2017-07-29 13:28:38

标签: asp.net-mvc visual-studio iis single-sign-on okta

我正在我们的一个基于MVC的网站上实现单点登录(使用OKTA),一旦用户在OKTA登录页面上输入了他的凭据,OKTA就会将响应URL返回到我的代码

OKTA采用基于 HTTPS 的响应网址来发送响应。

我做过的事情:

1)我已使用 etc / hosts 文件为我的机器指定了一个虚拟主机名,如:

127.0.0.1 www.abc.com

2)在我本地计算机上的www.abc.com上启用 https://

3)指定路线{{controller}} / {{Action}}以在我的代码中接收回复。

4)我尝试将Bindings指定给我的本地applicationConf文件:

             <bindings>
                <binding protocol="http" bindingInformation="*:58565:localhost" />
                  <binding protocol="https" bindingInformation="*:443:www.abc.com" />
            </bindings>



我的VS项目配置如下所示:

enter image description here


当URL(OKTA抛出响应)就像 https:// www.abc.com/Home/Auth 当我写 localhost:58565 / Home / Index http:// www.abc.com/Home/Index 时,

问题启用VS调试时,它会触发断点,但是当我键入 https:// www.abc.com/Home/Index (使用https)时,它不会触及Visual Studio中的断点。使用https,它说404找不到。

我错过了什么吗?

由于

1 个答案:

答案 0 :(得分:0)

我解决了这个问题。发布解决方案,以便对其他人有所帮助。

我遵循的步骤:

1)使用Powershell创建自签名证书(确保使用Admin Privileges运行Powershell命令行)

New-SelfSignedCertificate -DnsName www.mydomain.com -CertStoreLocation cert:\LocalMachine\My

2)在我的ApplicationConf.host文件中有正确的绑定(此文件现在处于项目级别,因为VS 2015而不是IIS级别) 如下所示:

        <bindings>
                <binding protocol="http" bindingInformation="*:58565:localhost" />
                <binding protocol="https" bindingInformation="*:44311:localhost" />
       </bindings>

如果使用Hostname而不是Localhost,则可以添加更多绑定。确保每个绑定的端口不同。此外,Https端口应从443开始 - 结束于44399。

3)从IIS默认网站中删除现有的https绑定,然后将其添加回步骤1中创建的证书,并更正步骤1中使用的主机名。

现在,您应该能够使用自签名SSL在本地计算机上运行和调试代码。