Apache反向代理设置SSL证书

3

我们需要在Apache反向代理上设置安全证书。我们被建议使用虚拟主机指令。

我在O'Reilly书中查找了这些内容,但没有找到任何特别涉及https的示例。

有没有人有配置片段的示例来完成这个任务?

2个回答

5

我不确定您需要什么,但有多个事项需要处理。例如,您需要获取SSL证书,然后需要在Apache中安装mod_ssl。建议使用系统的软件包管理器进行安装等操作。

以下是虚拟主机的示例:

<VirtualHost IP.ADDRESS.HERE:443>
   DocumentRoot /web/domain.com/www/htdocs

   ServerName www.domain.com
   ServerAdmin server@domain.com

   SSLEngine on
   SSLCertificateFile /usr/local/etc/apache/ssl.crt/www.domain.com.crt
   SSLCertificateKeyFile /usr/local/etc/apache/ssl.key/www.domain.com.key

   ErrorLog "/var/logs/domain.com/error_log"
   CustomLog "|/usr/local/sbin/cronolog /var/logs/domain.com/%Y/%m/access_log" combined
</VirtualHost>

<VirtualHost />中的代理配置可能会有所不同。这假设域名指向服务器上的一个目录,但你在<VirtualHost />中所做的取决于你自己。

正如我所说的,我还需要在Apache中安装ssl,为了加载所需的模块,我需要以下内容:

LoadModule ssl_module libexec/apache/libssl.so
...
AddModule mod_ssl.c

基本上就是这样了。如果你需要更多的指引,请告诉我。另外,如果你运行的是Apache 1.3或2.x,也可以告诉我们。


你没有明确说,但 SSL 必须通过 IP 地址完成,不能使用虚拟主机名。 - Todd
正确的,专用的IP地址。对于多个SSL“主机”,您需要唯一的IP地址。 - Till
感谢您留下这个信息,它确实非常有用。 很抱歉评论晚了,因为这是一个被遗弃的匿名账户! Apache 2.2.10 是我们目前使用的版本。 - alimack
你如何获取crt和key文件? - Delta
使用OpenSSL:http://www.tc.umn.edu/~brams006/selfsign.html(我已经替您谷歌了)。 - Till
2
现在不再需要为SSL虚拟主机使用单独的IP地址。SNI得到了广泛的支持。(只是一个更新,因为这个2008年的帖子仍然在搜索引擎排名中很高) - Michael Mol

2

不确定这是否符合您的要求,但我过去使用了类似以下内容的东西:

<IfModule mod_ssl.c>
    SSLProxyEngine On
    ProxyPreserveHost On
    RewriteRule ^/whatever(.*)$       https://otherhost/whatever$1  [P]
</IfModule>

我需要代理来自另一个主机的安全内容,那就是我们最终使用的方法。目前一切正常,已经使用了一段时间。这是否涵盖了您所寻找的内容?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接