Você está visualizando a documentação da versão de desenvolvimento, que pode estar incompleta.
Esta página foi traduzida automaticamente. Se você notar um erro, selecione-o e pressione Ctrl+Enter para reportá-lo aos editores.

2 Problemas de certificado

OpenSSL usado com CRLs e para alguma CA na cadeia de certificados sua CRL não está incluída em TLSCRLFile

No log do servidor TLS no caso de peer OpenSSL:

failed to accept an incoming connection: from 127.0.0.1: TLS handshake with 127.0.0.1 returned error code 1: \
           file s3_srvr.c line 3251: error:14089086: SSL routines:ssl3_get_client_certificate:certificate verify failed: \
           TLS write fatal alert "unknown CA"

No log do servidor TLS no caso de peer GnuTLS:

failed to accept an incoming connection: from 127.0.0.1: TLS handshake with 127.0.0.1 returned error code 1: \
           file rsa_pk1.c line 103: error:0407006A: rsa routines:RSA_padding_check_PKCS1_type_1:\
           block type is not 01 file rsa_eay.c line 705: error:04067072: rsa routines:RSA_EAY_PUBLIC_DECRYPT:paddin

CRL expirada ou expira durante a operação do server

OpenSSL, no log do server:

  • antes da expiração:
cannot connect to proxy "proxy-openssl-1.0.1e": TCP successful, cannot establish TLS to [[127.0.0.1]:20004]:\
           SSL_connect() returned SSL_ERROR_SSL: file s3_clnt.c line 1253: error:14090086:\
           SSL routines:ssl3_get_server_certificate:certificate verify failed:\
           TLS write fatal alert "certificate revoked"
  • após a expiração:
cannot connect to proxy "proxy-openssl-1.0.1e": TCP successful, cannot establish TLS to [[127.0.0.1]:20004]:\
           SSL_connect() returned SSL_ERROR_SSL: file s3_clnt.c line 1253: error:14090086:\
           SSL routines:ssl3_get_server_certificate:certificate verify failed:\
           TLS write fatal alert "certificate expired"

O ponto aqui é que com uma CRL válida, um certificado revogado é relatado como "certificate revoked". Quando a CRL expira, a mensagem de erro muda para "certificate expired", o que é bastante enganoso.

GnuTLS, no log do server:

  • antes e depois da expiração, o mesmo:
cannot connect to proxy "proxy-openssl-1.0.1e": TCP successful, cannot establish TLS to [[127.0.0.1]:20004]:\
             invalid peer certificate: The certificate is NOT trusted. The certificate chain is revoked.

Certificado autoassinado, CA desconhecida

OpenSSL, no log:

error:'self signed certificate: SSL_connect() set result code to SSL_ERROR_SSL: file ../ssl/statem/statem_clnt.c\
             line 1924: error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed:\
             TLS write fatal alert "unknown CA"'

Isso foi observado quando o certificado do server, por engano, tinha o mesmo Issuer e Subject, embora tenha sido assinado por uma CA. Issuer e Subject são iguais no certificado da CA de nível superior, mas não podem ser iguais no certificado do server. (O mesmo se aplica aos certificados do proxy e do agent.)

Para verificar se um certificado contém as mesmas entradas de Issuer e Subject, execute:

openssl x509 -in <seucertificado.crt> -noout -text

É aceitável que o certificado raiz (de nível superior) tenha valores idênticos para Issuer e Subject.