如何仅基于RSA格式的公钥生成x509证书?
本文关键字:x509 证书 公钥 何仅基 RSA 格式 | 更新日期: 2023-09-27 18:14:36
我有一个XML格式的RSA公钥。我需要用这个密钥创建一个x.509使用该公钥的证书。我没有访问私钥来完成密钥对的权限。我找到的所有示例都涉及生成密钥对或访问公钥和私钥。
下面是我一直在编写的测试例程的一小段代码。
RSACryptoServiceProvider provider = new RSACryptoServiceProvider();
provider.FromXmlString("<RSAKeyValue><Modulus>puEVvRbrLAz.......c1W5j/vqJSUrXo16k=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>");
Org.BouncyCastle.Crypto.Parameters.RsaKeyParameters key = Org.BouncyCastle.Security.DotNetUtilities.GetRsaPublicKey(provider);
//<!*** Do some code to take RsaKeyParameters and create an x.509 Certificate ***>
var fOut = new System.IO.StreamWriter(@"C:'certificate.pem", false);
var pw = new Org.BouncyCastle.OpenSsl.PemWriter(fOut);
pw.WriteObject(key);
只是为了澄清仅使用公钥生成证书是不可能的问题。
当然,证书必须被签名。并且必须使用私钥来完成—这就是为什么您需要一个私钥来生成证书。如果证书是用您将要为其颁发证书的打开密钥的配对私钥签名的,那么它就是一个自签名证书。否则,您需要一个所谓的证书颁发机构的私钥来进行签名。