簡體   English   中英

使用現有私鑰創建 CSR

[英]Create CSR using existing private key

我想要做的是,創建一個 CSR 並使用受密碼保護的私鑰(密鑰)。

在 OpenSSL 中,我可以創建一個帶有密碼的私鑰,如下所示:

openssl genrsa -des3 -out privkey.pem 2048

有什么方法可以使用我剛剛創建的密鑰並使用該密鑰生成 CSR?

如果沒有,我可以通過某種方式生成 CSR 以及受密碼保護的私鑰嗎?

這是OpenSSL req 文檔中的第二個示例:

創建私鑰,然后從中生成證書請求:

 openssl genrsa -out key.pem 2048 openssl req -new -key key.pem -out req.pem

請注意,如果您直接使用req執行此操作(參見第三個示例),如果您不使用-nodes選項,您的私鑰也將被加密:

 openssl req -newkey rsa:2048 -keyout key.pem -out req.pem

(不管文檔怎么說,它與第二個示例並不完全相同,因為它不使用-des3 ,但無論如何你都會這樣做。)

受密碼保護的密鑰意味着私鑰已加密。 這里,“密鑰”是指私鑰。 使用密鑰時,例如創建證書簽名請求 (CSR) 時,如果密鑰已加密,則預計會提示輸入密碼。

現有的加密私鑰創建-key 密碼提示后,根據 openssl配置文件,可能會提示您指定未來證書的可分辨名稱 (DN)。 選項-new指的是 CSR:

    openssl req -key a.key -new -out a.csr

應該指出的是,從現有密鑰創建 CSR 並不常見。 密鑰創建簡單且成本低,更新的密鑰可能更安全。 所以創建 CSR 時通常的場景是創建一個新的私鑰。

openssl 版本 3.0 的更新(大約 2022 年)

genrsa 已被棄用; 替換為genpkey 此外,就安全性和性能而言,使用 AES128 加密優於 3DES。 要創建新的-aes-128-cbc加密密鑰::

    openssl genpkey -aes-128-cbc -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out a.key

然后,如上所述,使用它來創建一個新的 CSR。

或者在一個步驟中,創建一個新的 3DES 加密 RSA 密鑰 + CSR:

    openssl req -newkey rsa:2048 -keyout a.key -out a.csr

確認由上述命令創建的內容。 配置文件可能在命令中發揮了作用,因為並非所有選項都在命令行上使用。

    openssl rsa -in a.key -text -noout          # key bits & primes used, prompts if encrypted
    openssl asn1parse -in a.key -i -dlimit 16   # encryption cipher used
    openssl req -in a.csr -text -noout -verify  # subject, pub key & signature algorithms, V3 extensions

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM