簡體   English   中英

生成base-64編碼的X509證書對(公共/私有)

[英]Generate base-64 encoded X509 certificate pair (public/private

我正在嘗試動態生成RSA X509公鑰/私鑰,下面是我用openssh命令行的方法:

openssl genrsa -out privatekey.pem 1024
openssl req -new -x509 -key privatekey.pem -out publickey.cer -days 1825
openssl pkcs12 -export -out public_privatekey.pfx -inkey privatekey.pem -in publickey.cer

另外如何添加密碼來加密私鑰?

我到目前為止才到這里

//Generate a public/private key pair.  
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();

//Save the public key information to an RSAParameters structure.  
RSAParameters rsaKeyInfo = rsa.ExportParameters(true);

我已經使用過這個類但它不會產生有效的SSL,當我將它提交給開發人員門戶時,它不會被接受為有效的公鑰:developer.xero.com/myapps

問候

請注意,我已將RSACryptoServiceProvider類替換為推薦的跨平台RSA基類,也是更好的RSA實現

這個問題讓我朝着正確的方向前進。

using (var rsa = RSA.Create(1024))
{
    var distinguishedName = new X500DistinguishedName($"CN=SelfSignedCertificate");
    var request = new CertificateRequest(distinguishedName, rsa, HashAlgorithmName.SHA256,RSASignaturePadding.Pkcs1);
    var certificate = request.CreateSelfSigned(DateTimeOffset.Now, DateTimeOffset.Now.AddDays(1825));

    // Create PFX (PKCS #12) with private key
    File.WriteAllBytes("privatekey.pfx", certificate.Export(X509ContentType.Pfx, "RGliXtaLkENste"));

    // Create Base 64 encoded CER (public key only)
    File.WriteAllText("publickey.cer",
        "-----BEGIN CERTIFICATE-----\r\n"
        + Convert.ToBase64String(certificate.Export(X509ContentType.Cert), Base64FormattingOptions.InsertLineBreaks)
        + "\r\n-----END CERTIFICATE-----");
}

我已在xero上測試了生成的.cer文件,因此它應該可以工作

暫無
暫無

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

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