簡體   English   中英

獲取 PEM 公鑰和私鑰或從 PFX 文件

[英]Get PEM public and private keys or from PFX file

我有一個使用以下命令使用openssl生成的 PEM 文件:

.\openssl.exe  pkcs12 -in "C:\temp\mytest.pfx" -nokeys -out "C:\temp\mytest.publicchain.pem"

這會生成一個包含以下內容的 PEM 文件:

-----BEGIN CERTIFICATE-----
MIIJbTCCByGgAwIBAgITfgAAADLWmZPQJCEhKgAAAAAAMjBBBgkqhkiG9w0BAQow
NKAPMA0GCWCGSAFlAwQCAwUAoRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQCAwUA
... [removed rest of key for obvious reasons]
-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----
MIIHFzCCBP+gAwIBAgITHgAAAAR0/hITgHTMqgAAAAAABDANBgkqhkiG9w0BAQ0F
ADAcMRowGAYDVQQDExFFbmVjby1TQkRULVJvb3RDQTAeFw0xOTA4MjcyMjMwMjFa
... [removed rest of key for obvious reasons]
-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----
MIIFsDCCA5igAwIBAgIQM4wn3z5DLaxG8ARk2MpMJTANBgkqhkiG9w0BAQ0FADAc
MRowGAYDVQQDExFFbmVjby1TQkRULVJvb3RDQTAeFw0xODA5MTcwNzIyNDhaFw0y
... [removed rest of key for obvious reasons]
-----END CERTIFICATE-----

我也在使用AxualFramework的 AxualFramework,我需要為它提供 PEM 公鑰和私鑰。 他們的描述是:

用於身份驗證的客戶端公鑰字符串(PEM 格式)。

用於身份驗證的客戶端私鑰字符串(PEM 格式)。

現在我的問題是,如何從我的 PEM 文件或 PFX 文件中提取它? 哪個更容易做?

我還安裝了 BouncyCastle 作為 Nuget package,但我不確定使用什么方法。

我還嘗試使用以下內容從 PFX 文件中獲取它:

X509Certificate2 cert = certificateCollection[0];
var pubKey = cert.PublicKey.Key.ExportSubjectPublicKeyInfo();
var pubKeyString = Convert.ToBase64String(pubKey); // Is this even correct?

// how to get private key...?

但我真的不知道這是否是這樣做的方式......

任何人都可以指導我正確的方向嗎?

由於您已經在使用 OpenSSL,您可以使用其命令行工具在不同格式之間進行轉換。 在您的情況下,您已經運行的 pkcs12 命令導出了沒有密鑰的證書,因此您將無法使用mytest.publicchain.pem來提取私鑰。

相反,您可以從 PFX 導出私鑰 RSA 密鑰,然后從私鑰中提取公鑰:

openssl pkcs12 -in mytest.pfx -nocerts -nodes -out mytest.key
openssl rsa -in mytest.key -pubout -out mytest.pub

文件mytest.keymytest.pub分別是 PEM 格式的私鑰和公鑰。

暫無
暫無

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

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