Defaults.Exposed

Defaults.Exposed修復 › TLS 憑證健康度

如何修復 TLS 憑證健康度

你的 SSL/TLS 憑證是一張數位身份證,向訪客證明他真的在和你的網站對話——而不是冒牌貨——並驅動瀏覽器裡那把鎖。本項檢查關注的是:這張憑證是否有效且受信任、是否即將過期,以及是否用強壯、現代的密碼學構建。

對您業務的關鍵影響: 一張損壞或過期的憑證會用一個全螢幕的紅色「您的連線不是私密連線」警告替換掉你的網站。多數訪客會立刻離開、不再回來——線上銷售停擺、註冊停擺,而那個本該私密的連線還可能被悄悄攔截。

這會讓您付出什麼代價

為什麼它重要。 憑證是你網站安全中最顯眼的一塊——健康時它隱形,損壞時它會用一個嚇人的警告把你整個網站拖垮,把客戶直接趕向競爭對手。憑證過期是網站意外宕機的頭號原因,而它完全可以預防。拿一張有效憑證是免費的,而保持它健康,多半只是讓它自動續期的事。

這是什麼,大白話版

當有人訪問你的網站時,要讓他放心輸入密碼或卡號,得發生兩件事。第一,連線必須加密,讓陌生人讀不到它。第二——也是人們容易忘的部分——訪客的瀏覽器必須確信另一端真的是你的網站,而不是一個搭起的、以假亂真的冒牌貨。同時完成這兩件事的東西,就是你的 TLS 憑證(常被叫做「SSL 憑證」)。

把它想像成你網域的防偽身份證。一家公認機構頒發它,它蓋著你的網域和一個到期日,並攜帶打亂連線的那把加密金鑰。一切核對無誤時,瀏覽器顯示那把鎖,你的網站正常載入。身份證出了問題時,瀏覽器會做與安撫訪客相反的事——它彈出一個全螢幕警告,實質上是說,「此網站可能不安全。」

本項檢查關注這張身份證的健康度,涵蓋四件各自獨立、任一都能讓它失效的事:

先把好消息說在前頭:拿一張健康憑證是免費的,而保持它健康,多半只是讓它自動續期、不必任何人記著的事。

這會讓你付出什麼代價

它到底是什麼(四個部分)

一張憑證能以四種不同方式不健康,本頁全部涵蓋。每一項在底層都是一項獨立檢查,但對你而言它們都是「我的憑證沒問題吧?」

1. 有效且受信任

這是大頭——也是憑證健康度裡唯一一項關鍵、最高權重的檢查。一張憑證只有在以下全部成立時才算「有效且受信任」:

只要其中任何一項失敗,瀏覽器就顯示那個可怕的「您的連線不是私密連線」頁面,本項檢查就硬性失敗。長這樣:一張來自公認機構的憑證,涵蓋你實際使用的每一個網域和子網域,舒舒服服地處在它的有效期內。

2. 不會馬上過期

每張憑證都有一個硬性結束日期。免費的通常持續 90 天;付費的常為一年。過了那個日期,信任瞬間蒸發——沒有寬限期。本項檢查衡量還剩多少天,以及這與誰簽發了它如何相互作用:

長這樣:一張自動管理、無需任何人觸碰就自我續期的憑證。永不出現過期宕機的最可靠方式,就是讓一台機器、而非一個人,對續期負責。

3. 強簽名演算法

每張憑證都用一個加密演算法「簽名」,讓瀏覽器能偵測篡改。舊演算法——MD5SHA-1——已被證明可偽造,意味著攻擊者原則上能炮製一張看起來合法地屬於你的欺詐憑證。本項檢查在憑證使用強壯、現代的簽名時通過:SHA-256 或更強(SHA-384、SHA-512)、現代 ECDSA,或 Ed25519/Ed448。MD5 和 SHA-1 不通過。長這樣:SHA-256 或更好——這是每張免費及現代憑證的預設,所以對近年簽發的任何憑證,這都很少成為問題。

4. 強金鑰

憑證攜帶一把做實際打亂工作的加密金鑰。如果那把金鑰太短,現代計算能力——只要資源足夠——就能攻破它,讓攻擊者冒充你的網站或解密流量。公認的最低標準是 2048 位元 RSA256 位元橢圓曲線(EC)。本項檢查在這些尺寸或以上時通過,以下則不通過。長這樣:2048 位元(或 4096 位元)RSA,或一把像 P-256 這樣的 256 位元 EC 金鑰——同樣是現代免費憑證的預設。

