首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在远程桌面网关服务器前使用Apache作为反向代理HTTPS服务器

在远程桌面网关服务器前使用Apache作为反向代理HTTPS服务器
EN

Server Fault用户
提问于 2012-01-26 12:14:56
回答 1查看 21K关注 0票数 6

我有一个小型服务器运行着几台虚拟机,一些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中得到以下错误:

代码语言:javascript
复制
[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日志文件中看到这一点:

代码语言:javascript
复制
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代理进行连接时,我可以看到:

代码语言:javascript
复制
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配置文件的内容:

代码语言:javascript
复制
<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。

EN

回答 1

Server Fault用户

发布于 2016-03-30 14:52:10

至少,我们已经在Apache https://github.com/bombadil/mod_代理_msrpc中找到了RPC over HTTP兼容性的解决方案。

它与WindowsServer2012R2上的Outlook和works (远程桌面服务)一起工作

非常感谢作者Micha Lenk aka bombadil!

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/353832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档