Ao configurar stunnel
para exigir certificados de cliente, use:
verify = 2
Você está dizendo a stunnel
para eliminar / recusar qualquer cliente que não forneça um certificado de cliente válido. E essa mensagem de log indica que o cliente não forneceu um certificado de cliente e, portanto, foi rejeitado:
SSL3_GET_CLIENT_CERTIFICATE:no certificate returned
Isso nós sabemos. Agora, por por que isso acontece. Essa mensagem do lado do cliente é nossa dica:
[SSL: TLSV1_ALERT_UNKNOWN_CA] tlsv1 alert unknown ca
Um servidor TLS solicita que o cliente envie seu certificado de cliente enviando uma lista de CAs confiáveis; estes são os certificados de CA que estão no seu arquivo /certs/ca.pem
. O cliente, então, procura um certificado que venha de uma dessas ACs; se o cliente não tiver um certificado, ou não tiver um certificado que venha de uma dessas CAs, o cliente não fornecerá nenhum certificado.
O fato de seu cliente dizer que ele não reconhece nenhuma das CAs enviadas pelo servidor diz que seu cliente a) não possui um certificado de cliente ou b ) seu certificado de cliente é de uma CA que não está no arquivo /certs/ca.pem
.
Não tenho certeza de qual cliente TLS você está usando, portanto, não posso ajudar com isso, mas o acima sugere que você verifique a configuração do certificado / chave do cliente para esse cliente e verifique se o certificado foi configurado para uso pelo cliente TLS. cliente é de uma das CAs no seu arquivo /certs/ca.pem
.
Espero que isso ajude!