Este artigo foi traduzido por máquina. Para visualizar o arquivo em inglês, marque a caixa de seleção Inglês. Você também pode exibir o texto Em inglês em uma janela pop-up, movendo o ponteiro do mouse sobre o texto.
Tradução
Inglês

Diferenças de validação de certificado entre segurança de SOAP, HTTPS, SSL através de TCP

.NET Framework (current version)
 

Você pode usar certificados no Windows Communication Foundation (WCF) com segurança de camada de mensagem (SOAP) além de segurança da camada de transporte (TLS) via HTTP (HTTPS) ou TCP. Este tópico descreve as diferenças no modo como esses certificados são validados.

Ao usar HTTPS para comunicação entre um cliente e um serviço, o certificado que o cliente usa para autenticar o serviço deve dar suporte a relação de confiança de cadeia. Ou seja, ele deve se liga uma autoridade de certificação raiz confiável. Se não, a camada HTTP gera um WebException com a mensagem "o servidor remoto retornou um erro: (403) proibido."WCF revelam essa exceção como um MessageSecurityException.

Ao usar HTTPS para comunicação entre um cliente e um serviço, o certificado que o servidor autentica com deve oferecer suporte a cadeia de confiança por padrão. Ou seja, ele deve se liga uma autoridade de certificação raiz confiável. Nenhuma verificação online é executada para ver se o certificado foi revogado. Você pode substituir esse comportamento Registrando um RemoteCertificateValidationCallback retorno de chamada, conforme mostrado no código a seguir.

ServicePointManager.ServerCertificateValidationCallback +=
    new RemoteCertificateValidationCallback(ValidateServerCertificate);

onde a assinatura para ValidateServerCertificate é o seguinte:

public static bool ValidateServerCertificate(
  object sender,
  X509Certificate certificate,
  X509Chain chain,
  SslPolicyErrors sslPolicyErrors)

Implementando ValidateServerCertificate pode executar verificações de que o desenvolvedor do aplicativo cliente considerar necessário para validar o certificado de serviço.

Quando usando Secure Sockets Layer (SSL) sobre TCP ou segurança de mensagem (SOAP), certificados de cliente são validados de acordo com o CertificateValidationMode valor da propriedade de X509ClientCertificateAuthentication classe. A propriedade é definida como um do X509CertificateValidationMode valores. Verificação de revogação é executada de acordo com os valores da RevocationMode valor da propriedade de X509ClientCertificateAuthentication classe. A propriedade é definida como um do X509RevocationMode valores.

myServiceHost.Credentials.ClientCertificate.Authentication.
    CertificateValidationMode=
    X509CertificateValidationMode.PeerOrChainTrust;       

myServiceHost.Credentials.ClientCertificate.Authentication.
    RevocationMode=X509RevocationMode.Offline; 

Ao usar SSL sobre segurança de mensagem TCP ou (SOAP), certificados de serviço são validados de acordo com o CertificateValidationMode valor da propriedade de X509ServiceCertificateAuthentication classe. A propriedade é definida como um do X509CertificateValidationMode valores.

Verificação de revogação é executada de acordo com os valores da RevocationMode valor da propriedade de X509ServiceCertificateAuthentication classe. A propriedade é definida como um do X509RevocationMode valores.

myClient.ClientCredentials.ServiceCertificate.
    Authentication.CertificateValidationMode=
    X509CertificateValidationMode.PeerOrChainTrust;
myClient.ClientCredentials.ServiceCertificate.Authentication.
    RevocationMode = X509RevocationMode.Offline;
Mostrar: