C# 具有不同私钥的CSR数字签名
我们正在使用C#和bouncy castle.net库来实现一个特性。假设我们作为一个网站为最终客户生成CSR,那么最终客户将把我们生成的CSR带到我们的业务合作伙伴网站获取证书 以前它工作得非常好。注意keyPair.Public和keyPair.Private来自同一个RSA密钥对。生成的CSR可以在这里进行验证,没有任何问题 然而,我们的业务合作伙伴网站_B希望验证最终客户提交/上传的任何CSR不仅是有效的CSR,而且确实是由我们生成的(网站_A)。因此,我们创建了一对新的RSA密钥,并将新的公钥传递给网站_B,并使用新的私钥签署任何新的CSR。因此,我们的代码更新如下。请注意,keyPair.Public和newKeyPair.Privae来自不同的RSA密钥对。代码仍然可以生成CSR,但在验证时失败,例如。尽管我们的业务合作伙伴网站仍然可以使用newKeyPair解析/解码新的CSR格式,但这已经够奇怪了。如果跳过CSR验证步骤,我们将传递给他们C# 具有不同私钥的CSR数字签名,c#,digital-signature,bouncycastle,csr,C#,Digital Signature,Bouncycastle,Csr,我们正在使用C#和bouncy castle.net库来实现一个特性。假设我们作为一个网站为最终客户生成CSR,那么最终客户将把我们生成的CSR带到我们的业务合作伙伴网站获取证书 以前它工作得非常好。注意keyPair.Public和keyPair.Private来自同一个RSA密钥对。生成的CSR可以在这里进行验证,没有任何问题 然而,我们的业务合作伙伴网站_B希望验证最终客户提交/上传的任何CSR不仅是有效的CSR,而且确实是由我们生成的(网站_A)。因此,我们创建了一对新的RSA密钥,并将
Pkcs10CertificationRequest request = new Pkcs10CertificationRequest(
"SHA256withRSA",
new X509Name(subject),
keyPair.Public,
null,
newKeyPair.Private);
因此,我的问题是:
Pkcs10CertificationRequest request = new Pkcs10CertificationRequest(
"SHA256withRSA",
new X509Name(subject),
keyPair.Public,
null,
newKeyPair.Private);