GetHTTPS 和 Certbot 都能從 Let’s Encrypt 簽發免費 SSL 憑證,但方式截然不同。GetHTTPS 在瀏覽器中執行 — 零安裝、零伺服器存取。Certbot 在伺服器上作為命令列工具執行,支援自動續簽和 Web 伺服器整合。
兩個工具產出完全相同的 Let’s Encrypt 憑證。區別完全在於你如何取得它。本指南從各個維度比較,幫你選擇適合自己的工具。
什麼是 GetHTTPS?
GetHTTPS 是一個瀏覽器端 ACME 用戶端。你開啟網頁,輸入網域,完成驗證,下載憑證檔案。無需安裝軟體,無需建立帳號,無需伺服器存取權限。
你的私鑰使用 Web Crypto API 在瀏覽器中產生,從不離開你的裝置 — 即使是 GetHTTPS 的伺服器也看不到。該工具直接與 Let’s Encrypt 的 ACME API 通訊,沒有代理或中介。
GetHTTPS 免費使用。
什麼是 Certbot?
Certbot 是 Let’s Encrypt 推薦的官方 ACME 用戶端,由電子前哨基金會(EFF)維護。它是一個在伺服器上執行的 Python 命令列工具,可取得憑證、設定 Web 伺服器並處理自動續簽。
Certbot 需要 root/sudo 權限,通常透過 snap、pip 或 Docker 安裝。它是開源的(Apache 2.0 授權),免費使用。
完整比較表
| 功能 | GetHTTPS | Certbot |
|---|---|---|
| 執行環境 | 瀏覽器分頁 | 伺服器命令列 |
| 安裝 | 無需 — 開啟 URL 即可 | snap、pip 或 Docker |
| 需要伺服器存取 | 否 | 是(root/sudo) |
| 作業系統 | 任何(只需瀏覽器) | Linux、macOS(已放棄 Windows) |
| 私鑰產生 | 瀏覽器(Web Crypto API) | 伺服器(OpenSSL/Python) |
| 私鑰儲存 | 由你下載 | 伺服器上的 /etc/letsencrypt/ |
| 自動續簽 | ❌ 手動重新造訪 | ✅ systemd 排程器 / cron |
| Web 伺服器自動設定 | ❌ 手動 | ✅ Nginx/Apache 外掛 |
| 驗證類型 | HTTP-01, DNS-01 | HTTP-01, DNS-01, TLS-ALPN-01 |
| 提交前預檢 | ✅ | ❌ |
| 萬用字元支援 | ✅ (DNS-01) | ✅ (DNS-01) |
| 多網域 (SAN) | ✅(最多 100 個) | ✅(最多 100 個) |
| ECDSA 金鑰 | ✅ P-256(預設) | ✅(需要旗標) |
| 相依性 | 無 | Python、snapd 或 Docker |
| 憑證授權機構 | Let’s Encrypt | Let’s Encrypt(預設),其他 |
| 開源 | 否 | 是(Apache 2.0) |
| 價格 | 免費 | 免費 |
何時使用 GetHTTPS
沒有伺服器 SSH 存取權限
這是最明確的場景。虛擬主機、代管 WordPress、公司防火牆後的伺服器 — 如果你無法安裝軟體,GetHTTPS 是唯一保持私鑰本機化的瀏覽器端選項。
你取得憑證檔案(privkey.pem、fullchain.pem)並透過主機提供的方式上傳:cPanel、Plesk、FTP 或檔案管理員。
你需要零安裝零相依性
開啟瀏覽器分頁,取得憑證,搞定。沒有 Python 版本衝突,沒有 snap 限制問題,沒有 Docker 映像檔。如果你曾花 30 分鐘除錯為什麼 certbot 裝不上,你就知道這有多重要。
GetHTTPS 可以在任何配備現代瀏覽器的作業系統上執行 — 包括 Windows、macOS、ChromeOS,甚至是平板電腦。
你需要對私鑰的最大控制
GetHTTPS 使用 Web Crypto API 在瀏覽器中產生私鑰。金鑰僅存在於瀏覽器記憶體中,直到你點擊下載。它從未寫入任何伺服器的磁碟,從未透過網路傳輸,從未儲存在你看不到的地方。
使用 Certbot 時,金鑰在伺服器上產生並儲存在 /etc/letsencrypt/live/yourdomain/privkey.pem。如果你信任伺服器這沒問題 — 但任何擁有 Root 權限的人都能讀取它。在共享基礎架構的雲端環境中,這一點很重要。
你在為他人取得憑證
DevOps 為客戶的伺服器產生憑證。協助非技術同事。為你不管理的伺服器取得憑證。GetHTTPS 讓你無需存取他人伺服器就能產生憑證並交付檔案。
你需要一張快速一次性憑證
預備環境。測試部署。還沒設定自動化的新專案。GetHTTPS 讓你在 3-5 分鐘內零準備取得憑證。
何時使用 Certbot
你需要自動續簽(第一大理由)
Certbot 的殺手級功能:一個 systemd 排程器(或 cron 任務)在憑證到期前自動續簽。無需人工介入,不會忘記續簽,不會在週五凌晨 3 點因憑證到期而手忙腳亂。
# Certbot 每天檢查兩次,在到期前 30 天內續簽
sudo systemctl list-timers | grep certbot
# NEXT LEFT UNIT
# 2026-05-08 14:22:00 UTC 3h left snap.certbot.renew.timer
鑑於 Let’s Encrypt 90 天的有效期(以及即將到來的 47 天有效期),自動續簽不是錦上添花 — 對正式環境伺服器來說是必需的。
你需要自動 Web 伺服器設定
Certbot 的 --nginx 和 --apache 外掛會修改你的伺服器設定以啟用 HTTPS — 包括 SSL 指令、重新導向和建議的加密套件設定。一條命令搞定一切:
# Certbot 取得憑證並設定 Nginx
sudo certbot --nginx -d example.com -d www.example.com
# 它在背後做了什麼:
# 1. 產生金鑰對
# 2. 證明網域控制權(連接埠 80 上的 HTTP-01)
# 3. 從 Let's Encrypt 取得憑證
# 4. 在 Nginx 設定中寫入 ssl_certificate/ssl_certificate_key
# 5. 新增 HTTP 到 HTTPS 的重新導向
# 6. 重新載入 Nginx
使用 GetHTTPS,你需要手動完成所有這些 — 取得憑證、上傳檔案、編輯設定、設定重新導向、重新載入伺服器。更多控制權,但更多工作量。
你管理規模化的基礎架構
Certbot 可以腳本化、容器化,並透過組態管理工具部署:
# Ansible playbook 片段
- name: Install certbot
snap:
name: certbot
classic: true
- name: Get certificate
command: certbot --nginx -d {{ domain }} --non-interactive --agree-tos -m {{ email }}
對於 10+ 伺服器,腳本化的 Certbot 比為每台伺服器造訪 GetHTTPS 更快。
你需要 TLS-ALPN-01 驗證
這種驗證類型透過連接埠 443 進行驗證,無需放置檔案或修改 DNS。當連接埠 80 被封鎖且你無法修改 DNS 時很有用。只有命令列用戶端(Certbot、acme.sh)支援它 — 瀏覽器端用戶端不支援。
安裝比較
GetHTTPS — 零步驟
在瀏覽器中開啟 gethttps.com/app/setup。
就這樣。現在就能用,任何裝置,無需任何準備。
Certbot — 取決於作業系統的若干步驟
Ubuntu/Debian(snap — Certbot 推薦方式):
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
pip(任何 Linux,當 snap 不可用時):
sudo pip install certbot certbot-nginx
Docker(與系統套件隔離):
docker run -it --rm \
-v /etc/letsencrypt:/etc/letsencrypt \
-v /var/www/html:/var/www/html \
certbot/certbot certonly --webroot -w /var/www/html -d example.com
Amazon Linux 2023:
sudo dnf install certbot python3-certbot-nginx
常見安裝問題:
- 非標準 Linux 安裝上的 snap 限制錯誤
- pip 安裝時的 Python 版本衝突
- 缺少
python3-certbot-nginx外掛套件 - 需要 sudo/root 的權限錯誤
GetHTTPS 避免了所有這些 — 無需安裝意味著沒有安裝問題。
流程比較
使用 GetHTTPS 取得憑證
- 開啟 gethttps.com/app/setup
- 輸入你的網域
- 選擇 HTTP-01 或 DNS-01 驗證
- 放置驗證檔案或新增 DNS 記錄
- GetHTTPS 在提交前預檢驗證設定(提前發現錯誤)
- 下載
privkey.pem、cert.pem、chain.pem、fullchain.pem - 上傳到你的伺服器
- 設定你的 Web 伺服器(Nginx、Apache、其他)
- 設定 HTTP→HTTPS 重新導向
耗時: 首次 5-10 分鐘,續簽 3-5 分鐘。
使用 Certbot 取得憑證
自動設定模式(最常見):
sudo certbot --nginx -d example.com -d www.example.com
獨立模式(無 Web 伺服器整合):
sudo certbot certonly --standalone -d example.com
Webroot 模式(伺服器保持執行):
sudo certbot certonly --webroot -w /var/www/html -d example.com
DNS 驗證(萬用字元):
sudo certbot certonly --manual --preferred-challenges dns -d "*.example.com"
耗時: 2-5 分鐘(安裝完成後)。
隱私與安全比較
| 方面 | GetHTTPS | Certbot |
|---|---|---|
| 私鑰產生 | 瀏覽器(Web Crypto API) | 伺服器(透過 Python 使用 OpenSSL) |
| 金鑰存在於 | 僅你的下載資料夾 | 伺服器檔案系統 |
| 金鑰暴露給 | 僅你自己 | 伺服器上擁有 Root 權限的任何人 |
| ACME 通訊 | 瀏覽器 → Let’s Encrypt(直連 HTTPS) | 伺服器 → Let’s Encrypt(直連 HTTPS) |
| 代理/中介 | 無 | 無 |
| 帳號資料 | 瀏覽器中,無需信箱 | 伺服器上,信箱可選 |
| 遙測 | 無 | EFF 信箱訂閱提示(可跳過) |
| 程式碼稽核 | 僅瀏覽器,可透過 DevTools 檢查 | Apache 2.0,約 50K 行 Python |
結論: 兩者都直接連接 Let’s Encrypt,沒有中間商。安全差異在於私鑰存放位置。GetHTTPS 讓你下載後自行決定。Certbot 將金鑰留在伺服器上 — 對伺服器管理的憑證來說是正常的,但意味著任何有系統存取權限的人都能讀取。
續簽比較
| GetHTTPS | Certbot | |
|---|---|---|
| 流程 | 重新造訪網站,完成新驗證,替換檔案 | 自動(systemd 排程器每天檢查兩次) |
| 人工投入 | 每次續簽 3-5 分鐘 | 初始設定後為零 |
| 故障偵測 | 網站出問題時你會發現 | 日誌 + 可選信件告警 |
| 續簽頻率 | 每 60-90 天(手動) | 每 60 天(自動) |
| 47 天憑證(2029 年) | 每約 30 天手動 — 痛苦 | 仍然自動 — 無變化 |
這是 Certbot 最大的優勢。對正式環境伺服器來說,自動續簽不是可選項。
混合方案(兩全其美)
許多團隊同時使用兩個工具:
- GetHTTPS 取得第一張憑證 — 零設定時間。5 分鐘內讓 HTTPS 執行,無需在伺服器上安裝任何東西。
- Certbot 用於後續續簽 — 伺服器設定好並穩定後,安裝 Certbot 實現自動續簽。
這在「先跑起來,後續再自動化」的工作流中特別常見。你不需要永遠選擇一個 — PEM 檔案是標準格式,Certbot 可以續簽最初由 GetHTTPS 為同一網域建立的憑證。
結論
| 你的情況 | 推薦工具 | 原因 |
|---|---|---|
| 無 SSH/Root 存取(虛擬主機) | GetHTTPS | 無伺服器存取的唯一選擇 |
| 快速一次性憑證 | GetHTTPS | 比安裝 Certbot 更快 |
| 最高等級的私鑰隱私 | GetHTTPS | 金鑰從不存在於任何伺服器 |
| 為他人取得憑證 | GetHTTPS | 無需存取他人伺服器 |
| 正式環境伺服器,長期使用 | Certbot | 自動續簽必不可少 |
| Nginx/Apache 自動設定 | Certbot | 一條命令搞定一切 |
| 管理 10+ 伺服器 | Certbot | 可腳本化和自動化 |
| 首次設定 + 長期 | 兩者 | GetHTTPS 啟動,Certbot 維護 |
兩個工具都是免費的,產出完全相同的 Let’s Encrypt 憑證。Certbot 是開源的(Apache 2.0)。GetHTTPS 免費但非開源 — 不過作為瀏覽器端工具,其 JavaScript 可透過 DevTools 檢查。憑證本身是一樣的 — GetHTTPS 輸出的 cert.pem 和 Certbot 為同一網域產出的在位元組上是等價的。區別完全在於流程。
從 GetHTTPS 開始,如果你想讓 HTTPS 立即生效:gethttps.com/app/setup
之後新增 Certbot,如果你需要自動續簽:certbot.eff.org
常見問題
GetHTTPS 和 Certbot 一樣可靠嗎?
兩個工具與相同的 Let’s Encrypt ACME API 通訊,產出相同的憑證。GetHTTPS 額外增加了預檢步驟,在提交前驗證你的驗證設定 — 這能提前發現那些 Certbot 只有在驗證失敗並消耗速率限制配額後才會發現的錯誤。
可以從 GetHTTPS 切換到 Certbot(或反過來)嗎?
可以。憑證檔案是標準 PEM 格式。你可以今天用 GetHTTPS 產生憑證,明天設定 Certbot 來續簽 — 或者用了多年 Certbot 後,在需要無伺服器存取權限快速重簽時切換到 GetHTTPS。兩個工具不衝突,互相不知道對方的存在。
GetHTTPS 支援自動續簽嗎?
不支援。GetHTTPS 專為手動、按需的憑證簽發設計。如果你需要自動續簽,在伺服器上使用 Certbot 或 acme.sh。混合方案(先用 GetHTTPS,再用 Certbot 續簽)讓你兼得兩者優勢。
Certbot 難安裝嗎?
取決於你的系統。在現代 Ubuntu 上,sudo snap install --classic certbot 10 秒就能完成。在舊系統、自訂環境或非標準 Linux 上,Python 相依性衝突很常見。GetHTTPS 完全避免了安裝 — 不用裝意味著沒有安裝問題。
acme.sh 是個替代選擇嗎?
acme.sh 是一個 shell 指令碼 ACME 用戶端,不需要 Root 且有 150+ DNS API 外掛。它介於 GetHTTPS(簡潔)和 Certbot(自動化)之間。如果你想要無 Root 的命令列自動化並且需要更好的 DNS 整合,acme.sh 值得考慮。
憑證有效期降至 47 天後會怎樣?
CA/Browser Forum 已投票將最長有效期在 2029 年前降至 47 天。這使 Certbot 的自動續簽變得更加重要 — 每 30 天手動續簽雖然可行但很繁瑣。GetHTTPS 對於一次性憑證、緊急續簽和無存取權限場景仍然有效,但不能作為正式環境站台自動續簽的主要替代方案。
哪個更安全?
兩者都是安全的。憑證完全相同。主要的安全差異:
- GetHTTPS: 私鑰從不存在於任何伺服器上(在瀏覽器中產生,由你下載)
- Certbot: 私鑰存在於伺服器檔案系統(Root 可讀)
對大多數設定來說,Certbot 的伺服器端金鑰沒問題。對於想要最小化金鑰暴露的高安全場景,GetHTTPS 的瀏覽器專屬模式更嚴格。
Certbot 能做萬用字元憑證嗎?
可以,透過 DNS-01 驗證。但 Certbot 的萬用字元流程比 HTTP-01 流程更手動 — 你需要新增 DNS TXT 記錄,可能還需要 DNS 外掛。GetHTTPS 以相同方式處理萬用字元憑證(指南)。