跳至主要内容

安裝SSL憑證的網站如何實現HTTP重新導向到HTTPS?

完成SSL憑證部署後,需在伺服器設定301強制重新導向規則實現全站HTTPS加密存取。各伺服器具體操作方法:

提示

設定後請清除瀏覽器快取測試,推薦使用 Racent SSL檢測工具 驗證跳轉狀態

Nginx

如果您需要將 HTTP 請求自動重新導向到 HTTPS,您可以透過以下操作設定:

  1. 使用Nginx重新導向功能,在HTTP的 server 中增加 return 301 https://$host$request_uri; ,即可將 HTTP 請求重新導向為 HTTPS。修改如下內容:

    server {
    listen 80;
    #把http的域名请求转成https
    return 301 https://$host$request_uri;
    }

  2. 重新啟動 Nginx 伺服器即可使用網域名稱存取,實現 HTTP 自動跳轉 HTTPS

提示

完整安裝SSL證書流程請查看 Nginx伺服器安裝sslTrus ssl證書教學


Tomcat

如果您需要將 HTTP 請求自動重新導向到 HTTPS,您可以透過以下操作設定:

  1. 編輯 /usr/tomcat9.0.13/conf 目錄下的 web.xml 檔案,找到 </welcome-file-list> 標籤。

  2. 請在結束標籤 </welcome-file-list> 後面換行,並新增以下內容。

    <login-config>  
    <!-- Authorization setting for SSL -->
    <auth-method>CLIENT-CERT</auth-method>
    <realm-name>Client Cert Users-only Area</realm-name>
    </login-config>
    <security-constraint>
    <!-- Authorization setting for SSL -->
    <web-resource-collection >
    <web-resource-name >SSL</web-resource-name>
    <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <user-data-constraint>
    <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
    </security-constraint>
  3. 編輯 /usr/tomcat9.0.13/conf 目錄下的 server.xml 檔案,將 redirectPort 參數修改為 SSL 的 connector 的連接埠,即 443 連接埠。如下所示:

    <Connector port="80" protocol="HTTP/1.1"
    connectionTimeout="20000"
    redirectPort="443" />
  4. 儲存設定檔,在 bin 目錄下執行以下命令,確認設定是否正確。

    ./configtest.sh
  5. 如果設定沒有問題,重啟 Tomcat 伺服器即可使用網域名稱存取,實現 HTTP 自動跳轉 HTTPS。

    ./shutdown.sh  #關閉 Tomcat 伺服器
    ./startup.sh #啟動 Tomcat 伺服器
提示

完整安裝 SSL 證書流程請查看 Tomcat伺服器安裝銳安信ssl證書教程


IIS

  1. 開啟 IIS 服務管理員。

  2. 選擇網站下的站台名稱,按兩下開啟「URL 重寫」。如下圖所示:

    注意

    執行該步驟前請先下載安裝 URL Rewrite模組

    IIS

  3. 進入「URL 重寫」頁面,並按一下右側「動作」欄的 新增規則。如下圖所示:

    IIS

  4. 在彈出的「新增規則」視窗中,選擇 空白規則,按一下 確定。如下圖所示:

    IIS

  5. 進入「編輯輸入規則」頁面。如下圖所示:

    IIS

    • 名稱:填寫 Http redirect to https。
    • 比對 URL:在「模式」中手動輸入 (.*)
    • 條件:
      • 按一下新增,彈出「新增條件」視窗。
      • 條件輸入:{HTTPS}
      • 檢查輸入字串是否:預設選擇與模式比對。
      • 模式:手動輸入 ^OFF$
    • 動作:填寫以下參數。
      • 動作類型:選擇重新導向。
      • 重新導向 URL:https://{HTTP_HOST}/{R:1}
      • 重新導向類型:301重新導向。
  6. 按一下右側「動作」欄的 套用 儲存。

  7. 返回網站首頁,按一下右側「管理網站」欄的 重新啟動。即可使用HTTPS進行存取。

提示

完整安裝SSL證書流程請參閱 IIS伺服器安裝銳安信ssl證書教程


Apache

如果您需要將 HTTP 要求自動重新導向到 HTTPS,您可以透過以下操作設定:

  1. 編輯 /etc/httpd/conf 目錄下的 httpd.conf 設定檔。檢查該設定檔中是否存在 LoadModule rewrite_module modules/mod_rewrite.so。 如果存在,請移除首行的註解符號(#);如果不存在,請新增該行 LoadModule rewrite_module modules/mod_rewrite.so,然後儲存設定檔。

  2. 開啟http.conf檔案,在設定檔中新增以下內容:

    <VirtualHost *:80>
    # 新增
    RewriteEngine on
    RewriteCond %{SERVER_PORT} !^443$
    RewriteRule ^(.*)?$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
    </VirtualHost>
  3. 重新啟動 Apache 伺服器即可使用網域名稱存取,實現 HTTP 自動跳轉至 HTTPS。

提示

完整安裝 SSL 證書流程請參閱 Apache伺服器安裝sslTrus SSL證書教學


Apache2

如果您需要將 HTTP 請求自動重新導向到 HTTPS,可以透過以下步驟進行設定:

  1. 在命令列中輸入 a2enmod rewrite 啟用重新導向模組

  2. 然後開啟 http 設定檔,例如:/etc/apache2/sites-available/000-default.conf,在設定檔中新增以下內容:

    <VirtualHost *:80>
    # 新增
    RewriteEngine on
    RewriteCond %{SERVER_PORT} !^443$
    RewriteRule ^(.*)?$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
    </VirtualHost>
  3. 重新啟動 Apache 伺服器即可使用網域名稱存取,實現 HTTP 自動跳轉至 HTTPS。

提示

完整安裝 SSL 證書流程請參閱 Apache2伺服器安裝sslTrus SSL證書教學