Proxy
XAMPP如何保護埠443的轉發代理
我需要一些幫助來保護我的測試 XAMPP 伺服器在埠 80 和 443 上的安全。我在 Windows 7 機器上執行 Apache 2.4.7。
設置如下:
我正在將來自我的伺服器 IP、埠 80 和 443 的所有流量重定向到在 localhost:5000 上執行的 java 應用程序。
在 httpd-vhosts.conf 文件中執行所有這些操作的程式碼如下:
<VirtualHost *:80> ServerName demo.website.com ServerAlias website.com <Location /> ProxyPass http://localhost:5000/ ProxyPassReverse http://localhost:5000/ </Location> </VirtualHost> <VirtualHost *:443> ServerName demo.website.com ServerAlias website.com <Location /> ProxyPass /api/socket ws://localhost:5000/api/socket ProxyPassReverse /api/socket ws://localhost:5000/api/socket ProxyPass http://localhost:5000/ ProxyPassReverse http://localhost:5000/ </Location> SSLEngine on SSLCertificateFile "conf/ssl.crt/cert1.crt" SSLCertificateKeyFile "conf/ssl.key/cert1.key" </VirtualHost>
上面的程式碼適用於埠 80,但是當我將它添加到埠 443 時,apace 無法啟動。注意:我已啟用
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
.**EDIT1:**我在 Apache 中遇到的錯誤是:
ProxyPass|ProxyPassMatch can not have a path when defined in a location
似乎問題在於這兩行,當我刪除它們時,Apache 啟動得很好:
ProxyPass /api/socket ws://localhost:5000/api/socket ProxyPassReverse /api/socket ws://localhost:5000/api/socket
編輯2
我終於這樣做了:
<VirtualHost *:443> ServerName demo.website.com ServerAlias website.com <Location /api/socket> ProxyPass ws://localhost:5000/api/socket ProxyPassReverse ws://localhost:5000/api/socket </Location> <Location /> ProxyPass http://localhost:5000/ ProxyPassReverse http://localhost:5000/ </Location> SSLEngine on SSLCertificateFile "conf/ssl.crt/cert1.crt" SSLCertificateKeyFile "conf/ssl.key/cert1.key" </VirtualHost>
從安全的角度來看,這很好嗎?
<VirtualHost *:443> ServerName demo.website.com ServerAlias website.com <Location /api/socket> ProxyPass ws://localhost:5000/api/socket ProxyPassReverse ws://localhost:5000/api/socket </Location> <Location /> ProxyPass http://localhost:5000/ ProxyPassReverse http://localhost:5000/ </Location> SSLEngine on SSLCertificateFile "conf/ssl.crt/cert1.crt" SSLCertificateKeyFile "conf/ssl.key/cert1.key" </VirtualHost>
從安全的角度來看,這很好嗎?
從技術上講,這將按預期/需要工作,這不是一個直接的安全問題(如執行開放代理伺服器)。
為了獲得更安全的環境,您可能需要進行一些權衡和調整,而不僅僅是使用 Apache httpd 軟體包附帶的預設設置:
- 定期檢查並安裝安全更新和重大修復
- https://httpd.apache.org/docs/2.4/misc/security_tips.html是強化 Apache httpd 伺服器的眾多入門指南之一
- 調整您的 TLS 設置。使用https://www.ssllabs.com/ssltest/
測試您的伺服器, 遵循他們的建議和來自https://cipherli.st/的建議
- 特別是對於 API 以及更通用的網站/應用程序,您可能希望將允許的http 方法限制為僅 GET、POST、PUT、DELETE、CONNECT、OPTIONS、PATCH、PROPFIND、PROPPATCH、MKCOL、COPY 的子集,移動、鎖定和解鎖。
- 當您只需要反向代理功能時,請使用更輕量級的東西,而不是像 Apache 這樣的完整 Web 伺服器。