Я разработал службу веб-API, которая отправляет запрос от другого веб-API, для которого требуется личный сертификат.
Когда я разрабатывал эту службу на своем локальном ПК, я просто использовал HttpClient следующим образом:
_handler = new HttpClientHandler()
{ ClientCertificateOptions = ClientCertificateOption.Automatic };
_client = new HttpClient(_handler);
И мой персональный сертификат был взят с моего ПК.
Затем я захотел опубликовать свой проект в IIS 8 на Windows Server 2012 R2.
Сначала я установил все сертификаты на сервере и настроил пул приложений в IIS, IIS запускается пользователем службы, но мое приложение API использует пул моей учетной записи (сертификат привязан к нему).Но когда я пытаюсь сделать запрос, я получаю следующее исключение:
<InnerException>
<Message>An error has occurred.</Message>
<ExceptionMessage>An error occurred while sending the request.</ExceptionMessage>
<ExceptionType>System.Net.Http.HttpRequestException</ExceptionType>
<StackTrace/>
<InnerException>
<Message>An error has occurred.</Message>
<ExceptionMessage>
The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.
</ExceptionMessage>
<ExceptionType>System.Net.WebException</ExceptionType>
<StackTrace>
at System.Net.HttpWebRequest.EndGetRequestStream(IAsyncResult asyncResult, TransportContext& context) at System.Net.Http.HttpClientHandler.GetRequestStreamCallback(IAsyncResult ar)
</StackTrace>
<InnerException>
<Message>An error has occurred.</Message>
<ExceptionMessage>
The remote certificate is invalid according to the validation procedure.
</ExceptionMessage>
<ExceptionType>
System.Security.Authentication.AuthenticationException
</ExceptionType>
<StackTrace>
at System.Net.TlsStream.EndWrite(IAsyncResult asyncResult) at System.Net.ConnectStream.WriteHeadersCallback(IAsyncResult ar)
</StackTrace>
</InnerException>
</InnerException>
</InnerException>
Я думаю, что моя проблема в том, что IIS не может использовать сертификаты, которые я установил на Windows Server.
Как я могу решить эту проблему?