У меня есть сертификат (.pem-файл), который распространяется другим поставщиком услуг. Я загрузил сертификат у поставщика и сохранил его на локальном диске. В моем клиенте WCF я пытаюсь загрузить этот сертификат с локального диска, и он дает мне сообщение об ошибке «Закрытый ключ отсутствует в сертификате X.509» при общении с службой. Мне сказали, что мне нужно загрузить этот сертификат в локальное хранилище сертификатов, чтобы устранить эту ошибку. Может ли кто-нибудь указать некоторые направления? Благодаря!Как загрузить другой сертификат в мой локальный магазин сертификатов?
У меня есть функция ниже, чтобы загрузить сертификат из пути, указанного в параметре файла.
public static X509Certificate LoadCertificate(string file)
{
try
{
return X509Certificate.CreateFromCertFile(file);
}
catch (System.Security.Cryptography.CryptographicException)
{
string filestr = File.ReadAllText(file);
StringBuilder sb = new StringBuilder(filestr.Remove(0, filestr.IndexOf("-----BEGIN CERTIFICATE-----")));
sb.Replace("-----BEGIN CERTIFICATE-----", "");
sb.Replace("-----END CERTIFICATE-----", "");
//Decode
try
{ //see if the file is a valid Base64 encoded cert
byte[] certBytes = Convert.FromBase64String(sb.ToString());
return new X509Certificate(certBytes);
}
catch (System.FormatException)
{
throw;
}
}
}
В моем клиенте WCF выполняется загрузка сертификата, созданного из функции LoadCertificate().
public X509Certificate Certificate { get; set; }
ClientCredentials loginCredentials = new ClientCredentials();
loginCredentials.UserName.UserName = this.UserId;
loginCredentials.UserName.Password = this.Password;
loginCredentials.ClientCertificate.Certificate = new X509Certificate2(this.Certificate);
просто щелкните его правой кнопкой мыши и выберите «установить» ... – Yahia
Можете ли вы поделиться каким-то кодом? Если нет, решение @ Yahia может быть вашим единственным шансом. –
Я не нашел вариант «установить» правой кнопкой мыши. Кроме того, инструкции от поставщика «Этот сертификат должен быть сохранен как файл на вашем веб-сервере с расширением .pem». Я не знаю, означает ли это, что сертификат необходимо установить или просто нужно сохранить. – Jyina