我有一个小型服务器运行着几台虚拟机,一些web服务器,还有一个windows 2008 R2远程桌面网关服务器。其意图是在Ubuntu11.10上运行一个Apache2服务器,它将充当一个反向代理服务器,根据所使用的主机名将请求转发到相应的服务器。
我已经为其他几个Ubuntu Apache2服务器和运行在我的2008年R2 RD网关服务器上的IIS7服务器提供了该功能。
通过工作,我的意思是我可以通过HTTP和HTTPS访问所有这些web服务器,基于我使用web浏览器访问的主机名。
但是,不起作用的是使用远程桌面网关功能,从外部客户端连接到内部RDP服务器。
我知道RD网关服务器的配置是正确的,因为如果我将外部HTTPS流量直接定向到它的IP (绕过apache2代理服务器),一切都可以正常工作。当我将apache2代理放在中间,并尝试从外部源建立RDP连接时,我在apache2 error.log中得到以下错误:
[error] (70007)The timeout specified has expired: proxy: prefetch request body failed to 192.168.2.172:443 (rdpgw.internal.domain.com) from xx.xx.xx.xx ()其中xx.xx是我外部客户端的IP。
远程客户端上的远程桌面客户端将提供一个通用的超时错误,并且在RD网关服务器上一切看起来都很好。当直接连接到RD网关服务器时,我可以在IIS日志文件中看到这一点:
2012-01-26 11:54:13 192.168.2.172 RPC_IN_DATA /rpc/rpcproxy.dll localhost:3388 443 - xx.xx.xx.xx MSRPC 401 1 2148074254 15
2012-01-26 11:54:13 192.168.2.172 RPC_OUT_DATA /rpc/rpcproxy.dll localhost:3388 443 - xx.xx.xx.xx MSRPC 401 1 2148074254 15当通过apache2代理进行连接时,我可以看到:
2012-01-26 11:54:53 192.168.2.172 RPC_IN_DATA /rpc/rpcproxy.dll localhost:3388 443 - 192.168.2.170 MSRPC 401 1 2148074254 46
2012-01-26 11:54:53 192.168.2.172 RPC_OUT_DATA /rpc/rpcproxy.dll localhost:3388 443 - 192.168.2.170 MSRPC 401 1 2148074254 31因此,第二种情况下的连接来自apache2代理。否则,联系似乎是一样的。
关于一件事,我不太确定它应该如何设置,那就是这两个服务器上的证书。我知道HTTPS在设计上不能被代理服务器“拦截”和转发,所以如果我正确的话,实际上这里涉及两个单独的SSL连接:一个从远程客户端到apache代理,一个从apache代理到RD网关服务器。我认为如果远程客户端看不到差异,最好是在apache代理和RD网关服务器上使用相同的自签名证书和私钥。
有相应的vhsot apache2配置文件的内容:
<VirtualHost *:443>
ServerName rdgw.externaldomainname.com
ProxyRequests off
ProxyPreserveHost on
ProxyPass / https://rdgw.internal.domain.com/
ProxyPassReverse / https://rdgw.internal.domain.com/
SSLEngine on
SSLProxyEngine on
RequestHeader set Front-End-Https "On"
SSLCertificateFile /etc/apache2/certs/rdgw.externaldomainname.com.crt
SSLCertificateKeyFile /etc/apache2/certs/rdgw.externaldomainname.com.key
</VirtualHost>希望有人知道该怎么做?应该是可能的,因为我找到了这篇MS文章,它描述了如何准确地设置这个配置,只使用MS作为代理服务器,而不是Ubuntu/Apache2 2。
发布于 2016-03-30 14:52:10
至少,我们已经在Apache https://github.com/bombadil/mod_代理_msrpc中找到了RPC over HTTP兼容性的解决方案。
它与WindowsServer2012R2上的Outlook和works (远程桌面服务)一起工作
非常感谢作者Micha Lenk aka bombadil!
https://serverfault.com/questions/353832
复制相似问题