SSL 憑證轉檔與檢測工具教學:常見格式轉換與安裝正確性檢查

完整整理 SSL 常見格式與 OpenSSL 工具用法,帶你操作 CSR 生成、格式轉換、私鑰管理與憑證檢測,搞懂 .crt .key .csr .pem .pfx 差在哪裡。

SSL憑證轉檔PEMPFXCRTCSROpenSSLSSL 檢測HTTPS資安工具教學私鑰全程代管

很多 SSL 問題不是憑證本身失敗,而是檔案格式搞錯、私鑰對不上,或中繼憑證沒帶完整。這篇會把站長最常遇到的憑證檔案與檢測工具一次梳理清楚。

你如果不想每次都只是照著別人的畫面一步一步跟著按,卻不知道自己到底改了什麼,這篇會比較適合你。重點不是讓你背流程,而是讓你下次遇到類似情況時,還知道該怎麼自己判斷。

你會學到什麼

  • 分清楚常見憑證格式與它們的用途。
  • 學會用 OpenSSL 生成 CSR 和進行格式轉換。
  • 知道什麼情況需要轉檔,什麼情況不用多做一步。
  • 用工具快速確認憑證是否正確、鏈是否完整。
  • 掌握私鑰的安全管理原則。

什麼情況最適合先看這篇

  • 剛接手虛擬主機、想自己把網站日常維護做好的人
  • 你現在正要處理「SSL 憑證轉檔與檢測工具」這類操作
  • 你希望做完之後不只功能能用,連驗證與排錯也有概念

開始前先確認

  • 先整理好你手上的憑證檔與私鑰檔。
  • 確認目前要裝在哪個服務上(cPanel、IIS、Nginx 等)。
  • 變更前先保留原始檔,不要直接覆蓋。

先提醒你一件事

cPanel 很多功能都和網域、目錄、Email、憑證綁在一起,設定前先確認你改的是哪個站。

SSL 憑證檔案全解析

先搞清楚你手上拿到的檔案分別是什麼,這是所有後續操作的基礎。

各格式一覽表

副檔名全名內容常用於
.keyPrivate Key私鑰,和 CSR 成對產生所有伺服器
.csrCertificate Signing Request憑證簽署請求,提交給 CA申請憑證時
.crt / .cerCertificate已簽發的主憑證Apache、Nginx、cPanel
.pemPrivacy Enhanced MailBase64 編碼的憑證或私鑰Linux 系統、Nginx
.pfx / .p12PKCS#12私鑰 + 憑證 + 中繼鏈打包Windows IIS
.ca-bundleCA Bundle中繼憑證鏈搭配 .crt 一起用
.derDER Encoded二進位格式的憑證Java、部分設備

重點觀念: .pem.crt 內容格式通常一樣(都是 Base64),只是副檔名不同。很多時候改副檔名就能用。但 .pfx.der 是完全不同的編碼,需要用 OpenSSL 轉換。

CSR 生成教學

CSR(Certificate Signing Request)是你向憑證商申請 SSL 時必須提交的檔案。它包含你的網域資訊和公鑰。

