Учитывая URL или имя сервера, как я могу использовать powershell или .net библиотеку, чтобы загрузить (просроченный) сертификат, используемый веб-сервером, а затем сохранить его в файл или импортировать в мое хранилище сертификатов?
Спасибо!
Я добился прогресса, дошел до этой проблемы:
static class Program
{
static void Main()
{
ServicePointManager.ServerCertificateValidationCallback = TrustAllCertificatesCallback;
var tcpclient = new TcpClient("remote.example.com", 443);
var tcpstream = tcpclient.GetStream();
var sslstream = new SslStream(tcpstream);
sslstream.AuthenticateAsClient("remote.example.com");
X509Certificate rc = sslstream.RemoteCertificate;
Console.WriteLine(rc.ToString());
Console.ReadLine();
}
public static bool TrustAllCertificatesCallback(
object sender, X509Certificate cert,
X509Chain chain, System.Net.Security.SslPolicyErrors errors)
{
return true;
}
}
Теперь, когда я запускаю эту программу, я получаю исключение AuthenticationException на AuthenticateAsClient
в строке и написано «Удаленный сертификат недействителен в соответствии с процедурой проверки».Я запустил его с точкой останова на return true;
, и он никогда не вызывал TrustAllCertificatesCallback
.Я думаю, что есть проблема с разрешением или конфигурацией сборки, кто-нибудь знает, как это исправить?