我的应用服务器(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