Ssl
使用 apache 的 HTTPS 反向代理
我正在使用這個 apache 配置為在同一台機器上執行的程序設置反向代理,埠 8443,
<Directory "/var/www/html"> Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*) https://%{HTTP_HOST}/$1 </Directory> <IfModule mod_proxy.c> ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> SSLProxyEngine On ProxyPass / https://127.0.0.1:8443/ ProxyPassReverse / https://127.0.0.1:8443/ </IfModule>
在 8443 上執行的程序已經設置了 HTTPS/SSL 證書。這是一個有效/好的配置還是我可以做得更好?
我注意到目前即使 http:// 也將代理到 https:// 而無需進行重寫。我認為這可能會損害 SSL?我寧願只有 443 代理到 8443 並且只使用 URL 重寫將 http:// 請求重寫為 https:// 請求。這可能使用apache嗎?
謝謝。
編輯- 這是所要求的虛擬主機資訊,
VirtualHost Configuration: wildcard NameVirtualHosts and _default_ servers: _default_:443 127.0.0.1 (/etc/httpd/conf.d/ssl.conf:74) Syntax OK
要使 HTTP 請求重定向而不是代理,您應該做兩件事:
- 將您的代理配置(
SSLProxyEngine
通過)移動ProxyPassReverse
到 SSL 虛擬主機中/etc/httpd/conf.d/ssl.conf
,以便它只適用於那裡- 創建一個 HTTP 虛擬主機,它將重定向 - 可能在一個新
.conf
文件中/etc/httpd/conf.d
:<VirtualHost *:80> ServerName redirect RewriteEngine On RewriteRule ^(.*) https://%{HTTP_HOST}/$1 </VirtualHost>