与本地raven实例的连接不能使用https工作

时间:2015-02-02 16:20:01

标签: iis ravendb

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

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

打开连接时出现401拒绝错误。如果我禁用重定向并且非安全地连接到localhost,它可以正常工作:

Url=http://localhost;Database=StaffDb

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

  

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

Ayende's blog provides some more context,我按照a Microsoft support article中列出的步骤修正了这个问题:

  

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

     

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

     

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