Получить Cer из X509Certificate2
Доброго времени суток.
API (такском) для авторизации просит файл .Cer, тот самый файл который можно экспортировать через свойства обозревателя или через оснастку Сертификаты Крипто ПРО.
certificateData = GetCertificateBody(this.CertFile.Text);
var request = CreatePostRequest(string.Format("{0}API/CertificateLogin", url), null, vendorid);
request.ContentType = "application/pkcs7-mime";
request.ContentLength = certificateData.Length;
Ну и так далее...
Все прекрасно работает, но нужен сам файл сертификата. Хочу брать сертификат из хранилища. Получаю объект X509Certificate2, но никак не могу понять как из него взять то что лежит в файле .Cer.
private static byte[] GetCertificateBody(string fileName)
{
byte[] certificateData;
using (var certificateStream = File.OpenRead(fileName))
using (var ms = new MemoryStream())
{
certificateStream.CopyTo(ms);
ms.Position = 0;
certificateData = ms.ToArray();
}
return certificateData;
}
Ответы (1 шт):
Автор решения: Виталий
Где Cert это объект X509Certificate2
→ Ссылка
В общем все оказалось слишком просто. certificateData =cert.RawData; Соответственно чтобы получить файл cer достаточно сделать
Convert.ToBase64String( cert.RawData, Base64FormattingOptions.InsertLineBreaks);