Эта статья дала мне представление, как решить проблему.Asp.net проверяет, соответствует ли имя сертификата сервера «CN = ...» доменному имени сервера.
Так что, если сертификат внешнего сервера не соответствует этому правилу, запрос https от приложения asp.net будетне доверяю связи.Поэтому, если у вас нет возможности изменить конфигурацию внешнего сервера (стороннего производителя), вам необходимо отключить проверку.
Его можно отключить, передав пользовательский делегат статическому классу ServicePointManager asp.net (главным образом).
Я поместил этот бит в статический конструктор моего класса коннектора https: (однако эта проверка будет отключена для любого соединения https во всем приложении)
public class MyExternalSslServiceConnector : IMyExternalServiceConnector
{
protected string ServiceUrl { get; set; }
public X509Certificate2 SslCertificate { get; set; }
static MyExternalSslServiceConnector()
{
ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
}
public MyExternalSslServiceConnector(string myExternalServiceUrl, X509Certificate2 sslCertificate)
{
this.ServiceUrl = myExternalServiceUrl;
this.SslCertificate = sslCertificate;
}
// further implementation using HttpRequest class [...]
}
С уважением,C.