方法一:在 cPanel 生成 CSR

  1. 登入 cPanel,在「Security」區塊點擊「SSL/TLS」。
  2. 點擊「Certificate Signing Requests (CSR)」。
  3. 填寫以下資訊:
    • Key:選擇「Generate a New Key」
    • Domains:你的網域名稱(例如 yourdomain.com
    • City:城市(例如 Taipei
    • State:縣市(例如 Taiwan
    • Country:選 TW
    • Company:公司名稱
  4. 點擊「Generate」。
  5. 系統會產生 CSR 內容,複製它提交給憑證商。

注意: cPanel 會同時自動保存對應的私鑰。你可以在「Private Keys」頁面找到它。

方法二:用 OpenSSL 指令生成 CSR

如果你需要更精確的控制,或不在 cPanel 環境中:

openssl req -new -newkey rsa:2048 -nodes -keyout yourdomain.key -out yourdomain.csr

系統會要你依序輸入:

Country Name: TW
State or Province Name: Taiwan
Locality Name: Taipei
Organization Name: Your Company Name
Organizational Unit Name: IT Department(可留空)
Common Name: yourdomain.com
Email Address:(可留空)

執行完會產生兩個檔案:

  • yourdomain.key — 私鑰,要好好保管
  • yourdomain.csr — 提交給 CA 的請求檔

生成 SAN 憑證的 CSR(多網域)

如果你需要一張憑證覆蓋多個網域:

openssl req -new -newkey rsa:2048 -nodes -keyout multi.key -out multi.csr -config <(
cat << EOF
[req]
default_bits = 2048
prompt = no
distinguished_name = dn
req_extensions = v3_req

[dn]
C = TW
ST = Taiwan
L = Taipei
O = Your Company
CN = yourdomain.com

[v3_req]
subjectAltName = @alt_names

[alt_names]
DNS.1 = yourdomain.com
DNS.2 = www.yourdomain.com
DNS.3 = shop.yourdomain.com
EOF
)

常見格式轉換指令(OpenSSL)

PEM 轉 PFX(給 Windows IIS 用)

openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile ca-bundle.crt

系統會要你設定一組匯出密碼,匯入 IIS 時會需要。

PFX 轉 PEM(從 IIS 搬到 Linux)

# 匯出私鑰
openssl pkcs12 -in certificate.pfx -nocerts -out privateKey.key -nodes

# 匯出憑證
openssl pkcs12 -in certificate.pfx -clcerts -nokeys -out certificate.crt

# 匯出中繼憑證
openssl pkcs12 -in certificate.pfx -cacerts -nokeys -out ca-bundle.crt

CRT 轉 PEM

通常只需要改副檔名,或用指令確認格式:

openssl x509 -in certificate.crt -out certificate.pem -outform PEM

DER 轉 PEM

openssl x509 -inform der -in certificate.der -out certificate.pem

PEM 轉 DER

openssl x509 -outform der -in certificate.pem -out certificate.der

合併憑證和中繼鏈為單一 PEM

某些服務(如 Nginx)需要把主憑證和中繼鏈合併成一個檔案:

cat certificate.crt ca-bundle.crt > fullchain.pem

順序很重要: 主憑證在前,中繼憑證在後,Root CA 在最後(通常不需要放)。

憑證驗證指令

轉檔完或設定完,一定要驗證。以下指令幫你確認每個檔案是否正確。

查看憑證資訊

openssl x509 -in certificate.crt -text -noout

這會顯示:發行者、有效期限、網域名稱(CN 和 SAN)、加密演算法等。

確認私鑰與憑證是否配對

# 取得憑證的 modulus hash
openssl x509 -noout -modulus -in certificate.crt | openssl md5

# 取得私鑰的 modulus hash
openssl rsa -noout -modulus -in privateKey.key | openssl md5

# 取得 CSR 的 modulus hash
openssl req -noout -modulus -in certificate.csr | openssl md5

三組 hash 必須一樣。 如果不一樣,代表私鑰和憑證不是同一對,設定上去一定會出錯。

檢查憑證到期日

openssl x509 -enddate -noout -in certificate.crt

遠端檢查網站的 SSL 狀態

openssl s_client -connect yourdomain.com:443 -servername yourdomain.com

這會顯示完整的 SSL 交握資訊,包含憑證鏈、協議版本、加密套件。

私鑰安全管理

私鑰是整個 SSL 安全的核心。如果私鑰洩漏,加密形同虛設。

私鑰管理原則

  1. 永遠不要用 Email 傳送私鑰。 如果必須傳送,使用加密壓縮(7z + 密碼)。
  2. 不要把私鑰放在 public_html 或任何網頁可存取的目錄。
  3. 設定正確的檔案權限: chmod 600 privateKey.key(只有擁有者可讀寫)。
  4. 換主機或人員離職時,重新產生 CSR 和私鑰。 不要沿用舊的。
  5. 備份私鑰時加密保存。 可用 openssl rsa -aes256 -in plain.key -out encrypted.key

如果私鑰疑似洩漏

  1. 立刻到憑證商後台「Revoke」(撤銷)目前的憑證。
  2. 重新產生 CSR 和私鑰。
  3. 用新的 CSR 重新申請憑證。
  4. 部署新憑證到伺服器。

線上檢測工具

SSL Labs(最推薦)

Qualys SSL Labs 是業界標準,它會為你的網站安全性評分(A+ 為最高分)。

評分會檢查的項目:

  • 憑證有效性與信任鏈
  • 支援的 TLS 版本(TLS 1.2 / 1.3)
  • 加密套件強度
  • 是否有已知漏洞(Heartbleed、POODLE 等)
  • HSTS 設定

侃瑞科技的虛擬主機已預設關閉不安全協議(TLS 1.0 / 1.1),你通常可以輕鬆拿到 A 以上的評分。

SSL Checker

SSL Shopper 能快速診斷你的中繼憑證(CA Bundle)是否漏裝。如果結果顯示鏈不完整,代表你需要補上中繼憑證。

Why No Padlock?

Why No Padlock? 專門用來找出為什麼你的網址列沒有顯示鎖頭。通常原因是 Mixed Content(混合內容),可以搭配 SSL 憑證設定教學 的 mixed content 排查段落一起看。

Certificate Decoder

SSL Shopper Decoder 讓你貼上憑證內容(PEM 格式),就能看到完整的憑證資訊,不需要用指令。

Troubleshooting

「SSL certificate problem: unable to get local issuer certificate」

原因: 中繼憑證(CA Bundle)沒裝完整。 解法: 在 cPanel 的 SSL/TLS → Manage SSL Sites 中,確認 CA Bundle 欄位有填入完整的中繼憑證鏈。

SSL Labs 評分只有 B

原因: 通常是伺服器還支援 TLS 1.0 或 1.1。 解法: 侃瑞科技的主機已預設關閉舊協議。如果你是自架 VPS,需要在 Apache 或 Nginx 設定中關閉。

瀏覽器顯示「NET::ERR_CERT_COMMON_NAME_INVALID」

原因: 憑證的網域名稱和你實際訪問的網域不符。 解法: 確認憑證的 CN 或 SAN 包含你的網域(含 www 和裸網域)。

私鑰和憑證 modulus 不一致

原因: 你用了不同次產生的私鑰和 CSR。 解法: 必須重新產生 CSR(用正確的私鑰),然後重新申請憑證。

轉換 PFX 時出現「unable to load private key」

原因: PFX 檔案的匯出密碼不對,或檔案損壞。 解法: 確認密碼正確。如果是從 Windows 匯出的,重新匯出一次並記住密碼。

做完後怎麼確認自己真的有設對

  • openssl x509 -text -noout -in certificate.crt 確認憑證網域和效期。
  • 用 modulus 比對確認私鑰和憑證配對。
  • 到 SSL Labs 跑一次完整檢測。
  • 用不同裝置(手機、平板)訪問確認鎖頭正常。
  • 如果是轉檔,在目標伺服器上實際部署後再確認。

這一題最常踩的坑

  • 把不同網站的私鑰與憑證混在一起。
  • 只看瀏覽器鎖頭,不檢查中繼鏈。
  • 轉檔後不驗證內容,之後很難知道是哪一步出錯。
  • 私鑰放在可公開存取的目錄。
  • 合併 PEM 時順序放反,導致某些客戶端無法驗證。

如果你要往下一步走

如果你是要實際把站切到 HTTPS,可以回頭搭配 cPanel SSL 憑證設定教學 一起看。如果你不想自己處理這些繁瑣的憑證管理,侃瑞科技提供 SSL 全程代管,從申請、設定到續約全部幫你搞定。如果你想把這些功能直接用在穩定環境,侃瑞的 cPanel 虛擬主機方案 可以直接對照本文操作。

需要主機來實作?

侃瑞科技提供 cPanel 虛擬主機與 VPS,教學裡的操作開箱即用。

查看方案 →
LINE 諮詢