Durante o handshake do TLS1.2, obtenho do servidor uma lista de certificados confiáveis. Eu suponho, estes devem ser os emissores que o servidor confia. O OpenSSL os chama Acceptable client certificate CA names
, então esses são emissores de certificados !? No entanto, o nome do meu certificado cliente está lá, mas não o nome do emissor do certificado do cliente. (Para o OpenSSL, isso parece estar bem.)
Isso é um erro na implementação do servidor?
Existe uma maneira de usar o schannel (por exemplo, via cURL no Windows, mas também o .NET) para continuar fornecendo meu certificado? Pelo que entendi, o schannel percebe que o emissor do meu certificado não está listado lá, então ele não usa esse certificado. Por isso, o aperto de mão falha. Pode-se forçar um schannel a usar um certificado específico, mesmo que o emissor não esteja listado?
edit 1. Para esclarecer, eu só quero falar com o servidor, que não está sob meu controle. A implementação do meu cliente deve ser baseada em C # / .Net e idealmente schannel, assim, estou testando até agora com cURL (schannel); Infelizmente, o servidor deve ser considerado como uma constante (desconhecida).
Obrigado!
Tags ssl tls openssl curl certificate