好的,以下是完整的步驟,幫助你在 Windows 系統中使用 OpenSSL 生成私鑰(key
)和 PEM 文件。假設你的 openssl.cnf
配置文件位于桌面。
步驟 1:打開命令提示符
- 按
Win + R
鍵,打開“運行”對話框。 - 輸入
cmd
,然后按Enter
鍵,打開命令提示符。
步驟 2:導航到桌面目錄
假設你的桌面路徑是 C:\Users\28581_000\Desktop
,運行以下命令:
cd C:\Users\28581_000\Desktop
步驟 3:生成私鑰
運行以下命令生成一個 2048 位的 RSA 私鑰,并將其保存為 private.key
:
openssl genrsa -out private.key 2048
步驟 4:生成證書簽名請求(CSR)
運行以下命令生成一個證書簽名請求(CSR),并將其保存為 csr.csr
。在生成 CSR 時,系統會提示你輸入一些信息,例如你的國家、地區、組織名稱等。
openssl req -new -key private.key -out csr.csr -config openssl.cnf
步驟 5:生成自簽名證書
運行以下命令生成一個自簽名證書,并將其保存為 certificate.crt
。這個證書的有效期設置為 365 天。
openssl x509 -req -days 365 -in csr.csr -signkey private.key -out certificate.crt -config openssl.cnf
步驟 6:合并私鑰和證書為 PEM 文件
運行以下命令將私鑰和證書合并為一個 PEM 文件,并將其保存為 server.pem
:
copy private.key + certificate.crt server.pem
完整步驟示例
以下是一個完整的命令序列,展示如何生成私鑰、CSR 和自簽名證書,并將它們合并為一個 PEM 文件:
C:\Users\28581_000\Desktop>cd C:\Users\28581_000\Desktop
C:\Users\28581_000\Desktop>openssl genrsa -out private.key 2048
C:\Users\28581_000\Desktop>openssl req -new -key private.key -out csr.csr -config openssl.cnf
C:\Users\28581_000\Desktop>openssl x509 -req -days 365 -in csr.csr -signkey private.key -out certificate.crt -config openssl.cnf
C:\Users\28581_000\Desktop>copy private.key + certificate.crt server.pem
注意事項
- 配置文件路徑:確保
openssl.cnf
文件的路徑正確。如果文件不在桌面,需要指定完整的路徑。 - 私鑰保護:私鑰文件(
private.key
)是敏感信息,必須妥善保管,避免泄露。 - 證書有效期:自簽名證書的有效期可以根據需要調整(例如
-days 365
表示有效期為 365 天)。 - CSR 信息:在生成 CSR 時,系統會提示你輸入一些信息,例如你的國家、地區、組織名稱等。這些信息將包含在你的證書中。
通過以上步驟,你應該能夠成功生成所需的私鑰、CSR 和證書,并將它們合并為一個 PEM 文件。如果在過程中遇到任何問題,請提供更多詳細信息,以便進一步幫助你。
在生成證書簽名請求(CSR)時,OpenSSL 有時會提示你輸入一些額外的屬性,例如“挑戰密碼”(Challenge Password)。這些額外屬性通常用于增強證書的安全性,但在許多情況下,這些字段可以留空。
如何處理“挑戰密碼”提示
當你看到以下提示時:
A challenge password []:
你可以選擇以下兩種方式之一來處理:
-
輸入挑戰密碼:
- 如果你希望為證書請求設置一個挑戰密碼,可以輸入一個安全的密碼。這個密碼通常用于在某些情況下驗證證書請求的所有權。
- 例如,你可以輸入一個復雜的密碼,如
MySecurePassword123!
。
-
留空挑戰密碼:
- 如果你不需要挑戰密碼,可以直接按
Enter
鍵留空該字段。在大多數情況下,留空挑戰密碼是完全可以的。
- 如果你不需要挑戰密碼,可以直接按
完整的 CSR 生成過程
以下是生成 CSR 的完整過程,包括處理“挑戰密碼”提示的示例:
-
生成私鑰:
openssl genrsa -out private.key 2048
-
生成 CSR:
openssl req -new -key private.key -out csr.csr -config openssl.cnf
在生成 CSR 時,系統會提示你輸入以下信息:
Country Name (2 letter code) [AU]: CN State or Province Name (full name) [Some-State]: Beijing Locality Name (eg, city) []: Beijing Organization Name (eg, company) [Internet Widgits Pty Ltd]: My Company Organizational Unit Name (eg, section) []: IT Department Common Name (e.g. server FQDN or YOUR name) []: www.example.com Email Address []: admin@example.com
接下來,系統可能會提示你輸入額外的屬性:
Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []:
- 如果你不需要挑戰密碼,直接按
Enter
鍵留空該字段。 - 如果你希望設置一個挑戰密碼,輸入一個安全的密碼,例如
MySecurePassword123!
。
- 如果你不需要挑戰密碼,直接按
注意事項
- 挑戰密碼的用途:挑戰密碼通常用于在某些情況下驗證證書請求的所有權。如果你不需要這個功能,可以留空該字段。
- 安全性:如果你選擇設置挑戰密碼,請確保它是一個強密碼,并妥善保管。
- 配置文件:如果你使用的是自定義的
openssl.cnf
配置文件,確保它正確配置了 CSR 的生成過程。
使用OpenSSL生成寶塔可用的SSL證書和密鑰
要在寶塔面板上使用OpenSSL生成的SSL證書,你需要生成一個私鑰和對應的證書簽名請求(CSR),然后自簽名或通過CA簽名生成證書。
生成私鑰和證書的步驟
-
生成私鑰(如果還沒有):
openssl genrsa -out private.key 2048
-
生成證書簽名請求(CSR):
openssl req -new -key private.key -out csr.csr -config openssl.cnf
執行此命令時,你需要填寫一些組織信息。
-
生成自簽名證書(適用于測試環境):
openssl x509 -req -days 365 -in csr.csr -signkey private.key -out certificate.crt
-
生成PEM格式文件(寶塔需要):
PEM格式通常是將證書和私鑰合并在一起。你可以創建一個包含兩者的文件:cat certificate.crt private.key > certificate.pem
寶塔面板使用說明
在寶塔面板中:
- 進入網站設置
- 找到SSL選項卡
- 選擇"其他證書"
- 分別粘貼:
- 證書內容(.crt文件內容)到"證書(PEM格式)"文本框
- 私鑰內容(.key文件內容)到"密鑰(KEY格式)"文本框
- 保存并啟用SSL
注意事項
- 對于生產環境,建議使用Let’s Encrypt等免費CA頒發的證書,寶塔面板內置了自動獲取功能
- 自簽名證書瀏覽器會顯示不安全警告
- 確保私鑰文件安全,不要泄露
如果你需要為特定域名生成證書,可以在openssl.cnf中配置或在使用req命令時通過-subj參數指定。