所有 SSL 文章 SSL 與憑證

萬用字元 SSL 證書詳解

萬用字元 SSL 證書用一張證書保護一個域名及其所有子域名。無需為 www.example.comblog.example.comapi.example.com 分別獲取證書,一張 *.example.com 萬用字元即可全部覆蓋。

萬用字元如何工作

萬用字元字元 * 匹配任何單級子域名:

證書覆蓋不覆蓋
*.example.comwww.example.comblog.example.comapi.example.comanything.example.comexample.com(裸域名)、sub.blog.example.com(巢狀)
*.example.com + example.com所有子域名 + 裸域名巢狀子域名
*.sub.example.coma.sub.example.comb.sub.example.comsub.example.comexample.com

關鍵限制: 萬用字元只匹配一級。*.example.com 不覆蓋 a.b.example.com

萬用字元 vs 多域名(SAN)

萬用字元多域名(SAN)
覆蓋一級的所有子域名特定列出的域名
靈活性任何子域名自動生效必須明確列出每個域名
新子域名即時覆蓋需要新證書
跨域否(一個基礎域名)是(example.com + other.com
需要 DNS-01✅ 是否(HTTP-01 或 DNS-01)

使用萬用字元當: 你有多個子域名或經常新增新的。 使用 SAN 當: 你有少量固定的特定域名/子域名。

何時使用萬用字元證書

適合的場景:

  • 你有多個子域名(app.api.docs.blog.staging. 等)且不想為每個管理單獨的證書
  • 你經常新增新子域名——它們無需重新簽發即可自動覆蓋
  • 開發/測試環境中子域名名稱經常變化

萬用字元不適合的場景:

  • 你需要覆蓋不同的基礎域名(example.com + example.org)—— 使用 SAN 證書
  • 你需要子域名級別的隔離——如果一個子域名的金鑰洩露,萬用字元證書覆蓋所有子域名
  • 你不能修改 DNS 記錄——萬用字元簽發需要 DNS-01,這需要 DNS 訪問許可權

安全考慮

萬用字元證書意味著一個私鑰保護所有子域名。如果金鑰洩露,攻擊者可以冒充任何子域名——不僅僅是一個。

緩解措施:

  • 限制私鑰訪問 —— 只有需要它的伺服器應該有金鑰檔案
  • 使用短期證書 —— Let’s Encrypt 90 天有效期限制暴露視窗
  • 考慮為高安全子域名使用獨立證書(如 admin.example.com 可能需要自己的證書)

獲取免費萬用字元證書

Let’s Encrypt 透過 DNS-01 驗證免費支援萬用字元證書。大多數競爭對手(ZeroSSL、SSL For Free)將萬用字元限制為付費套餐。

使用 GetHTTPS

  1. 輸入 *.example.com(如果要裸域名則加上 example.com
  2. 新增 GetHTTPS 提供的 DNS TXT 記錄
  3. 等待 DNS 傳播(GetHTTPS 會為你預檢)
  4. 驗證並下載證書檔案

完整萬用字元分步指南 →

安裝萬用字元證書

與任何證書相同——伺服器不知道這是萬用字元:

Nginx:

server {
    listen 443 ssl http2;
    server_name *.example.com example.com;

    ssl_certificate     /etc/ssl/fullchain.pem;
    ssl_certificate_key /etc/ssl/privkey.pem;
}

Apache:

<VirtualHost *:443>
    ServerName example.com
    ServerAlias *.example.com

    SSLEngine on
    SSLCertificateFile /etc/ssl/cert.pem
    SSLCertificateKeyFile /etc/ssl/privkey.pem
    SSLCertificateChainFile /etc/ssl/chain.pem
</VirtualHost>

常見問題

為什麼萬用字元不能用 HTTP-01?

HTTP-01 透過在 http://hostname/.well-known/acme-challenge/... 放置檔案來驗證特定主機名。萬用字元覆蓋無限子域名——沒有單一伺服器來放置檔案。DNS-01 透過區域級別的 TXT 記錄證明對整個域名的控制。

*.example.com 覆蓋 example.com 嗎?

不覆蓋。裸域名是獨立的。在證書請求中同時新增 *.example.comexample.com。GetHTTPS 和 Certbot 都支援在一張證書中包含兩者。

能從 ZeroSSL 獲取免費萬用字元嗎?

不能。ZeroSSL 將萬用字元證書限制為付費套餐($10/月+)。Let’s Encrypt 免費提供萬用字元

同一域名能有多張萬用字元證書嗎?

可以。沒有技術限制。你可以有 *.example.com*.staging.example.com 作為獨立證書。Let’s Encrypt 的速率限制是每註冊域名每週 50 張證書。

萬用字元證書覆蓋巢狀子域名嗎?

不覆蓋。*.example.com 覆蓋 www.example.comapi.example.com,但不覆蓋 dev.api.example.com。對於巢狀子域名,你需要單獨的萬用字元如 *.api.example.com

如何測試萬用字元證書對特定子域名是否有效?

將子域名的 DNS 指向你的伺服器,然後測試:

echo | openssl s_client -connect subdomain.example.com:443 -servername subdomain.example.com 2>/dev/null | openssl x509 -noout -subject -dates

證書應顯示 CN=*.example.com 或 SAN 欄位中有 *.example.com。如果得到連線錯誤,說明子域名的 DNS 沒有指向託管萬用字元證書的伺服器。

能在多臺伺服器上使用萬用字元證書嗎?

可以。在處理子域名的每臺伺服器上安裝相同的 fullchain.pemprivkey.pem。證書不知道自己在哪臺伺服器上——它只驗證主機名。

相關文章

快速開始 2026-05-07
如何免費獲取萬用字元 SSL 證書
使用 GetHTTPS 從 Let's Encrypt 免費獲取萬用字元 SSL 證書 (*.example.com)。僅需 DNS-01 驗證。涵蓋 Cloudflare、Route 53、GoDaddy 和 Namecheap DNS 設定。
SSL 與憑證 2026-05-07
多域名 SSL 證書(SAN)
多域名 SAN 證書可以在一張證書中保護多個不同域名。瞭解 SAN 的工作原理、何時用 SAN 而非萬用字元,以及如何透過 GetHTTPS 獲取。
SSL 與憑證 2026-05-07
SSL 證書型別詳解:DV、OV 和 EV
對比域名驗證(DV)、組織驗證(OV)和擴充套件驗證(EV)SSL 證書。瞭解驗證方式、費用的差異,以及何時真正需要每種型別。
在瀏覽器中取得免費 SSL 憑證
無需安裝,無需帳號。私鑰始終留在你的裝置上。
取得憑證