HTTPS 怎麼設定?SSL 憑證安裝與 HTTP 轉址教學

內容大綱

HTTPS 怎麼設定:先安裝 SSL 憑證,再讓 HTTP 安全轉向 HTTPS

HTTPS 怎麼設定的核心流程是:先確認網域可用、申請並安裝 SSL/TLS 憑證、開啟伺服器 443 Port、測試 HTTPS 可正常連線,最後才設定 HTTP 自動轉 HTTPS。若網站還沒安裝有效憑證就急著轉址,使用者可能會看到「連線不是私人連線」、「不安全」或憑證錯誤;若網站有會員登入、付款、表單送出等功能,尤其不能讓 HTTP 網站登入長期存在,因為帳號、密碼、Cookie 與個人資料在 HTTP 環境下可能被攔截。

HTTPS 是 HTTP 加上 TLS 加密後的安全傳輸方式。一般來說,80 Port 用於 HTTP,443 Port 用於 HTTPS。網站要從 http://example.com 變成 https://example.com,不只是網址多一個 s,還包含伺服器憑證、網域驗證、加密協定、重新導向、瀏覽器信任與搜尋引擎索引更新等設定。正確的 HTTP HTTPS 設定能提升安全性、降低瀏覽器警告,也有助於 SEO 與使用者信任。

申請 SSL 憑證前要先確認的事項

確認網域與 DNS 是否正確

在申請 SSL 憑證前,請先確認網域或 DDNS 已正確指向伺服器 IP。若使用 DDNS,請確認目前解析到的 IP 與實際網站主機相同,否則憑證授權單位可能無法完成驗證。

你也需要確認網站伺服器是否已能回應該網域,例如:

http://你的網域

如果目前只能用 IP 連線,建議先完成 DNS 設定後再申請憑證。SSL 憑證通常是綁定網域名稱,不是單純綁定 IP。

確認伺服器可開啟 443 Port

HTTPS 預設使用 443 Port。若你的主機位於雲端平台、防火牆、公司內網或 NAS 後方,請確認下列位置都允許 443 連線:

HTTPS 連線檢查清單

檢查項目 需要確認的內容 常見問題
DNS 解析 網域是否指向正確 IP 網域指到舊主機或錯誤 IP
80 Port HTTP 是否可連線 憑證驗證可能需要 HTTP 存取
443 Port HTTPS 是否開放 防火牆或雲端安全群組未開啟
SSL 憑證 憑證是否有效且未過期 憑證過期、網域不符
Web Server 設定 Nginx、Apache、IIS 是否載入憑證 憑證路徑錯誤或私鑰不符
轉址規則 HTTP 是否轉到 HTTPS 無限轉址或部分頁面未轉址

使用 SSL For Free 申請免費 SSL 憑證

建立免費 SSL 憑證

你可以使用 SSL For Free 申請免費 SSL 憑證。請開啟 SSL For Free 網站:

https://www.sslforfree.com

進入頁面後,將你要申請的網域或 DDNS 填入中央欄位,接著點選右側的 Create Free SSL Certificate,也就是建立免費 SSL 憑證。後續系統通常會要求你登入帳號、選擇網域驗證方式,並確認你確實擁有該網域。

常見驗證方式包括:

  1. DNS 驗證:在 DNS 代管平台新增 TXT 記錄。
  2. HTTP 檔案驗證:將指定驗證檔案上傳到網站指定路徑。
  3. Email 驗證:使用網域管理信箱收取驗證信。

若你使用的是 DDNS,通常 DNS 驗證或 HTTP 檔案驗證較常見。申請時請確保網域可正常對外連線,否則 CA 無法驗證網域所有權。

建立 RSA 金鑰與 CSR

伺服器上設定 HTTPS 時,標準流程通常包含下列步驟:

  1. 建立 2048 位元 RSA 公開/私密金鑰組。
  2. 產生內嵌公開金鑰的憑證簽署要求 CSR。
  3. 將 CSR 提供給憑證授權單位 CA。
  4. 完成網域驗證。
  5. 下載 SSL 憑證。
  6. 將憑證、私鑰與中繼憑證安裝到伺服器。

