Как создать сертификат подписи кода с CertificateRequest.CreateSelfSigned? - PullRequest
0 голосов
/ 21 декабря 2018

Я пытаюсь создать самозаверяющий сертификат для подписи кода и переместить его в доверенное хранилище.Все отлично работает (с помощью https://stackoverflow.com/a/52535184/10819755), за исключением того, что мне нужен сертификат подписи кода вместо "нормального" сертификата. Есть ли способ изменить способ создания сертификата или способ преобразования сертификата всертификат подписи кода?

Спасибо за помощь.

Код:

string certlocation = Environment.ExpandEnvironmentVariables("%appdata%\\x\\");
X509Store store = new X509Store(StoreName.Root, StoreLocation.CurrentUser);
var ecdsa = ECDsa.Create(); // generate asymmetric key pair
var req = new CertificateRequest("cn=" + certname, ecdsa, HashAlgorithmName.SHA256);

var cert = req.CreateSelfSigned(DateTimeOffset.Now, DateTimeOffset.Now.AddYears(5));

// Create PFX (PKCS #12) with private key
File.WriteAllBytes(certlocation + certname + ".pfx", cert.Export(X509ContentType.Pfx));

// Create Base 64 encoded CER (public key only)
File.WriteAllText(certlocation + certname + ".cer",
    "-----BEGIN CERTIFICATE-----\r\n"
    + Convert.ToBase64String(cert.Export(X509ContentType.Cert), Base64FormattingOptions.InsertLineBreaks)
    + "\r\n-----END CERTIFICATE-----");
string cerFileName = certlocation + certname + ".pfx";
X509Certificate2 certificate = new X509Certificate2(cerFileName);
store.Open(OpenFlags.ReadWrite);
store.Add(certificate);
store.Close();
...