我在 Windows 2003 服务器计算机上使用 Apache+Subversion 设置了一个 Subversion 服务器。我可以使用 http 签出,但不能使用 https。它说使用 https 地址时无法连接到服务器。SVN 版本是 1.6.0 Apache 版本是 2.2.20 我正在加载 SSL 模块。我还设置了 OpenSSL 并在 Apache 中启用了 ssl.config 文件。我可以使用客户端使用 netcat 和端口 443(使用 TCP)与我的服务器通信,我被告知该端口用于 https。不确定还能做什么以及在哪里查看。为什么我无法使用 TortoiseSVN 通过 https 连接到服务器?但我可以用 http 做同样的事情?谢谢,Ofer。
答案1
Windows IIS 将有效地将端口 443 作为人质,并且不允许任何其他进程侦听端口 443,无论绑定如何。
即使 IIS 没有设置与用于存储库服务器的 IP 地址的绑定,除非明确告知 IIS 要监听哪些 IP 地址,否则 IIS 仍会劫持该 IP 地址。
Win Server 2k8(2k3 可能也一样)中没有 GUI 来配置 IIS 监听的 IP 地址;默认情况下,IIS 监听分配给服务器的所有 IP 地址。
以下内容将有助于配置 IIS 以仅侦听您想要的 IP 地址:
- 打开命令提示符
- 进入:
netsh
- 进入:
http
- 输入:
show iplisten
--> 这将显示 IIS 正在监听的 IP 地址表。默认情况下,该表为空(我猜这意味着 IIS 监听所有 IP) - 对于 IIS 应该监听的每个 IP 地址,输入:
add iplisten ipaddress=x.x.x.x
- 输入:
show iplisten
--> 您现在应该看到所有添加到监听表的 IP 地址。 - 退出然后重置 IIS。
这些命令也可以直接运行,即netsh http show iplisten
如果需要从监听表中删除一个IP地址:
- 打开命令提示符
- 进入:
netsh
- 进入:
http
- 进入:
delete iplisten ipaddress=x.x.x.x
- 退出然后重置 IIS。
免责声明
几个月前我遇到了同样的问题,并在 ServerFault 上提出了这个问题:如何在同一台服务器上运行 IIS 的端口 443 上运行 VisualSvn Server? 这里提供的解决方案是我针对同一问题想出并发布的。
答案2
问题似乎是我完全忘记加载 mod_ssl.so 模块。