簡體   English   中英

如何獲取 .cer 或 .crt 格式的公鑰

[英]How to get public key in .cer or .crt formats

我使用 OpenSSL 創建了自簽名 SSL 證書,如下所示:

openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365

這給了我.pem文件中的證書和私鑰。 我需要以.cer.crt格式向我的客戶提供我的公鑰。 有沒有辦法獲得.cer / .crt格式的公鑰?

我已經嘗試過的:

1. 生成.pem格式的公鑰並嘗試將其轉換為.cer.crt [無效]

.pem文件中提取公鑰[工作正常]:

`openssl x509 -pubkey -noout -in signer-cert.pem  > signer-public-key-test.pem`

要將其從.pem轉換為.cer格式openssl x509 -inform PEM -in signer-public-key-test.pem -outform DER -out signer-public-key-test.cer我收到此錯誤:

unable to load certificate
140067363030680:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:701:Expecting: TRUSTED CERTIFICATE

2. 將我的證書轉換為 .cer(我做得很好)並嘗試使用 Windows 證書導出向導導出公鑰,如此處給出的說明

它也沒有用。 當在記事本++中打開時,我無法啟用導出密鑰和最終輸出的選項是垃圾。

所以我的問題是,有沒有辦法從頭開始生成證書並在.cer.crt文件中擁有公鑰。 或以.pem格式生成證書,然后將公鑰提取到.crt.cer

任何幫助都深表感謝。

由於.cer.crt通常表示“DER 或 PEM-DER X.509 證書”,因此我不知道您所說的具有該格式的公鑰是什么意思。

如果您的意思是您想要一個代表公鑰的 DER 編碼的 SubjectPublicKeyInfo,那么管道的第二階段將是

openssl asn1parse -noout -out some.file

您可以使用刪除中間體

openssl x509 -in signer-cert.pem -noout -pubkey | 
    openssl asn1parse -noout -out signer-public-key-test.der

(添加換行符以刪除滾動條)

或者,完全跳過證書中間人:

openssl rsa -in key.pem -pubout -outform der -out signer-public-key-test.der

不過,您想要那種特定的格式似乎很奇怪。

暫無
暫無

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

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