
Eu tenho um servidor https que requer mTLS (autenticação de certificado de cliente). Quando tento acessar o servidor usando o Chrome (versão 75.0.3770.100 (versão oficial) (64 bits)) no Windows 10, ele me pede para selecionar o certificado do cliente (o que eu faço). Depois disso, o cromo retorna com ERR_NOT_IMPLEMENTED.
Informações adicionais:
- Posso acessar o servidor usando a mesma URL do IE11, Edge e Firefox
- Confiança nos certificados do servidor O certificado CA foi estabelecido (importou a CA para o armazenamento de Autoridades de Certificação Raiz Confiáveis). A conexão está marcada como segura no IE.
- Log de rede do Chrome capturado. Eu poderia encontrar os problemas aqui:
t=3200 [st=10] SSL_HANDSHAKE_MESSAGE_RECEIVED
--> bytes =
0E 00 00 00 .
--> type = 14
t=3200 [st=10] SSL_CLIENT_CERT_REQUESTED
t=3201 [st=11] SSL_HANDSHAKE_ERROR
--> error_lib = 16
--> error_reason = 228
--> file = "../../third_party/boringssl/src/ssl/ssl_cert.cc"
--> line = 242
--> net_error = -11 (ERR_NOT_IMPLEMENTED)
--> ssl_error = 1
t=3201 [st=11] -SSL_CONNECT
--> net_error = -11 (ERR_NOT_IMPLEMENTED)
t=3201 [st=11] SOCKET_CLOSED
Eu olhei o código fonte do ssl_cert.cc:242
BoringSSL emhttps://github.com/google/boringssl/blob/d6f9c359d219055a89c676cb8886421b145a08da/ssl/ssl_cert.cc#L242.
O código relevante aqui parece ser:
bool ssl_is_key_type_supported(int key_type) {
return key_type == EVP_PKEY_RSA || key_type == EVP_PKEY_EC ||
key_type == EVP_PKEY_ED25519;
}
Ou em outras palavras. Se for um certificado RSA, a função deverá retornar verdadeiro e não deverá levar ao erro descrito acima.
Alguma ideia do que está errado aqui.
Obrigado.