2011-12-19 3 views
0

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

В эти дни я работаю в службе WCF. Клиент хочет, чтобы мы сделали службу WCF с сертификатом SSL.

Что я хочу знать, что есть необходимость в уровне кода для сертификата SSL. Я собираюсь принять участие в IIS.

Каковы шаги по настройке службы WCF с сертификатом SSL?

Я знаю мало знаний всегда опасно :(

Просьба уточнить

Спасибо заранее

+0

Вы хотите просто защитить канал или выполнить аутентификацию клиента с помощью SSL? – Rajesh

+0

ya и безопасный канал с аутентификацией клиента с использованием SSL .. –

+0

Если вы хотите, чтобы аутентификация клиента через SSL была для одного клиента или существует ли возможность доступа различных клиентов к этой службе? – Rajesh

ответ

0

Для того, чтобы настроить службу на 2 пути SSL ниже шаги:..

  1. Создайте веб-сайт с привязкой к нему https.
  2. Когда отображается привязка https на веб-сайт он запрашивает сертификат SSL сервера, который он будет использовать для защиты вашего транспортного канала.
  3. Создайте виртуальный каталог, в котором вы хотите, чтобы ваши службы были развернуты.
  4. Теперь для построения служб WCF необходимо иметь конфигурацию, которая указывает, что служба использует https, а клиенты аутентифицируются с использованием сертификатов.
  5. Установите параметр «Принять» в своих настройках SSL вашего виртуального каталога, в котором указано, что клиент может передать сертификат. ЕСЛИ вы установили его, чтобы потребовать, то клиенту требуется для передачи сертификата.

ПРИМЕЧАНИЕ. При использовании сертификата необходимо убедиться в том, какой сертификат необходимо установить в хранилище сертификатов. Вы можете иметь некоторые исключения с самостоятельно подписанными сертификатами, но они могут быть обойдены на клиенте, используя код ниже:

ServicePointManager.ServerCertificateValidationCallback = (sender, cert, chain, error) => true; 

Часть кода о том, как реализовать свой собственный сертификат валидатор и использовать его:

public class CustomX509CertificateValidator : System.IdentityModel.Selectors.X509CertificateValidator 
    { 
     // This Validation function accepts any X.509 Certificate that is self-issued. As anyone can construct such 
     // a certificate this custom validator is less secure than the default behavior provided by the 
     // ChainTrust X509CertificateValidationMode. The security implications of this should be carefully 
     // considered before using this validation logic in production code. 
     public override void Validate(X509Certificate2 certificate) 
     { 
      // Check that we have been passed a certificate 
      if (certificate == null) 
       throw new ArgumentNullException("certificate"); 

      // Only accept self-issued certificates 
      if (certificate.Subject != certificate.Issuer) 
       throw new SecurityTokenException("Certificate is not self-issued"); 
     } 
    } 

Теперь в вашем конфигурационном файле службы WCF используется пользовательский сертификат проверки подлинности:

<behaviors> 
     <serviceBehaviors> 
     <behavior name="CalculatorServiceBehavior"> 
      <serviceDebug includeExceptionDetailInFaults="true"/> 
      <serviceCredentials> 
      <!-- 
      The serviceCredentials behavior allows one to specify authentication constraints on client certificates. 
      --> 
      <clientCertificate> 
       <!-- 
       Setting the certificateValidationMode to Custom means that if the custom X509CertificateValidator 
       does NOT throw an exception, then the provided certificate will be trusted without performing any 
       validation beyond that performed by the custom validator. The security implications of this 
       setting should be carefully considered before using Custom in production code. 
       --> 
       <authentication certificateValidationMode="Custom" customCertificateValidatorType="X509CertificateValidator.CustomX509CertificateValidator, service"/> 
      </clientCertificate> 
      <!-- 
      The serviceCredentials behavior allows one to define a service certificate. 
      A service certificate is used by a client to authenticate the service and provide message protection. 
      This configuration references the "localhost" certificate installed during the setup instructions. 
      --> 
      <serviceCertificate findValue="localhost" storeLocation="LocalMachine" storeName="My" x509FindType="FindBySubjectName"/> 
      </serviceCredentials> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 
+0

СПАСИБО ЗА РЕВЕРТ РАЙСТ.Я ДУМАЮ, ЧТО Я СМОТРЯЛ ЭТИ ВИДУ ФУНКЦИОНАЛЬНОСТИ ДЛЯ МОИ УСЛУГИ. БЛАГОДАРЯ –

Смежные вопросы