Как добавить расширение идентификатора центра сертификации Ket в мой сертификат?
Я использовал X509Extension по умолчанию:certificateRequest.CertificateExtensions.Add(new X509Extension(new Oid("2.5.29.35"), issuer.GetPublicKey(), false));
Но когда я его декодирую, это расширение сломано и имеет странный порядок случайных символов. В .NET 7 у меня есть класс X509AuthorityKeyIdentifierExtension, но мне нужно сделать то же самое в .NET Framework 4.8. Как я могу это сделать?
1 ответ
В устаревшей .NET Framework нет встроенного способа сделать это без использования сторонних библиотек.
Например, у меня есть собственная библиотека расширений PKI для .NET Framework, которая содержит классы для наиболее распространенных расширений сертификатов. Вот примерX509AuthorityKeyIdentifierExtension
класс: https://github.com/PKISolutions/pkix.net/blob/master/PKI/Cryptography/X509Certificates/X509AuthorityKeyIdentifierExtension.cs
И использование может быть:
var aki = new X509AuthorityKeyIdentifierExtension(issuer, AuthorityKeyIdentifierFlags.KeyIdentifier, false);
certificateRequest.CertificateExtensions.Add(aki);
ps Я автор библиотеки pkix.net.