SSL 與加密
這個分類下的問題與解答。點標題可以展開答案,也可以點右上角進到單題頁面。
HTTP headers Content-Security-Policy
Content-Security-Policy從 2010 年被提出來的一項網頁檔頭規格,目的是用來防止 Cross-Site Scripting(簡稱XSS)跟跨網域網頁外掛置換。
範例:
server {
add_header Content-Security-Policy "default-src 'self' 'unsafe-inline' 'unsafe-eval' http://connect.facebook.net https://d.line-scdn.net;";
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
}
Content-Security-Policy使用注意事項:
-
directives 後面不需加冒號
錯誤:default-src: ‘self’
正確:default-src ‘self’
-
directives 之間以分號區隔
錯誤:default-src ‘self’, script-src ‘self’
正確:default-src ‘self’; script-src ‘self’
-
多個 source 之間僅以空白區隔
錯誤:default-src ‘self’; img-src ‘self’, img1.devco.re, img2.devco.re
正確:default-src ‘self’; img-src ‘self’ web1.nc.com.tw web2.nc.com.tw
-
某些 source 必須加冒號(https:、data:)
錯誤:default-src ‘self’; img-src ‘self’ https data
正確:default-src ‘self’; img-src ‘self’ https: data:
-
某些 source 必須用單引號括起來(’none’、’self’、’unsafe-inline’、’unsafe-eval’)
錯誤:script-src self unsafe-inline unsafe-eval
正確:script-src ‘self’ ‘unsafe-inline’ ‘unsafe-eval’
網站伺服器與使用者電腦之間使用數位訊號在傳輸,這些訊號如果被攔截,就會產生資訊外洩的疑慮。
如果希望被攔截的訊息不要被攔截者得知,目前最佳的方案是伺服器加密資訊再傳輸,使用者收到加密的資料再解密。
SSL英文全名是Secure Sockets Layer,中文名稱為安全通訊層。
伺服器SSL安全等級測試網站安裝SSL憑證的優點
- Chrome瀏覽器網址列前面的不安全會消失。
- 有SSL協定的網站會被google優先收錄,相對影響網站排名。
- 資料傳輸比較安全。
網站使用SSL的缺點
- 要傳輸的資訊加密後,內容變多了,網站會比較慢。
- 增加維護成本。
它在做什麼
網站與訪客的裝置之間,資料是透過網路傳輸的。這些資料如果沒有加密,在傳輸過程中被攔截時,內容會直接被看見——包含表單填寫的姓名電話、後台登入的帳號密碼。
加密的作用就是:即使被攔截,攔截者也看不懂內容。
實務上它同時提供三件事:
- 加密——傳輸內容不會被第三方讀取
- 完整性——內容在傳輸中被竄改會被發現
- 身分驗證——確認你連到的確實是那個網站,而不是偽冒的
SSL 與 TLS 的關係
兩個名詞常被混用。技術上現在使用的是 TLS,SSL 是它的前身,早已停止使用。
但業界習慣仍稱為「SSL 憑證」,多數服務商也沿用這個說法。兩者在日常溝通中指的是同一件事,不必特別區分。
現在是基本配備,不是加值選項
幾年前 SSL 還常被當成「購物網站才需要」的選配項目,現在情況已經完全改變:
- 瀏覽器會對未加密的網站顯示不安全警告——訪客看到警告的第一反應通常是離開
- 沒有加密的網站,表單送出的資料是明文傳輸
- 部分瀏覽器功能在未加密的環境下無法使用
- 加密與否是搜尋排名的參考訊號之一
結論:所有網站都應該安裝,不論有沒有交易功能。
兩個過時的說法要更新
「加密會讓網站變慢」
這在早期有一定道理,但現在通常不成立。加密連線的建立確實多了一道程序,但現代的傳輸協定需要加密才能啟用,而那些協定帶來的效能改善,通常超過加密本身的成本。
實務上,正確設定的加密網站往往比未加密的更快。
「維護成本會增加」
免費憑證加上自動續期機制普及之後,維護成本已經趨近於零。多數主機面板都支援一鍵申請與自動更新。
真正的成本只出現在需要較高等級驗證的憑證,或環境特殊無法自動化的情況。
訪客看到的差別
| 已加密 | 未加密 | |
|---|---|---|
| 網址開頭 | https | http |
| 網址列顯示 | 通常顯示鎖頭或無特別標示 | 不安全警告 |
| 填表單時 | 正常 | 可能出現額外警告 |
瀏覽器的呈現方式會調整——早期會用綠色標示加密網站,現在多改為不特別標示正常的、只警告有問題的。
這代表:有加密不會加分,但沒有加密會扣分。
它不能做什麼
這一點常被誤解。加密保護的是傳輸過程,不代表網站本身是安全的。
- 不能防止網站被入侵
- 不能保證網站的內容可信——詐騙網站也可以有加密
- 不能保護存在伺服器上的資料
- 不能取代密碼管理與權限控制
看到鎖頭只代表「連線是加密的」,不代表「這個網站值得信任」。 這一點在提醒客戶注意釣魚網站時很重要。
網站本身的安全見後台的資安:密碼、登入保護與被入侵怎麼辦。
對搜尋的影響
加密是搜尋排名的參考訊號之一,但權重不高——它不會讓內容不好的網站排上去。
比較實際的影響是間接的:未加密網站的警告會提高跳出率,而使用者行為本身會影響評價。
什麼時候需要更高等級的憑證
多數企業網站使用基本的憑證就足夠。需要考慮升級的情況:
- 直接串接銀行端的金流服務——通常有較嚴格的要求
- 需要在憑證資訊中顯示公司名稱以增加可信度
- 特定產業的合規要求
類型的選擇見憑證有哪些種類。
憑證的類型、有效期限、瀏覽器的呈現方式與相關規範會不定期調整,本文說明的是原則與判斷方式。實際規格請以憑證核發單位與瀏覽器官方之現行公告為準。
三個驗證等級
憑證的差別不在加密強度——加密的技術是一樣的。 差別在於核發時對申請者做了多少驗證。
| 等級 | 驗證內容 | 核發時間 | 費用 |
|---|---|---|---|
| 網域驗證(DV) | 只確認你控制該網域 | 數分鐘 | 免費或低價 |
| 組織驗證(OV) | 加上公司真實性查核 | 數天 | 中 |
| 延伸驗證(EV) | 最嚴格的公司查核 | 較久 | 高 |
加密強度都一樣
這一點要說清楚:DV 憑證的加密與 EV 憑證完全相同。 付費買到的是「驗證的嚴謹度」與「憑證中記載的資訊」,不是更強的保護。
EV 的顯示效果已經改變
過去 EV 憑證會在網址列顯示綠色的公司名稱,這是它主要的賣點。但瀏覽器後來陸續移除了這個特殊顯示,現在一般使用者從外觀上幾乎看不出差別。
這代表 EV 的實際效益已經降低,除非有特定的合規需求,否則多數企業不需要。
依涵蓋範圍分類
| 類型 | 涵蓋 | 適合 |
|---|---|---|
| 單一網域 | 一個網域(通常含 www) | 一般企業網站 |
| 萬用字元 | 該網域下所有子網域 | 有多個子網域時 |
| 多網域 | 多個不同網域 | 同時管理數個網站 |
萬用字元憑證的取捨
如果有 shop、blog、test 等多個子網域,一張萬用字元憑證可以全部涵蓋,管理較單純。
但要注意:
- 申請時通常需要以 DNS 方式驗證,程序稍複雜
- 自動續期的設定也相對麻煩
- 不涵蓋多層子網域——例如涵蓋 shop.example.com 但不涵蓋 a.shop.example.com
子網域數量不多時,各自申請免費憑證並自動續期,往往比萬用字元更省事。
子網域的規劃見子網域怎麼開。
免費憑證夠用嗎
對絕大多數企業網站,答案是夠用。
免費憑證的特性
- 加密強度與付費憑證相同
- 瀏覽器同樣信任,不會有警告
- 有效期較短,但通常搭配自動續期
- 屬於網域驗證等級,不含公司資訊
- 通常沒有人工技術支援與保固條款
什麼情況考慮付費
- 需要憑證中顯示公司名稱
- 直接串接銀行端金流——部分情況有指定要求
- 特定產業的合規規範
- 需要保固條款——部分付費憑證附帶保障
- 環境無法自動續期——有效期較長的付費憑證可減少手動作業次數
金流的相關要求見金流串接是什麼。
有效期正在縮短
這是近年的重要趨勢:憑證的最長有效期持續縮短,業界已規劃逐步降低至更短的週期。
對你的實際影響
- 手動續期會越來越不可行——次數太頻繁
- 自動續期從「建議」變成「必要」
- 選擇主機或服務商時,應確認是否支援自動化管理
如果現在還是手動更新憑證,建議儘早改為自動化。
怎麼選:三個問題
- 有沒有多個子網域? 有且數量多 → 考慮萬用字元;不多 → 各自申請
- 有沒有特定的合規或金流要求? 有 → 依要求選擇;沒有 → 免費憑證即可
- 環境能不能自動續期? 不能 → 優先解決這件事,而不是買有效期較長的憑證
多數企業網站的答案是:單一網域的免費憑證加自動續期。
費用的定位
如果採用免費憑證,這一項的年度支出是零;若使用付費憑證,則屬於年度固定支出的一部分。
不論哪一種,都應該把到期日納入公司的到期日總表,與網域、主機一起管理。完整清單見網站每年的固定支出有哪些。
憑證的類型、有效期限、瀏覽器的呈現方式與相關規範會不定期調整,本文說明的是原則與判斷方式。實際規格請以憑證核發單位與瀏覽器官方之現行公告為準。
安裝的三個步驟
- 申請憑證——證明你控制該網域
- 安裝到伺服器
- 設定全站轉向與相關調整
第三步最常被忽略,卻是實際生效的關鍵——只安裝憑證而沒有做轉向,等於兩個版本並存。
申請前要確認的事
- DNS 已經正確指向主機——驗證需要確認你對網域的控制權
- 網站可以正常開啟
- 若使用第三方 DNS 或 CDN,要確認驗證方式
常見的卡關是 DNS 還沒生效就申請,導致驗證失敗。DNS 的擴散見改了 DNS 要多久才生效。
驗證方式
- 檔案驗證——在網站放置指定檔案。最常見,適合單一網域
- DNS 驗證——加一筆 TXT 記錄。申請萬用字元憑證時通常必須用這種
- 電子郵件驗證——寄到網域相關的信箱
安裝後必須做的四件事
一、http 全部轉向 https
安裝憑證只是讓 https 可用,不會自動把 http 的流量導過去。
必須設定全站的永久轉向,否則會出現兩個版本並存的情況——搜尋引擎會看到重複內容,評價被拆散。
二、統一 www 與非 www
加上加密與否,同一個頁面可能有四種網址形式。必須擇一為主,其餘全部轉向。
檢查方法:把四種形式各輸入一次,確認都導向同一個。詳見網址正規化與重複內容怎麼處理。
三、處理混合內容
網站已經是 https,但頁面中仍有以 http 載入的圖片、樣式或腳本——這稱為混合內容。
後果是瀏覽器可能顯示不安全警告,或直接阻擋那些資源導致版面異常。
最常見的來源是內文中寫死的 http 網址,見SSL 常見問題排查。
四、更新相關設定
- Search Console 新增 https 版本的資源
- 分析工具的網站網址設定
- 網站地圖中的網址改為 https
- 後台設定中的網站網址
- 各平台的連結——社群、商家檔案、廣告
第一項容易被忽略——http 與 https 在 Search Console 中被視為不同的資源,不新增就看不到正確資料。
自動續期:最重要的設定
憑證的有效期持續縮短,手動更新已經不切實際。
確認自動續期正常運作
- 多數主機面板支援一鍵啟用
- 啟用後不要只相信設定,要實際確認第一次自動更新有成功
- 設定到期前的提醒通知
過期會怎樣
這是實際會造成損失的災難:
- 瀏覽器顯示明顯的安全警告,多數訪客會直接離開
- 部分瀏覽器需要手動點選才能繼續
- 串接的金流或 API 可能停止運作
- 而且通常是客戶通知你才發現
把憑證到期日納入公司的到期日總表,與網域、主機一起管理。
子網域的憑證
這是很常見的疏忽:主網域的憑證不會自動涵蓋子網域。
測試站、購物子站、活動站都需要各自的憑證,或使用萬用字元憑證。
子網域的憑證特別容易過期,因為平常沒有人會去開那個網址。
搬遷主機時的處理
換主機時憑證通常需要重新申請或移轉。常見的失誤:
- 切換 DNS 後才發現新主機還沒有憑證,網站出現警告
- 舊主機的自動續期停止,但新主機還沒設定
正確做法是在切換前就於新主機完成憑證安裝,並用修改本機 hosts 檔的方式先行測試。
搬遷流程見網站搬家的 DNS 切換流程。
驗收與定期檢查
安裝後的驗收
- 四種網址形式都導向同一個
- 網址列沒有不安全警告
- 主要頁面都檢查過,沒有混合內容
- 後台登入頁也是加密的
- 手機上也正常
每季確認
- 憑證到期日與自動續期狀態
- 所有子網域的憑證
- 是否有新增的混合內容
憑證的類型、有效期限、瀏覽器的呈現方式與相關規範會不定期調整,本文說明的是原則與判斷方式。實際規格請以憑證核發單位與瀏覽器官方之現行公告為準。
先分清楚問題類型
瀏覽器對加密相關的問題會有不同的提示,各自的成因不同:
| 症狀 | 可能原因 |
|---|---|
| 網址列顯示不安全 | 網站是 http,或有混合內容 |
| 整頁的安全警告 | 憑證過期、網域不符、憑證鏈不完整 |
| 部分圖片或功能失效 | 混合內容被阻擋 |
| 只有部分裝置有問題 | 憑證鏈不完整,或裝置系統過舊 |
| 無限重新導向 | 轉向規則衝突 |
一、混合內容
網站是 https,但頁面中有資源以 http 載入。這是最常見的問題。
常見來源
- 文章內文中寫死的 http 圖片網址——最大宗
- 外部嵌入的內容——地圖、影片、第三方元件
- 版型或外掛中寫死的資源路徑
- 從舊網站搬過來的內容
怎麼找出來
在瀏覽器中開啟開發者工具的主控台,混合內容通常會有明確的警告訊息,直接指出是哪一個資源。
處理方式
- 把內文中的 http 改成 https,或改用相對路徑
- 更根本的做法是用佔位符——內文中的自家網址存成佔位符,輸出時再還原。這樣換網域或切換協定都不會出問題
- 外部資源若不支援 https,考慮改用其他來源或自行代管
內容編輯的相關原則見後台編輯器怎麼用。
二、憑證過期
症狀是整頁的明顯警告。這是最緊急的一種,因為多數訪客會直接離開。
處理
- 立即更新憑證
- 檢查自動續期為什麼沒有運作——這才是根本問題
- 確認所有子網域的憑證狀態
- 設定到期提醒
常見的自動續期失敗原因:驗證方式變更、DNS 調整後未同步、主機環境變動、憑證數量達到限制。
三、憑證與網域不符
憑證是發給 A 網域,但你用 B 網域存取。常見情況:
- 憑證只涵蓋 www 版本,但使用者輸入了非 www
- 子網域使用了主網域的憑證
- 搬遷後憑證沒有更新
處理方式是申請涵蓋正確網域的憑證,並確認轉向設定一致。
四、憑證鏈不完整
這是最容易誤判的一種:在你的電腦上正常,但某些裝置或瀏覽器出現警告。
原因是伺服器沒有提供完整的中繼憑證。有些裝置會自行補上,有些不會——所以會出現「有人正常有人不正常」的情況。
怎麼確認
使用線上的伺服器加密設定檢測工具,它會直接指出憑證鏈是否完整。不要只用自己的電腦測試。
五、無限重新導向
頁面不斷跳轉,最後顯示錯誤。常見原因:
- 網站程式與伺服器各自都設定了轉向,互相衝突
- 使用 CDN 時,加密模式設定不當——例如節點用 https 連線但回源時被導回 http,形成循環
- www 與 https 的轉向規則衝突
處理原則
轉向規則應該集中在一處,不要在多個層級各設一套。使用 CDN 時,要確認兩段連線都是加密的模式。
CDN 的設定注意事項見要不要用 Cloudflare 這類第三方 DNS 與 CDN。
六、鎖頭消失或時有時無
多半是混合內容——某些頁面有、某些沒有。
建議逐頁檢查主要頁面,特別是:文章內頁、產品頁、有嵌入內容的頁面。這些地方最容易殘留舊的 http 資源。
七、後台或表單頁面未加密
前台已經是 https,但後台登入頁或某些表單頁仍是 http。
這是嚴重的問題——帳號密碼與表單資料會以明文傳輸。
處理方式是確認全站轉向確實涵蓋所有路徑,包含後台。
排查的順序
- 確認範圍——全站還是特定頁面?所有裝置還是部分?
- 看瀏覽器的錯誤訊息——它通常直接說明了原因
- 用線上檢測工具——確認憑證有效期、鏈完整性、設定等級
- 開發者工具的主控台——找出混合內容的具體來源
- 換裝置或網路測試——排除本機快取與設定問題
第二項最有效。瀏覽器的錯誤代碼通常明確指出是過期、網域不符還是鏈不完整,把它記下來再查會快很多。
回報問題時該提供的資訊
- 哪一頁(完整網址)
- 什麼裝置、什麼瀏覽器
- 錯誤訊息或代碼的截圖
- 是所有人都有還是只有你
「網站顯示不安全」需要來回確認很多次;附上錯誤代碼截圖,通常一次就能定位。
憑證的類型、有效期限、瀏覽器的呈現方式與相關規範會不定期調整,本文說明的是原則與判斷方式。實際規格請以憑證核發單位與瀏覽器官方之現行公告為準。
加密只是第一層
安裝憑證解決了「傳輸內容被看見」的問題,但傳輸安全還有其他面向可以加強。
以下設定屬於伺服器層級,通常由廠商或維護方處理,但業主知道有這些選項,才能在需要時提出。
一、強制加密的宣告
即使設定了 http 轉向 https,訪客第一次連線時仍可能先走未加密的連線再被轉向——這個空隙理論上有被攻擊的可能。
強制加密的宣告(HSTS)可以讓瀏覽器記住「這個網站只能用加密連線」,之後即使輸入 http 也會直接改用 https,不經過未加密的那一步。
導入時要謹慎
- 一旦生效,在有效期內無法回退到 http
- 如果憑證出問題,訪客將完全無法存取網站
- 建議先設較短的有效期測試,確認一切正常再延長
- 所有子網域也要確認都有有效憑證
這是威力大但不可逆的設定,導入前務必確認網站的加密設定完全穩定。
二、安全性標頭
伺服器可以在回應中加上一些標頭,指示瀏覽器採取額外的保護。常見的幾種:
| 標頭 | 作用 |
|---|---|
| 內容安全政策 | 限制頁面可以載入哪些來源的資源,可降低跨站腳本攻擊與外掛置換的風險 |
| 內容類型嗅探防護 | 防止瀏覽器誤判檔案類型而執行不該執行的內容 |
| 框架嵌入限制 | 防止網站被嵌入他人頁面中,避免點擊挾持 |
| 參照來源政策 | 控制連出時傳遞多少來源資訊 |
內容安全政策要小心設定
它的效果最強,但也最容易設錯——設得太嚴格會讓網站的正常功能失效,例如地圖、影片、分析工具、社群外掛都可能被阻擋。
建議做法:
- 先用僅觀察的模式部署,收集會被阻擋的項目
- 確認所有正常來源都已納入
- 再切換為實際執行
我們既有的NGINX 檔頭相關設定一文中,有語法上的注意事項可以參考。
三、加密協定的版本
加密協定有版本之分,舊版本已知有安全弱點。
- 應停用已被淘汰的舊版本
- 啟用目前建議的版本
- 定期檢視,因為建議會隨時間調整
相容性的取捨
停用舊版本會讓部分老舊裝置無法連線。實務上這個影響已經很小,但如果客群包含使用舊系統的族群,可以先確認再調整。
四、用檢測工具確認等級
有線上工具可以檢測伺服器的加密設定,並給出評等。它會檢查:
- 憑證的有效性與鏈完整性
- 支援的協定版本
- 加密套件的強度
- 已知弱點
建議安裝憑證後跑一次,並每年複測。 因為評判標準會隨著新弱點被發現而調整——今年評等良好的設定,兩年後可能就不合格了。
五、Cookie 的安全設定
如果網站有登入功能,Cookie 的設定也影響安全:
- 標示為僅限加密連線傳輸
- 限制無法被前端程式讀取——降低被竊取的風險
- 限制跨站傳送——降低跨站請求偽造的風險
這些屬於程式與伺服器設定,會員系統的網站尤其應該確認。
該做到什麼程度
依網站性質判斷:
| 網站類型 | 建議 |
|---|---|
| 純展示型企業網站 | 憑證加自動續期、全站轉向即可 |
| 有表單或後台 | 加上基本的安全性標頭 |
| 有會員或交易 | 再加上 Cookie 設定與強制加密宣告 |
| 高敏感或合規需求 | 完整導入並定期檢測 |
不必一次做到最完整。 先把憑證與轉向做對,再依網站的實際風險逐步加強。
發包時可以提出的需求
- 憑證安裝與自動續期設定
- 全站轉向與混合內容清除
- 基本安全性標頭設定
- 加密設定的檢測報告
- 後續由誰負責維護與監控
最後一項要寫清楚——憑證到期、協定版本更新屬於持續性的維護工作,應在合約或維護方案中界定責任。
保固與維護的界線見保固與維護有什麼不同。
憑證的類型、有效期限、瀏覽器的呈現方式與相關規範會不定期調整,本文說明的是原則與判斷方式。實際規格請以憑證核發單位與瀏覽器官方之現行公告為準。
準備好讓網站 開始幫你帶生意了嗎?
不論是要做新網站、救舊網站,還是只想先聊聊方向——先諮詢,不用先付錢,我們照實給你建議。

