C# Загрузите все сертификаты https с веб-сайтаC#

Место общения программистов C#
Ответить
Anonymous
 C# Загрузите все сертификаты https с веб-сайта

Сообщение Anonymous »

Я хочу сохранить все сертификаты с URL-адреса на диск. Так, например, https://www.google.de

Если я просматриваю эту страницу с помощью Firefox, я вижу три сертификата.
Изображение


С помощью Firefox я могу экспортировать их все и сохранить на диск.

Итак, я хочу сделать это на C#.
Я начал получать сертификаты с помощью следующего кода.

Код: Выделить всё

    /// 
/// Get and write certificate from URL into file in path
/// 
/// 
URL of website with certficate
/// Path where you want to store certificate
private static void SaveCertificate(String _URL, String _path)
{
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(_URL);
request.AllowAutoRedirect = false;

HttpWebResponse response = (HttpWebResponse)request.GetResponse();
response.Close();

X509Certificate2 cert = new X509Certificate2(request.ServicePoint.Certificate);

File.WriteAllText(_path, ExportToPEM(cert));
}
catch (Exception)
{
}
}

/// 
/// Export a certificate to a PEM format string
/// 
/// The certificate to export
/// A PEM encoded string
public static string ExportToPEM(X509Certificate2 _cert)
{
StringBuilder builder = new StringBuilder();

try
{
builder.AppendLine("-----BEGIN CERTIFICATE-----");
builder.AppendLine(Convert.ToBase64String(_cert.Export(X509ContentType.Cert), Base64FormattingOptions.InsertLineBreaks));
builder.AppendLine("-----END CERTIFICATE-----");

}
catch (Exception)
{
}

return builder.ToString();
}
Проблема с этим кодом в том, что я получаю только один сертификат, кроме трех. (сертификат, который я получаю, отмечен на скриншоте из Firefox)

Я также попробовал решение отсюда SO Вопрос, но у меня это не сработало.

Мой вопрос: как я могу получить все сертификаты по URL-адресу?

Подробнее здесь: https://stackoverflow.com/questions/469 ... -a-website
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»