HttpRequest с ssl: сертификат не распознается при запуске под IIS - PullRequest
0 голосов
/ 18 марта 2011

Мы запускаем приложение службы мыла (wse 3, но также соответствует WCF). Помимо того, что это сама служба, приложение также получает информацию от третьей стороны, используя экземпляр HttpRequest с ssl. При запуске этого экземпляра HttpRequest с модульным тестом сторонняя служба распознает данный сертификат и работает просто отлично. Однако когда наше приложение службы мыла работает в IIS, третье лицо больше не распознает сертификат.

Что отличается, когда HttpClient запускается под IIS? Изменяет ли это запросы, которые я отправляю с помощью HttpRequest? Как я могу установить это прямо (конфигурация?)?

Ответы [ 2 ]

1 голос
/ 18 марта 2011

Эта статья дала мне представление, как решить проблему.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.

0 голосов
/ 18 марта 2011

Кажется, что у вас недостаточно прав для использования сертификата в IIS, вы можете использовать инструмент настройки сертификата служб Microsoft Windows HTTP (WinHttpCertCfg.exe), чтобы установить сертификат клиента и предоставить доступ к сертификату клиента для дополнительных целей. учетные записи пользователей, такие как учетная запись сетевой службы.

Чтобы узнать больше об этом, перейдите к этой статье MSDN .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...