CSR 是憑證簽署要求,裡面包含網域資訊與公開金鑰;私鑰則必須妥善保存,不能上傳到不可信任的位置,也不應公開放在網站目錄中。

Nginx 設定 HTTPS 與 443 Port

Nginx 基本 HTTPS 設定

若使用 Nginx,常見設定檔路徑可能位於:

/etc/nginx/sites-available/你的網站設定檔

基本 HTTPS 設定概念如下:

Nginx

server {

listen 443 ssl http2;

server_name example.com www.example.com;

ssl_certificate /etc/ssl/certs/example.crt;

sslcertificatekey /etc/ssl/private/example.key;

root /var/www/html;

index index.html index.php;

}

設定後請執行:

Bash

sudo nginx -t

sudo systemctl reload nginx

nginx -t 可檢查設定是否有語法錯誤。如果憑證路徑、私鑰路徑或 server_name 設定錯誤,HTTPS 可能無法啟動。

Nginx 設定 HTTP 自動轉 HTTPS

確認 HTTPS 可正常開啟後,再設定 HTTP 轉址:

Nginx

server {

listen 80;

server_name example.com www.example.com;

return 301 https://$host$request_uri;

}

這段設定會將所有 HTTP 流量永久轉向 HTTPS。SEO 上通常建議使用 301 轉址,因為 301 代表永久移轉,能讓搜尋引擎逐步將權重與索引集中到 HTTPS 版本。

Apache 與 .htaccess 設定 HTTP 轉 HTTPS

使用 .htaccess 自動轉址

若主機支援 Apache 與 .htaccess,可在網站根目錄建立或編輯 .htaccess 檔案,加入下列規則:

Apache

RewriteEngine On

RewriteCond %{HTTPS} !=on

RewriteRule ^(.*)$ https://%{HTTPHOST}%{REQUESTURI} [L,R=301]

這是常見的 HTTP 自動轉 HTTPS 設定。設定完成後,請使用無痕視窗或清除快取測試:

http://example.com

確認是否會自動跳到:

https://example.com

cPanel 一鍵強制 HTTPS

若你使用 cPanel 主機,部分版本提供「網域」功能,可直接開啟 Force HTTPS Redirect。這種方式適合不熟悉程式碼的網站管理者。若主機沒有提供此功能,就可改用 .htaccess 方式手動設定。

不論用哪種方式,都應先確認 SSL 憑證已安裝成功。若 HTTPS 本身不可用,強制轉址只會讓使用者進入錯誤頁面。

IIS 與 URL Rewrite 設定 HTTPS 轉址

IIS 使用 URL Rewrite

Windows Server 上的 IIS 通常可使用 URL Rewrite 模組來強制 HTTPS。概念是判斷請求是否不是 HTTPS,若不是,就導向到相同網址的 HTTPS 版本。

常見規則邏輯如下:

  1. 條件:{HTTPS} 不等於 on
  2. 動作:Redirect
  3. 目標:https://{HTTP_HOST}/{R:1}
  4. 狀態碼:301

如果是正式網站,建議使用 301。若仍在測試或短期活動頁面,可使用 302,避免搜尋引擎太快把變更視為永久。

.NET Core 與服務設定 HTTPS

.NET Core 服務與 CoreUri

若你的服務需要指定 HTTPS 端點,例如 .NET Core 服務設定,可在安裝路徑中的 WCF 資料夾內編輯 Config.xml,並依實際 IP 與 Port 加入類似設定:

XML

CoreUri=”https://localhost:443″

實際值需依你的服務綁定位置調整,例如內部測試可能使用 localhost,正式環境則應使用正式網域。請注意,服務端設定 HTTPS 不代表瀏覽器一定信任,仍需安裝有效憑證,或在本地端測試環境中正確信任自簽憑證。

301 與 302 轉址該怎麼選

301 與 302 差異比較

