我有一个从 Web 服务收到的 X509 证书。获取证书时未使用证书请求 (PKCS10),而是使用了用户特定的传输密钥。在我的 C# 应用程序中,我从这样的文件中读取证书:
X509Certificate cert = new 509Certificate2(X509Certificate2.CreateFromCertFile(certificatePath));
证书的 PrivateKey 字段为空,但 PublicKey 不是(这正常吗?)
现在我想让这个证书使用我自己的密钥对。到目前为止,我已经尝试过:
openssl rsa -out keypair.pem 2048
<- 创建新的公钥/私钥对
openssl pkcs12 -export -out a.pfx -inkey keypair.pem -in cert.pem
<- 使用新的密钥对创建证书
第一个命令似乎工作正常,但第二个命令打印此消息:No certificate matches private key
. 这是解决这个问题的正确方法吗?我需要证书的私钥,因为需要私钥来签署 Web 服务中的其他请求。如何用我自己的私钥替换证书的密钥对?