Linux

如何強制 http webapp 使用 https (ssl)?

  • July 9, 2015

在我們的 Linux 伺服器上,我們有某種或 WebApp 執行它自己的小型網路伺服器,僅使用 http。這意味著它本身不支持 ssl。所以我正在尋找一種在這個小 Webserver/WebApp 前面打包“東西”的方法,所以它正在與使用者交談 https(必需)並讓它繼續在本地與 WebApp 交談 http(伺服器內部)。

我試圖找到類似的東西。但事實上我發現了很多關於 apache、ssl 和反向代理的東西並沒有真正解決問題。我比以前更困惑。

需要一些提示、關鍵字或實現此目的的配置範例。

謝謝

在你的 webapp 前面設置一個 NGINX 或類似的伺服器來代理流量。然後使用 SSL 證書設置 NGINX。

設置您的 webapp 以在 fx 上執行。埠 8080 並使用這段程式碼在 NGINX 中代理它:

location / {
 proxy_pass http://127.0.0.1:8080/;
}

啟用 SSL 的整個伺服器塊應如下所示:

server {
       listen 80 default_server;
       listen [::]:80 default_server ipv6only=on;

       listen 443 ssl;

       server_name example.com;
       ssl_certificate /etc/nginx/ssl/nginx.crt;
       ssl_certificate_key /etc/nginx/ssl/nginx.key;

       location / {
               proxy_pass http://127.0.0.1:8080/;
       }
}

Apache 虛擬主機配置範例:

<VirtualHost *:443>
   ServerName example.com
   ErrorLog ${APACHE_LOG_DIR}/error.log
   LogLevel warn
   CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined

   SSLEngine on
   SSLCertificateFile    /path/to/certificatefile
   SSLCertificateKeyFile /path/to/keyfile

       <Location />
           ProxyPass          http://your-webserver:8080/
           ProxyPassReverse   http://your-webserver:8080/
       </Location>
</VirtualHost>

它尚未經過測試,可能需要進行一些調整,但應該讓您了解如何設置它。

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