目錄
注意事項
請確認主機 OpenSSL 的版本是否有受到 Heartbleed Bug 的影響,
可輸入以下指令來確認您 OpenSSL的版本。
| |
影響範圍:1.0.1 ~ 1.0.1f / 1.0.2-beta ~ 1.0.2-beta1
若有 Heartbleed Bug,建議先升級到修復版本
產生金鑰
密碼長度不建議低於 2048,目前 512 已有被破解的紀錄
⚠️ 注意,請於空的資料夾執行,避免原本的 Key 被覆蓋 (有的話)
| |
執行過程會要求您輸入密碼 (Enter PEM pass phrase),
及二次驗證密碼 (Verifying - Enter PEM pass phrase)
⚠️ 注意:請牢記此密碼!⚠️ 注意:server.key 請妥善保存,不需要給任何人 (包含憑證商)
產生請求檔
| |
輸入以下資料
Country Name:
TW(二字元國碼)
State or Province Name:(台灣不需輸入,可按 enter 鍵略過)
Locality Name:New Taipei(城市)
Organization Name:公司或組織名稱
Organizational Unit Name:部門名稱(例如: IT)
Common Name:要申請憑證的網域(不帶 https:// )
Email Address:電子信箱,可輸入也可略過
A challenge password:(按 enter 鍵略過)
An optional company name:(按 enter 鍵略過)
接著輸入密碼後,目錄內會有一個 certreq.csr,這就是請求檔了!
移除金鑰密碼
| |
得到的 server_without_pw.key,已無密碼保護,請謹慎使用及保存
PFX, PEM, CER, DER 的用途與分辨方式
在處理 SSL/TLS 憑證時,您會遇到許多不同的檔案格式與副檔名,
其中最常見的是 PFX, PEM, CER, 和 DER。
理解它們之間的差異對於正確管理憑證至關重要。
基本上,憑證的內容可以透過兩種主要方式編碼:
- PEM (Privacy-Enhanced Mail): ASCII 文字格式
使用 Base64 編碼,可以用文字編輯器打開。檔案內容會包含-----BEGIN...-----和-----END...-----這樣的標頭和結尾。這是最常見的格式,廣泛用於各種伺服器,如 Apache 和 Nginx。 - DER (Distinguished Encoding Rules): 二進位格式
無法用文字編輯器直接讀取。這種格式經常在 Java 平台和 Windows 系統中使用。
而不同的副檔名則代表了不同用途的檔案:
.crt / .cer (Certificate): 這兩個副檔名通常代表一個憑證檔案,但它可能是 PEM 或 DER 編碼。在 Windows 中,
.cer通常是 DER 編碼;在 Linux/Unix 系統中,.crt通常是 PEM 編碼。這些檔案只包含公鑰憑證,不含私鑰。.key (Key): 通常指私鑰檔案,一般是 PEM 編碼。其內容會包含
-----BEGIN PRIVATE KEY-----標頭。.pfx / .p12 (Personal Information Exchange): 這是一個二進位的封存檔案格式 (也稱為 PKCS#12),用於將伺服器憑證、所有中繼憑證以及私鑰捆綁在一個可加密的檔案中。因為它包含了私鑰,所以通常會用密碼保護。這在 Windows IIS 環境中特別常用,方便憑證的匯入和匯出。
總結
| 格式/副檔名 | 編碼 | 內容 | 主要用途 |
|---|---|---|---|
| PEM | Base64 ASCII | 憑證、私鑰、中繼憑證 | Linux 平台 |
| DER | 二進位 | 憑證 (公鑰) | Java, Windows 平台 |
| .cer / .crt | PEM 或 DER | 僅憑證 (公鑰) | 單一憑證 |
| .key | PEM | 僅私鑰 | 儲存私鑰 |
| .pfx / .p12 | 二進位 | 憑證、私鑰、中繼憑證 (捆綁包) | Windows IIS 平台 |
PEM 和 DER 和 PFX 之間轉換
上述產生的 key 即為 PEM 格式
PEM to PFX
常用於將 Linux 上的憑證轉給 IIS 使用,需同時輸入憑證及對應的 key
| |
若 PFX 檔匯入 IIS 時出現 "指定的網路密碼錯誤",請將 openssl 版本降至 1.x.x或改用以下指令
| |
PFX to PEM
常用於將 IIS 上的憑證轉給 Linux 使用,需輸入 IIS 匯出憑證時設定的密碼(有的話)
| |
PEM to DER
| |
DER to PEM
| |
PVK to PEM
PVK (Microsoft PrivateKey Blob)
| |
製作 HAProxy 使用的憑證
請先準備以下檔案
- 網域證書 server.crt
- 網域證書的金鑰 server.key
- 中繼憑證(依序至根憑證) CACert.crt
- 根憑證 (如果有的話,通常沒有) root.crt
| |