轉址類型 意義 適合情境 SEO 影響
301 永久轉址 網站正式從 HTTP 改為 HTTPS 建議使用,可集中索引與權重
302 暫時轉址 測試、短期活動、暫時維護 搜尋引擎通常保留原網址判斷
不轉址 保留 HTTP 內部測試、特殊系統、相容性需求 正式公開網站不建議

正式網站若已完成 HTTPS 設定,通常應使用 301。這能讓 Google 等搜尋引擎理解你的網站正式改用 HTTPS,也能避免同一內容同時出現在 HTTP 與 HTTPS 造成重複網址問題。

什麼情況下 HTTP 不要轉 HTTPS

不建議立即強制轉址的情境

雖然多數正式網站都應使用 HTTPS,但仍有少數情境可以暫時 HTTP 不要轉 HTTPS:

  1. HTTPS 憑證尚未安裝完成。
  2. 憑證網域不符,例如憑證是 www.example.com,但使用者進入 example.com
  3. 網站內部仍有大量 HTTP 資源,會造成混合內容錯誤。
  4. 舊系統、內部設備或 API 只支援 HTTP。
  5. 測試環境需要同時比較 HTTP 與 HTTPS 行為。
  6. 憑證已過期,短時間內尚未完成更新。

但要注意,若網站有登入、付款、會員中心、後台管理、個資表單,就不應長期使用 HTTP。尤其 HTTP 網站登入會讓帳密在未加密通道中傳輸,安全風險很高。公開網站若必須暫時保留 HTTP,也應避免在 HTTP 頁面處理敏感資料。

HTTPS 設定後仍顯示不安全的常見原因

憑證過期或網域不符

SSL 憑證有有效期限。若憑證到期後未續約或未自動更新,使用者開啟 HTTPS 時會看到警告。部分商業憑證需每年續買;Let’s Encrypt 等免費憑證則通常需要定期自動更新。

憑證也必須與網域一致。例如使用者開啟 https://www.example.com,憑證卻只包含 example.com,就可能出現憑證名稱不符。

混合內容 Mixed Content

如果 HTML 頁面已經是 HTTPS,但圖片、CSS、JavaScript 仍使用 http:// 載入,瀏覽器可能顯示不安全,甚至封鎖部分資源。修正方式是將站內資源改成 HTTPS,或使用相對路徑。

例如將:

<script src="http://example.com/app.js"></script>

改成:

<script src="https://example.com/app.js"></script>

或:

<script src="/app.js"></script>

轉址無限循環

如果網站位於反向代理、CDN 或負載平衡器後方,可能發生伺服器以為請求是 HTTP,因此一直重複轉址。此時需檢查 X-Forwarded-Proto、CDN SSL 模式、Web Server 規則與應用程式設定。

Google 管理控制台中的憑證設定

Google 憑證管理與 CA 設定

若你是 Google Workspace 或 Chrome Enterprise 管理者,可在 Google 管理控制台中設定 CA 憑證,讓組織內的裝置、使用者或已註冊瀏覽器信任特定憑證。這類 Google 憑證管理常用於企業內部系統、代理伺服器、測試 CA 或內網 HTTPS 服務。

基本路徑如下:

  1. 使用管理員帳戶登入 Google 管理控制台。
  2. 依序前往「裝置」。
  3. 前往「網路」。
  4. 找到「憑證」相關設定。
  5. 新增或管理憑證。
  6. 選擇套用範圍,例如所有使用者、特定組織單位或已註冊瀏覽器。

如果要讓所有使用者與已註冊的 Chrome 瀏覽器信任內部 CA,需確認憑證格式正確,並設定到正確的組織單位。企業環境建議由 IT 管理者統一控管,避免個別使用者自行匯入不明憑證。

Chrome 憑證設定與匯入方式

Chrome 憑證管理的基本概念

Chrome 本身多半使用作業系統的信任憑證庫。也就是說,在 Windows 上,Chrome 通常讀取 Windows 憑證管理;在 macOS 上,Chrome 通常讀取鑰匙圈中的信任設定。因此所謂 Chrome 憑證設定,很多時候其實是在作業系統中管理根憑證與中繼憑證。