關於後三項的說明:有效且受信任是那個驅動警告頁的關鍵項。簽名和金鑰強度關乎的是面向未來與稽核——一張近期的免費憑證幾乎總會自動通過它們,但它們是安全審查會查的東西,所以值得做對。

如何修復(免費,約 15 分鐘)

把這一節交給運營你網站或主機的人——修復免費。 一張有效、強壯、自動續期的憑證透過 Let’s Encrypt 或任何現代主機分文不取。我們只對長期監控它是否保持健康收費,而不對修復收費。如果你沒有 IT 人員,下面的平台說明能把多數業主帶到位。

第 1 步——用一張免費、受信任的憑證取得(或替換)憑證。 這一步同時修好有效性、簽名和金鑰強度,因為現代免費憑證預設使用 SHA-256 和強金鑰。

第 2 步——讓續期自動化,從此不再過期。 這是防住週末宕機情景的那一步。

第 3 步——確保它涵蓋正確的名稱。 最常見的「有效卻報警告」原因是名稱不匹配。憑證必須涵蓋客戶實際使用的每一個主機名稱——光禿禿的網域、www,以及像 shop.app. 這樣的任何子網域。產生憑證時,把每一個都包含進去(像 *.yourbiz.com 這樣的萬用字元一次涵蓋所有子網域)。

第 4 步——如果只標記了簽名或金鑰強度,重新簽發即可。 你不需要買任何東西:產生一張全新的憑證(第 1 步),新的那張會自動使用 SHA-256 和一把強金鑰。在你自己的伺服器上,你可以顯式釘一把現代金鑰——例如 EC 用 openssl ecparam -genkey -name prime256v1 -out server.key,RSA 用 openssl genrsa -out server.key 4096——然後重新簽發。

第 5 步——驗證,然後回這裡重新檢測。 用一條快速指令確認日期、簽發者和金鑰——echo | openssl s_client -servername yourbiz.com -connect yourbiz.com:443 2>/dev/null | openssl x509 -noout -dates -issuer -subject——然後重新執行本項檢查。

常見錯誤

常見問題

我不懂技術——這個我自己能搞定嗎?

你不需要懂密碼學。一張有效憑證是免費的(透過 Let's Encrypt 及多數現代主機),在託管主機上通常自動完成。把下面的「如何修復」一節交給運營你網站或主機的人——對絕大多數企業來說,這是個快速、免費的活兒,不是一筆採購。

我的網站顯示一把鎖——這不就說明憑證沒問題嗎?

那把鎖只意味著此刻存在一個安全連線。它不告訴你憑證是否即將過期、是否建在一把強金鑰上,或它到明天還會不會被瀏覽器信任。本項檢查越過那把鎖,看讓它保持點亮的四件事:憑證是否有效且受信任、是否快過期、是否用強演算法簽名、金鑰是否足夠強。

我必須為 SSL 憑證付費嗎?

不必。來自 Let's Encrypt(以及內建於 Cloudflare、cPanel AutoSSL 和多數現代主機)的免費憑證被每個瀏覽器信任,安全性與付費的一模一樣。付費憑證主要買的是支援合約、保險,或擴展驗證徽章——這些都不影響你的網站是否加密、是否受信任。我們從不對修復收費;我們只對監控它是否保持健康收費。

憑證怎麼會「過期」——而且為什麼會讓我的網站宕掉?

每張憑證都有一個固定的結束日期(免費的常為 90 天)。過了那個日期,瀏覽器拒絕信任它,顯示一個全頁警告而不是你的網站。這不是逐漸衰退——它到死線前完美運行,然後徹底崩壞。這正是自動續期為何如此重要:它移除了那個本會忘事的人。

什麼是「自簽名」憑證,它為什麼不通過?

自簽名憑證是你頒發給自己、而非從一家公認機構取得的憑證。它加密連線,卻沒有任何東西擔保它真的是你——所以瀏覽器把它當作不受信任,向訪客發警告,就和對待攻擊者的假憑證一模一樣。對一個公開網站,你永遠想要一張來自受信任機構的憑證,而那是免費的。

「弱金鑰」和「弱簽名演算法」對我的業務到底意味著什麼?

兩者都是憑證在今天技術上有效、密碼學上卻脆弱的方式。一把弱金鑰(低於 2048 位元 RSA 或 256 位元 EC)原則上可被破解,讓攻擊者冒充你的網站。一個弱簽名(SHA-1 或 MD5)可被偽造,造出一張以假亂真的憑證。現代免費憑證預設使用強金鑰和強簽名,所以修復幾乎總是重新簽發而已——分文不取。