Использование сертификата X.509 с именем пользователя clientCredentialType - PullRequest
0 голосов
/ 27 февраля 2012

Я создаю службу WCF, для которой требуются имя пользователя и пароль прокси-сервера, для этого мне необходимо предоставить сертификат службы, для которого я предоставил действительный сертификат нашей компании Verisign.

ПроблемаУ меня есть всякий раз, когда я использую следующую конфигурацию, я получаю сообщение об ошибке «Сертификат службы не предоставлен. Укажите сертификат службы в ServiceCredentials.»

<system.serviceModel>
<serviceHostingEnvironment multipleSiteBindingsEnabled="false" />
<behaviors>
  <serviceBehaviors>
    <behavior name="WSBehaviour">
      <serviceMetadata httpGetEnabled="true" />
      <serviceDebug includeExceptionDetailInFaults="true" />
      <serviceCredentials>
        <serviceCertificate findValue="devstage1.vcg-online.net" x509FindType="FindBySubjectName" storeLocation="LocalMachine" storeName="TrustedPublisher" />
        <userNameAuthentication userNamePasswordValidationMode="Custom" customUserNamePasswordValidatorType="Acre.IntegrationService.CustomValidator, Acre.IntegrationService" />
      </serviceCredentials>
    </behavior>
  </serviceBehaviors>
</behaviors>
<services>
  <service name="Acre.IntegrationService.IntegrationService" behaviorConfiguration="WSBehaviour">

    <endpoint address="http://localhost/Acre.IntegrationService/IntegrationService.svc"
              binding="wsHttpBinding"
              bindingConfiguration="WSBinding"
              contract="Acre.IntegrationService.IIntegrationService"
              name="WS" />

    <endpoint address="mex"
              binding="mexHttpBinding"
              contract="IMetadataExchange" />

  </service>
</services>
<bindings>
  <wsHttpBinding>
    <binding name="WSBinding" allowCookies="false">
      <security mode="Message">
        <message clientCredentialType="UserName" negotiateServiceCredential="true" />
      </security>
    </binding>
  </wsHttpBinding>
</bindings>

ОБНОВЛЕННЫЙ КОНФИГ.

Я установил сертификат в консоли, используя mmc.exe по следующим путям

Сертификаты (локальный компьютер) / Личные / Сертификаты / Сертификаты (локальный компьютер) / Доверенные корневые центры сертификации / Сертификаты / Сертификаты(Локальный компьютер) / Доверенные издатели / Сертификаты /

Я произвел поиск в сети и не могу найти четкое решение своей проблемы.Кто-нибудь может помочь?

1 Ответ

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

Мне удалось решить проблему, @Rajesh, вы были правы с clientCertificate, который должен быть serverCertificate, который исправил ошибку, не найдя сертификат, спасибо за это. Сертификат уже установлен на компьютере для пользователя компьютера.

Проблема с набором ключей заключалась в том, что для сертификата не было установлено правильное разрешение учетной записи. Я изменил разрешения, чтобы IIS_USRS имел доступ к сертификату, и теперь он исправлен

...