【问题标题】:connection to local raven instance doesn't work using https使用 https 无法连接到本地 raven 实例
【发布时间】:2015-02-02 16:20:00
【问题描述】:

我正在尝试在托管 IIS 托管的 raven 服务器(内部版本 2947)的同一台服务器上运行客户端应用程序。托管 raven 的 IIS 站点绑定到 SSL 证书/主机名 - 我们只想强制执行安全请求(并将 http 请求重定向到 https)。当我将连接设置为使用 https 协议时:

Url=https://ravendb.somewhere.net;Database=StaffDb

打开连接时收到 401 denied 错误。如果我禁用重定向并以非安全方式连接到 localhost,它可以正常工作:

Url=http://localhost;Database=StaffDb

The docs suggest SSL can only be enabled when running as a service - 这是否意味着我们无法在安全的 IIS 站点中运行?

【问题讨论】:

    标签: iis ravendb


    【解决方案1】:

    使用 SSL 时,您必须在证书中使用指定的主机名。

    【讨论】:

    • 这就是我正在做的事情 - ravendb.somewhere.net 是我们证书中的“颁发给”。在我们的连接字符串中指定这个会产生 401 错误?
    【解决方案2】:

    感谢 Ayende Rahien 提供的离线支持,原来这个问题实际上是由于 IIS 本身的一个特性:

    Windows XP SP2 和 Windows Server 2003 SP1 包含环回检查 旨在帮助防止反射攻击的安全功能 在你的电脑。因此,如果 FQDN 或 您使用的自定义主机标头与本地计算机不匹配 名字。

    Ayende's blog provides some more context,我按照a Microsoft support article 中概述的步骤解决了这个问题:

    方法二:禁用环回检查(不太推荐的方法) 第二种方法是通过设置 DisableLoopbackCheck 注册表项。

    要设置 DisableLoopbackCheck 注册表项,请按以下步骤操作:

    .....
    2. 单击开始,单击运行,键入 regedit,然后单击确定。
    3. 在注册表编辑器中,找到并单击以下注册表项:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
    4. 右键单击​​ Lsa,指向新建,然后单击 DWORD 值。
    5. 键入 DisableLoopbackCheck,然后按 ENTER。
    6. 右键单击​​ DisableLoopbackCheck,然后单击修改。
    7. 在数值数据框中,键入 1,然后单击确定。
    8. 退出注册表编辑器,然后重新启动计算机。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-05
      • 2021-12-11
      • 2015-04-30
      • 1970-01-01
      • 2011-06-01
      • 2019-03-23
      相关资源
      最近更新 更多