Поскольку ответ Helephant является наилучшим, если вам нужны хэши сертификатов (т. Е. Несколько IP-адресов на одном компьютере с различными сертификатами SSL), вам необходимо знать, как получить сертификаты / хэши. В нескольких строках ниже показано, как найти информацию, , поскольку документация MSDN настолько плоха для этого предмета.
Невозможно удаленно обновить привязку SSL с помощью ServerManager.OpenRemote () - возможно, с этим связана ошибка. Appcmd вам тоже не поможет.
Если вы хотите преобразовать байтовую строку обратно в байтовый массив (если вы знаете хеш), вот как.
static void Main(string[] args)
{
var store2 = new X509Store(StoreName.TrustedPublisher, StoreLocation.LocalMachine);
Console.WriteLine("TrustedPublisher:");
PrintCerts(store2);
Console.WriteLine();
Console.WriteLine("MY:");
store2 = new X509Store(StoreName.My, StoreLocation.LocalMachine);
PrintCerts(store2);
Console.WriteLine();
Console.WriteLine("CertificateAuthority:");
store2 = new X509Store(StoreName.CertificateAuthority, StoreLocation.LocalMachine);
PrintCerts(store2);
Console.WriteLine();
}
static string PrintHash(byte[] cert)
{
StringBuilder builder = new StringBuilder();
foreach (byte b in cert)
{
builder.AppendFormat("{0:x2}", b);
}
return builder.ToString();
}
static void PrintCerts(X509Store store)
{
store.Open(OpenFlags.OpenExistingOnly);
foreach (var cert in store.Certificates)
{
Console.Write("{0} - {1}", cert.FriendlyName, PrintHash(cert.GetCertHash()));
Console.WriteLine();
}
}
Пример вывода:
MY:
www.awesomesite.com - cc2b5fc8216a949b58aadc21089c12b2c090f6bd