собственный сервис WCF + проверка подлинности клиентского сертификата - PullRequest
0 голосов
/ 20 февраля 2012

Я пытаюсь внедрить самостоятельно размещенную WCF-службу, которая должна использовать аутентификацию клиента по сертификату. К сожалению, аутентификация не удалась. Файл журнала говорит, что клиент не предоставляет сертификат. Если попытаться связаться с сервисом через firefox, он скажет: «Ошибка 403 - запрещено».

Следующий код показывает конфигурацию через файл app-config.

  <serviceBehaviors>
    <behavior name="sslbehaviour">
      <serviceMetadata httpsGetEnabled="true" /> 
      <serviceDebug includeExceptionDetailInFaults="true"/>
      <serviceCredentials>
        <clientCertificate>
          <authentication certificateValidationMode="ChainTrust" trustedStoreLocation="CurrentUser"/>
        </clientCertificate>
        <serviceCertificate findValue="cert-thumb-print" x509FindType="FindByThumbprint" storeLocation="CurrentUser" storeName="My"/>
      </serviceCredentials>            
    </behavior>
  </serviceBehaviors>

endpoint address="https://localhost:443/service" binding="wsHttpBinding"
      bindingConfiguration="BindingForResultPost" contract="MobD.IEndpointService" />

Сообщение об ошибке System.ServiceModel.Channels.HttpsClientCertificateNotPresent.aspx

Полагаю, я правильно создал и установил свои сертификаты.

Буду очень признателен за каждый намек ...

С уважением, Michael

Ответы [ 3 ]

0 голосов
/ 20 февраля 2012

Пожалуйста, обратитесь к нижеприведенным инструкциям по установке клиентских сертификатов:

Вам необходимо иметь сертификат клиента следующим образом:

На клиентском компьютере:

Текущий пользователь -> Личная папка должна иметь установленный клиентский сертификат MyClientCert.pfx

На серверных компьютерах:

Локальный компьютер -> На TrustPeople должен быть установлен MyClientCert.cer

Makeубедитесь, что настройка правильная.Я вижу, что у вас есть сертификат клиента в TrustedPeople текущего пользователя.Надеюсь, теперь все ясно при установке сертификатов

Пожалуйста, обратитесь к этой LINK , которая объясняет немного об установке клиентского сертификата и как сказать браузеру выбрать один из сертификатов.the store:

ПРИМЕЧАНИЕ. Когда использовать файлы .pfx и .cer

0 голосов
/ 22 февраля 2012

Вы должны назначить права на порт в Windows, когда вы самостоятельно размещаете службы WCF.

См. Эту статью на MSDN: Как: настроить порт с сертификатом SSL

Вы также можете использовать OpenSSL для проверки состояния порта.

0 голосов
/ 20 февраля 2012

Вы говорите, что когда вы пытаетесь связаться с ним через Firefox, вы получаете 403. Установил ли Firefox сертификат клиента?

Что такое подкод Http?Я предполагаю, что вы получаете 403.7 (что означает, что сертификат клиента не установлен или не представлен браузером), 403.16 (сертификат клиента не заслуживает доверия), 403.17 (сертификат клиента истек) или, возможно, 403.13 (сертификат клиента отозван).

Одна проблема, с которой я столкнулся - на серверах, которые не имеют исходящего веб-доступа, - вы получаете один из указанных выше 403 кодов (не могу вспомнить, какой), поскольку сервер не может получить список отзыва сертификатов.- и поэтому он отклоняет все сертификаты.Эту проверку можно отключить, но, очевидно, есть соображения безопасности, о которых следует помнить.

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