Chrome 憑證匯入流程

在 Windows 環境中,Chrome 憑證匯入常見方式如下:

  1. 開啟 Chrome 設定。
  2. 搜尋「憑證」。
  3. 進入安全性或管理憑證相關頁面。
  4. 開啟 Windows 憑證管理工具。
  5. 選擇「受信任的根憑證授權單位」或適當分類。
  6. 匯入 .cer.crt 憑證檔。
  7. 重新啟動 Chrome 後測試。

若是伺服器 SSL 憑證,不應把網站憑證亂放到根憑證區。只有你信任的 CA 根憑證才適合匯入受信任根憑證授權單位。若把不明來源憑證設為信任,可能造成資安風險。

Chrome 改憑證為永遠信任

在 macOS 中,若是本地端測試環境使用自簽憑證,可透過「鑰匙圈存取」匯入憑證,點開憑證後在「信任」設定中將其設為永遠信任。這就是常見的 Chrome 改憑證為永遠信任做法,因為 Chrome 會參考系統信任狀態。

但正式公開網站不建議要求使用者手動信任自簽憑證。公開網站應使用受瀏覽器信任的 CA 簽發憑證,例如商業 CA 或 Let’s Encrypt 等受信任的憑證服務。

本地端開發環境需要 HTTPS 時怎麼做

建立並信任本地憑證

本地端測試環境若需要 SSL 或 HTTPS 開發環境,可依下列流程:

  1. 建立本地 CA 或自簽憑證。
  2. 建立 Domain SSL certificate,例如給 localhost 或測試網域使用。
  3. 將根憑證加入系統信任。
  4. 重新啟動 Chrome 或開發伺服器。
  5. 測試 https://localhost 或測試網域。

本地開發常見於 OAuth 登入、第三方金流、PWA、Service Worker、WebRTC、Cookie Secure 屬性測試等情境。這些功能有時要求 HTTPS 環境才能正常運作。

若使用 Chrome 測試,請確認 Chrome 憑證管理狀態與作業系統憑證設定一致。若匯入後仍不被信任,可檢查憑證是否包含 Subject Alternative Name,現代瀏覽器通常不再只依賴 Common Name 判斷網域。

HTTPS 與 SEO 設定重點

讓搜尋引擎正確索引 HTTPS 版本

完成 HTTPS 後,建議同步檢查:

  1. 網站地圖 Sitemap 是否改為 HTTPS 網址。
  2. canonical 標籤是否指向 HTTPS 版本。
  3. 內部連結是否使用 HTTPS。
  4. Google Search Console 是否提交 HTTPS 版本。
  5. robots.txt 是否可正常讀取。
  6. HTTP 是否以 301 轉向 HTTPS。
  7. www 與非 www 是否只有一個主要版本。

登錄搜尋引擎時,以 Google 來說,可透過 Search Console 提交網站地圖,讓搜尋引擎更快發現 HTTPS 版本。若 HTTP 與 HTTPS 同時存在,且未設定 canonical 與 301 轉址,搜尋引擎可能會視為重複內容,影響收錄效率。

HTTPS 設定完成後的測試清單

上線前必做檢查

HTTPS 不是安裝完憑證就結束,正式上線前建議完成以下測試:

  1. https://網域 確認首頁可正常開啟。
  2. http://網域 確認是否轉到 HTTPS。
  3. 測試 www 與非 www 版本。
  4. 測試登入、登出、註冊、付款、表單送出。
  5. 檢查瀏覽器網址列是否有安全鎖頭。
  6. 使用 Chrome 開發者工具檢查 Mixed Content。
  7. 確認憑證鏈完整,包含中繼憑證。
  8. 確認憑證到期日與自動更新機制。
  9. 檢查手機瀏覽器是否正常。
  10. 確認 CDN、反向代理與主機 SSL 模式一致。

如果網站出現鎖頭被劃線、紅字不安全或憑證錯誤,代表可能仍在使用 HTTP、憑證無效、憑證過期、網域不符,或頁面載入了 HTTP 資源。

