反向代理背后的 Apache 虚拟主机 SSL

反向代理背后的 Apache 虚拟主机 SSL

我的应用服务器(Apache)前面有一个 Web 服务器(Apache 反向代理),我正在尝试传递 SSL 的通用名称。

我的 Web 服务器(Apache 反向代理)设置为保留主机名(ProxyPreserveHost On)

在我的应用服务器(Apache)上,如何配置虚拟主机来获取代理服务器传递的主机名?

我收到如下错误:

[warn] RSA server certificate is a CA certificate (BasicConstraints: CA == TRUE !?)
[warn] RSA server certificate CommonName (CN) `appserver01' does NOT match server name!?

我的应用服务器 (Apache 配置) 上是否需要启用其他任何功能?我的虚拟主机如下所示:

NameVirtualHost *:80
Header always append X-Frame-Options SAMEORIGIN

<VirtualHost *:80>
    DocumentRoot /var/www/app
    ServerName www.app.com
    ServerAlias app.com
    ServerAlias appserver01.domain.com

    <Directory /var/www/app>
        Options All
        AllowOverride All
    </Directory>

</VirtualHost>

<VirtualHost IP_OF_WEB_SERVER_HERE:443>
    DocumentRoot /var/www/app
    ServerName www.app.com
    ServerAlias app.com
    ServerAlias appserver01.domain.com

    <Directory /var/www/app>
        AllowOverride All
    </Directory>

    SSLProxyEngine On
    SSLEngine On
    SSLCertificateFile    /etc/ssl/certs/www_app_com_cert.cer
    SSLCertificateKeyFile /etc/ssl/certs/www_app_com.key
    SSLCACertificateFile /etc/ssl/certs/ca-bundle.crt

</VirtualHost>

基本上,我想允许主机名通过代理服务器,这样我的 SSL 证书就可以正常工作。我已启用 ProxyPreserveHost,但它似乎不起作用,因为 Apache Web 服务器仍将主机名视为内部主机名“appserver01”,而不是“www.app.com”。

谢谢

答案1

尝试启用 SSL 代理引擎:

SSLProxyEngine On

相关内容