所有入門指南 快速開始

如何獲取免費 SSL 證書(分步指南)

免費 SSL 證書可以加密訪客與你網站之間的連線,保護密碼、支付資訊和個人資料。整個過程大約 5 分鐘,不花一分錢。

速覽版:

  1. 開啟 gethttps.com/app/setup — 無需安裝,無需賬號
  2. 輸入你的域名
  3. 完成域名驗證(在伺服器放置檔案或新增 DNS 記錄)
  4. 下載證書檔案
  5. 安裝到伺服器(NginxApachecPanelWordPressIIS

以下是完整詳細指南。


為什麼需要 SSL 證書

  • 瀏覽器會把 HTTP 網站標記為”不安全” — Chrome、Firefox、Edge 都會在位址列顯示警告,訪客會離開
  • Google 將 HTTPS 作為排名訊號 — 從 2014 年開始,HTTP 網站排名更低
  • 沒有 HTTPS 的表單和登入會以明文傳輸資料 — 同一網路上的任何人都能讀取密碼、信用卡號和個人資訊
  • HTTP 頁面可以在傳輸過程中被篡改 — ISP 和攻擊者可以注入廣告、追蹤程式碼或惡意軟體
  • HTTPS 是免費的 — 沒有理由不使用

4 種獲取免費 SSL 證書的方法

方法適合安裝方式自動續簽耗時
GetHTTPS(瀏覽器)所有人 — 無需安裝、無需伺服器訪問手動5 分鐘
主機提供商帶 cPanel/Plesk 的共享主機自動通常是2 分鐘
Certbot(命令列)有 root 許可權的伺服器管理員自動10 分鐘
Cloudflare(CDN)已使用 Cloudflare 的網站自動5 分鐘

本指南重點介紹 方法 1(GetHTTPS),因為它適用於任何環境 — 共享主機、VPS、獨立伺服器或任何可以上傳檔案的平臺。


方法 1:GetHTTPS(推薦 — 適用於所有環境)

前置條件

  • 一個已註冊的域名,指向你控制的伺服器
  • 以下訪問許可權之一(用於域名驗證):
    • 伺服器的檔案系統 — 放置驗證檔案(HTTP-01 驗證
    • 域名的 DNS 設定 — 新增 TXT 記錄(DNS-01 驗證
  • 現代瀏覽器 — Chrome、Firefox、Edge 或 Safari

該選哪種驗證方式? HTTP-01 對大多數人更簡單。DNS-01 是獲取萬用字元證書*.example.com)的必選項。詳見 HTTP-01 指南DNS-01 指南

步驟 1:開啟 GetHTTPS

訪問 gethttps.com/app/setup

GetHTTPS 會自動在你的瀏覽器中生成兩對金鑰:

  • 賬戶金鑰 — P-256 ECDSA 金鑰對,用於標識你的 Let’s Encrypt 賬戶,簽名所有 ACME 請求
  • 證書金鑰 — 你 SSL 證書的金鑰對。預設 ECDSA P-256(推薦),可選 RSA 2048

兩個金鑰都使用瀏覽器內建的 Web Crypto API 生成。它們僅存在於瀏覽器記憶體中,從不傳送到任何伺服器 — 包括 GetHTTPS 的伺服器。這是與 SSL For Free(在伺服器端生成金鑰)或 ZeroSSL(可能在伺服器端生成金鑰)相比的核心隱私優勢。

步驟 2:新增域名

輸入要保護的域名:

需求輸入內容備註
單個域名example.com最基本的設定
域名 + wwwexample.com + www.example.com大多數網站推薦
萬用字元*.example.com覆蓋所有子域名;需要 DNS-01
多個域名example.com + blog.example.com + shop.example.comSAN 證書

提示: 輸入 example.com 後,GetHTTPS 會提示你同時新增 www.example.com(反之亦然)。大多數網站應該兩個都保護。

步驟 3:完成域名驗證

Let’s Encrypt 需要驗證你對域名的控制權。兩種方式可選:

方式 A:HTTP-01 驗證(更簡單,適合大多數人)

Let’s Encrypt 提供一個 token。你需要在伺服器上的指定 URL 放置一個檔案。

  1. GetHTTPS 顯示一個檔名檔案內容(一長串 token 字串)
  2. 在伺服器上建立該檔案:
    http://yourdomain.com/.well-known/acme-challenge/TOKEN_FILENAME
  3. 檔案必須透過 HTTP(埠 80) 訪問 — 即使你的網站已經啟用了 HTTPS
  4. 在 GetHTTPS 中點選驗證

按平臺建立檔案的方法:

SSH 訪問(Linux 上的 Nginx/Apache):

# 创建目录(如果不存在)
mkdir -p /var/www/html/.well-known/acme-challenge/

# 创建验证文件 — 使用 GetHTTPS 显示的确切值
echo "GETHTTPS_显示的_TOKEN_内容" > /var/www/html/.well-known/acme-challenge/TOKEN_文件名

# 验证是否可访问
curl http://yourdomain.com/.well-known/acme-challenge/TOKEN_文件名

cPanel 檔案管理器:

  1. 進入檔案管理器 → 導航到 public_html
  2. 建立資料夾 .well-known → 在其中建立 acme-challenge
  3. 用 token 檔名建立新檔案,貼上 token 內容
  4. 確保檔案許可權為 644(可被 Web 伺服器讀取)

FTP:

  1. 透過 FTP 連線到網站根目錄
  2. 導航到(或建立).well-known/acme-challenge/
  3. 上傳包含 token 內容的文字檔案

常見問題: 某些 Web 伺服器預設不提供 .well-known 目錄的檔案。如果返回 404,檢查伺服器配置。Nginx 可能需要在配置中新增 location ~ /\.well-known { allow all; }

方式 B:DNS-01 驗證(萬用字元證書必選)

在域名的 DNS 設定中新增一條 TXT 記錄。

  1. GetHTTPS 顯示一個記錄名(如 _acme-challenge.example.com)和記錄值(一長串雜湊值)
  2. 去你的 DNS 提供商新增 TXT 記錄
  3. 等待 DNS 傳播(通常 1-5 分鐘)
  4. 在 GetHTTPS 中點選驗證

DNS 提供商速查表:

提供商在哪裡新增 TXT 記錄TTL 設定
CloudflareDNS → 記錄 → 新增記錄 → 型別:TXT自動
AWS Route 53託管區域 → 你的域名 → 建立記錄 → TXT300
GoDaddyDNS 管理 → 新增 → 型別:TXT1 小時
Namecheap域名列表 → 管理 → 高階 DNS → 新增新記錄 → TXT自動
Google DomainsDNS → 自定義記錄 → 管理 → 建立新記錄 → TXT自動
DigitalOcean網路 → 域名 → 你的域名 → 新增記錄 → TXT30

預檢驗證(GetHTTPS 獨有功能)

在提交給 Let’s Encrypt 之前,GetHTTPS 會透過 Google 的 DNS-over-HTTPS API 從公網預檢你的驗證配置。這能發現以下錯誤:

  • 檔案內容或許可權錯誤
  • 埠 80 上檔案不可訪問
  • DNS 記錄尚未傳播
  • 防火牆阻止了請求
  • Cloudflare 代理攔截了驗證請求

預檢失敗時,GetHTTPS 會告訴你具體問題 — 讓你在浪費速率限制次數之前修復。

這是其他瀏覽器工具沒有的功能。 SSL For Free 和 ZeroSSL 直接提交給 CA,出錯後你才知道。

步驟 4:下載證書檔案

驗證透過後,Let’s Encrypt 簽發證書。GetHTTPS 提供四個檔案

檔案內容用途
privkey.pem你的私鑰 — 務必保密!所有伺服器都需要
cert.pem你的 SSL 證書(僅終端實體)Apache 等部分配置
chain.pemLet’s Encrypt 的中間 CA 證書Apache 等部分配置
fullchain.pemcert.pem + chain.pem 合併Nginx 和大多數伺服器

下載全部四個檔案。 不同伺服器需要不同的組合 — 四個都有就能適配所有平臺。

安全提醒: 妥善保管 privkey.pem。任何擁有此檔案的人都可以冒充你的網站。不要透過郵件傳送,不要提交到 Git,不要放在公開目錄。

步驟 5:安裝到伺服器

選擇你的平臺:

平臺安裝指南需要的檔案
Nginx完整指南 →fullchain.pem + privkey.pem
Apache完整指南 →cert.pem + chain.pem + privkey.pem
cPanel完整指南 →貼上三個檔案的內容
WordPress完整指南 →取決於主機(cPanel/Nginx/Apache)
Windows IIS完整指南 →需先轉換為 PFX 格式
Docker完整指南 →掛載 fullchain.pem + privkey.pem

快速安裝 — Nginx:

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

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

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers off;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 1d;

    add_header Strict-Transport-Security "max-age=63072000" always;

    root /var/www/html;
    index index.html;
}
sudo nginx -t && sudo systemctl reload nginx

快速安裝 — Apache:

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

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

    SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
    SSLHonorCipherOrder off

    DocumentRoot /var/www/html
</VirtualHost>
sudo apachectl configtest && sudo systemctl reload apache2

步驟 6:設定 HTTP 到 HTTPS 重新導向

強制所有流量使用加密連線。沒有重新導向的話,透過 http:// 訪問的使用者無法享受證書的保護。

Nginx:

server {
    listen 80;
    server_name example.com www.example.com;
    return 301 https://$host$request_uri;
}

Apache (.htaccess):

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

完整重新導向指南(含 www/非 www、代理場景、故障排除)→

步驟 7:驗證一切正常

瀏覽器檢查:

  1. 訪問 https://yourdomain.com
  2. 點選鎖頭圖示 → “證書”或”連線是安全的”
  3. 確認:簽發者為 “Let’s Encrypt”,約 90 天后過期,域名匹配

命令列檢查:

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

線上檢查:SSL Labs 測試中輸入域名,獲得詳細報告。

檢查混合內容: 開啟瀏覽器開發者工具(F12)→ Console 標籤,檢視 “Mixed Content” 警告。如何修復混合內容 →


續簽

Let’s Encrypt 證書在 90 天後過期。在第 60 天之前續簽,留出安全餘量。

用 GetHTTPS 續簽(手動):

  1. 再次訪問 gethttps.com/app/setup
  2. 重新輸入域名並完成新的驗證
  3. 替換伺服器上的證書檔案
  4. 過載 Web 伺服器(sudo systemctl reload nginx

用 Certbot 續簽(自動): 想要零干預續簽的話,在伺服器上安裝 Certbot。很多團隊用 GetHTTPS 獲取第一張證書,用 Certbot 處理後續自動續簽。

完整續簽指南 →


方法 2:主機提供商(可用時最簡單)

很多主機包含免費 SSL:

主機如何啟用自動續簽
HostingerhPanel → 安全 → SSL✅ AutoSSL
SiteGroundSite Tools → 安全 → SSL 管理器
Bluehost我的網站 → 安全 → SSL
NamecheapcPanel → SSL/TLS 狀態✅ AutoSSL
DigitalOcean無內建 — 使用 GetHTTPS 或 Certbot
AWSACM 用於負載均衡器,Certbot 用於 EC2✅(ACM)

如果主機提供免費 SSL,直接用 — 這是最簡單的方式。如果沒有(或需要更多控制權),用 GetHTTPS。

方法 3:Certbot(伺服器管理員)

Certbot 是一個命令列工具,可以在伺服器上自動化 Let’s Encrypt 證書。需要 root 許可權。

# 安装(Ubuntu)
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot

# 获取证书 + 自动配置 Nginx
sudo certbot --nginx -d example.com -d www.example.com

GetHTTPS 與 Certbot 完整對比 →

方法 4:Cloudflare(基於代理的 SSL)

使用 Cloudflare 作為 CDN 時,Universal SSL 免費包含。但要注意:Cloudflare SSL 意味著你的流量在 Cloudflare 邊緣節點解密,而不是在你的伺服器上。這對你合適嗎?→


故障排除

驗證檔案返回 404

  • 檢查路徑 — 檔案必須位於 /.well-known/acme-challenge/TOKEN,不能在子目錄中
  • 檢查許可權 — 檔案必須可被 Web 伺服器讀取(chmod 644)
  • Nginx — 如果配置阻止了點檔案,新增 location ~ /\.well-known { allow all; }
  • Cloudflare — HTTP-01 驗證期間臨時切換 DNS 為”僅 DNS”(灰色雲朵)
  • cPanel — 確保 .well-known 未被隱藏 — 有些檔案管理器會隱藏點目錄

DNS 記錄未找到

  • 再等一會 — 某些 DNS 提供商需要 5-15 分鐘傳播
  • 檢查記錄名 — 應該是 _acme-challenge(是否自動追加了域名取決於提供商)。GetHTTPS 的預檢會確認。
  • 檢查記錄型別 — 必須是 TXT,不是 CNAME 或 A
  • 手動驗證:
    dig TXT _acme-challenge.yourdomain.com +short

“請求過多” / 速率限制錯誤

Let’s Encrypt 允許每個註冊域名每週 50 張證書。達到限制時等一週重試,或使用預備環境測試。預檢可以避免浪費驗證次數。

瀏覽器安裝後仍顯示”不安全”

  1. 證書未安裝 — 檢查伺服器配置是否指向正確檔案
  2. 混合內容 — 頁面載入了 HTTP 資源。修復指南 →
  3. 重新導向未生效 — HTTP 流量未重新導向到 HTTPS。重新導向指南 →
  4. 證書過期檢查過期時間 →

“證書鏈不完整”錯誤

你在 Nginx 中使用了 cert.pem 而不是 fullchain.pem,或者 Apache 中缺少 SSLCertificateChainFile。伺服器需要中間證書來證明信任鏈


為什麼選 GetHTTPS?

特性GetHTTPSZeroSSLSSL For FreeCertbot
安裝無(瀏覽器)無(網頁)無(網頁)需要命令列安裝
私鑰瀏覽器生成(Web Crypto)⚠️ 可能在伺服器生成⚠️ 在伺服器生成在伺服器生成
免費證書限制無限3 張3 張無限
免費萬用字元❌(付費)
自動續簽
預檢驗證
Open sourceNoNoNoYes (Apache 2.0)
直連 Let’s Encrypt透過 ZeroSSL透過 ZeroSSL

所有免費 SSL 提供商完整對比 →


常見問題

真的能免費獲取 SSL 證書嗎?

可以。Let’s Encrypt 是一個非營利憑證授權機構,由 Mozilla、Google、EFF 等支援。它簽發免費的域名驗證(DV)證書 — 與很多公司花 50-200 美元/年購買的證書型別相同。超過 3 億個網站使用 Let’s Encrypt,全球 CA 市場份額 63.9%。

免費 SSL 證書和付費的一樣安全嗎?

一樣。所有 SSL 證書 — 免費或付費 — 使用相同的 TLS 加密。Let’s Encrypt 的免費 DV 證書與 DigiCert 500 美元的 EV 證書提供完全相同的加密強度。唯一的區別是驗證級別(CA 驗證你身份的程度),不是加密。詳細對比 →

免費 SSL 證書有效期多長?

Let’s Encrypt 證書有效期 90 天。這是故意設計的 — 限制金鑰洩露時的損害範圍並鼓勵自動化。在第 60 天續簽以留出安全餘量。注意:到 2029 年,所有證書的有效期將縮短至 47 天

需要 SSH/root 許可權嗎?

使用 GetHTTPS 不需要。你只需要能夠:

  • 在 Web 伺服器上放置檔案(透過 FTP、cPanel 檔案管理器或任何方式)— 用於 HTTP-01
  • 新增 DNS 記錄(透過域名註冊商或 DNS 提供商)— 用於 DNS-01

能免費獲取萬用字元證書嗎?

可以。GetHTTPS 透過 DNS-01 驗證支援萬用字元證書*.example.com)。這是很多競品(ZeroSSL、SSL For Free)限制為付費功能的特性。你需要訪問域名的 DNS 設定。

一張證書能保護多個域名嗎?

可以。在 GetHTTPS 中輸入所有域名 — 每張證書最多 100 個名稱。這會建立一個 SAN(多域名)證書。每個域名需要單獨的驗證。

HTTP-01 和 DNS-01 驗證有什麼區別?

HTTP-01: 在伺服器上放置一個檔案。更簡單,適用於單個域名。需要埠 80 開放。 DNS-01: 新增 DNS TXT 記錄。萬用字元證書必選。即使埠 80 被封也能用。 HTTP-01 詳細指南 → | DNS-01 指南 →

證書過期會怎樣?

瀏覽器顯示全屏安全警告(“您的連線不安全”)。訪客無法安全訪問你的網站,搜尋引擎可能會從索引中移除你的頁面。如何檢查過期時間 → | 如何續簽 →

能從 GetHTTPS 切換到 Certbot(或反過來)嗎?

可以。證書檔案是標準 PEM 格式。你可以用 GetHTTPS 生成第一張證書,之後安裝 Certbot 自動續簽。或者長期使用 Certbot,在需要快速重新簽發而不訪問伺服器時切換到 GetHTTPS。兩個工具互不衝突。

相關文章

比較 2026-05-08
GetHTTPS vs Certbot:該選哪個 SSL 工具?
詳細比較 GetHTTPS 和 Certbot 取得 Let's Encrypt 免費 SSL 憑證的方式。比較安裝、流程、隱私、自動化、續簽和使用場景。
比較 2026-05-08
2026 年最佳免費 SSL 憑證提供商比較
從隱私、限額、萬用字元支援和自動化等維度比較 9 家免費 SSL 憑證提供商。涵蓋獨立憑證授權機構、主機商和 CDN,並附上其他比較文章未涉及的隱私分析。
快速開始 2026-05-08
HTTP-01 驗證:工作原理與操作指南
HTTP-01 是證明域名所有權以獲取 SSL 證書的最簡單方式。在伺服器上放置一個檔案,Let's Encrypt 進行驗證,即可簽發證書。
快速開始 2026-05-08
DNS-01 驗證:工作原理與操作指南
DNS-01 驗證透過在 DNS 中新增 TXT 記錄來證明域名所有權。萬用字元證書必須使用此方式。涵蓋 Cloudflare、Route 53、GoDaddy、Namecheap 等的設定方法。
在瀏覽器中取得免費 SSL 憑證
無需安裝,無需帳號。私鑰始終留在你的裝置上。
取得憑證