結論:HTTPS 設定要同時處理憑證、伺服器、瀏覽器與轉址

HTTPS 怎麼設定可以整理成一句話:先讓 HTTPS 本身正確可用,再把 HTTP 穩定導向 HTTPS。正式網站建議申請受信任 CA 簽發的 SSL 憑證,開啟 443 Port,設定 Nginx、Apache、IIS 或應用程式的 HTTPS 端點,再使用 301 轉址完成 HTTP 自動轉 HTTPS。

如果只是本地端開發,才適合使用自簽憑證並透過 Chrome 憑證設定、Chrome 憑證管理或作業系統憑證工具信任測試憑證。若是企業環境,則可透過 Google 憑證管理集中部署 CA。公開網站不應要求訪客手動信任憑證,因為這會降低可信度並增加資安風險。

最重要的是,會員登入、後台、付款與個資表單不應停留在 HTTP。正確的 HTTP HTTPS 設定能保護使用者資料,也能讓搜尋引擎更清楚判斷網站正式、安全且可被信任。

常見問題 1:HTTPS 一定要付費嗎?

不一定。你可以使用 Let’s Encrypt、SSL For Free 等方式申請免費 SSL 憑證,也可以購買商業 SSL 憑證。差異通常在驗證層級、保固、管理介面、技術支援與企業需求。

常見問題 2:為什麼安裝 SSL 後網址還是 HTTP?

安裝 SSL 只代表 HTTPS 可用,不代表 HTTP 會自動跳轉。你還需要在 Nginx、Apache、IIS、cPanel 或應用程式中設定 301 或 302 轉址,讓 HTTP 自動導向 HTTPS。

常見問題 3:301 轉址和 302 轉址哪個適合 SEO?

正式從 HTTP 改成 HTTPS 時,建議使用 301 轉址,因為 301 代表永久移轉。302 適合暫時測試或短期變更,不建議作為正式 HTTPS 轉址長期使用。

常見問題 4:HTTP 網站登入有什麼風險?

HTTP 網站登入沒有傳輸加密,帳號、密碼、Cookie 與個人資料可能被中間人攔截。只要網站有登入功能,就應使用 HTTPS,並搭配 Secure Cookie 與適當的 Session 安全設定。

常見問題 5:為什麼 Chrome 顯示憑證不受信任?

常見原因包括憑證過期、憑證網域不符、缺少中繼憑證、使用自簽憑證、系統時間錯誤,或該 CA 不在信任清單中。本地測試可匯入憑證,正式網站則應使用受信任 CA 簽發的憑證。

常見問題 6:Chrome 憑證匯入後為什麼還是錯誤?

可能是匯入位置錯誤、沒有匯入根 CA、憑證未包含 Subject Alternative Name、Chrome 尚未重啟,或網站伺服器仍送出舊憑證。建議重新啟動瀏覽器並檢查伺服器憑證鏈。

常見問題 7:可以只讓部分頁面使用 HTTPS 嗎?

技術上可以,但不建議。現代網站通常應全站 HTTPS,避免 Cookie 外洩、混合內容、SEO 版本混亂與使用者信任問題。尤其登入、會員、購物車、付款與後台必須使用 HTTPS。

常見問題 8:憑證到期會怎樣?

憑證到期後,瀏覽器會顯示安全警告,使用者可能無法正常進入網站。若使用免費憑證,應設定自動續期;若使用付費憑證,應在到期前完成續約與重新安裝。

常見問題 9:本地端 localhost 需要 HTTPS 嗎?

視開發需求而定。若你要測試 OAuth、PWA、Service Worker、Secure Cookie 或第三方金流串接,通常需要 HTTPS。本地端可使用自簽憑證或開發工具產生憑證,並在系統中設為信任。

常見問題 10:設定 HTTPS 後需要通知 Google 嗎?

建議在 Google Search Console 確認 HTTPS 版本,提交 HTTPS Sitemap,並檢查索引狀態。若 HTTP 已 301 轉向 HTTPS,Google 通常會逐步更新索引,但主動提交可加快搜尋引擎理解網站變更。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料