Ssl

使用 apache 的 HTTPS 反向代理

  • July 5, 2014

我正在使用這個 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 請求重定向而不是代理,您應該做兩件事:

  1. 將您的代理配置(SSLProxyEngine通過)移動ProxyPassReverse到 SSL 虛擬主機中/etc/httpd/conf.d/ssl.conf,以便它只適用於那裡
  2. 創建一個 HTTP 虛擬主機,它將重定向 - 可能在一個新.conf文件中/etc/httpd/conf.d
<VirtualHost *:80>
 ServerName redirect
 RewriteEngine On
 RewriteRule ^(.*) https://%{HTTP_HOST}/$1
</VirtualHost>

引用自:https://serverfault.com/questions/610363