URLからディスクにすべての証明書を保存します。したがって、たとえばC#Webサイトからすべてのhttps証明書をダウンロードする
このページをFirefoxで参照すると、3つの証明書が表示されます。
Firefoxですべてエクスポートしてディスクに保存できます。
だから私はC#でそれをしたいと思います。 、私はちょうど1つの証明書を取得されて、私は次のコードで証明書を取得し始め ...
/// <summary>
/// Get and write certificate from URL into file in path
/// </summary>
/// <param name="_URL">URL of website with certficate</param>
/// <param name="_path">Path where you want to store certificate</param>
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)
{
}
}
/// <summary>
/// Export a certificate to a PEM format string
/// </summary>
/// <param name="_cert">The certificate to export</param>
/// <returns>A PEM encoded string</returns>
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();
}
このコードの問題は、3をexept。 (私が取得した証明書は、firefoxのスクリーンショットのマーク付き証明書です)
私はここから解決策を試しましたSO Questionしかし、それは私のために働いていません。
私の質問は、どのようにURLからすべての証明書を取得できますか?