Erro ssl3_read_bytes:sslv3 alert certificate unknown #168
Replies: 3 comments 5 replies
-
E ai amigo, conseguiu resolver esse problema? Estou me aventurando nesse universo do Horse e estou tendo o mesmo problema por aqui usando o NGINX como servidor HTTPS. Se puder me dar um retorno, quem sabe abrimos um canal para troca de ideias porque é bem difícil encontrar material falando de "HORSE e HTTPS" juntos, 99% do conteúdo sempre aborda HTTP. Abraço |
Beta Was this translation helpful? Give feedback.
-
Eu não sei ao certo como configurar o SSL diretamente na API Horse, nem sei se é possível. O que você pode fazer para resolver o problema é passar pelo NGINX. Ai fica simples, basta configurar o certificado SSL no NGINX, e fazer o direcionamento para sua API, mesmo que seja em modo console. Nesse caso, como o redirecionamento não será com protocolo HTTPS, o ideal é que o NGINX esteja na mesma maquina da API. Para minimizar problemas de segurança. Uma observação, pode parecer besta, mas apanhei com isso no começo, é que se você tentar fazer um certificado auto assinado, usando um OpenSSL por exemplo, o Cliente da requisição vai reclamar que não é um certificado válido. O ideal nesse caso, é que o certificado seja do seu domínio e que o NGINX assim como a API esteja no servidor em que hospeda esse domínio. Outra solução mais simples, seria gerar um módulo apache ou iis, assim vc não se preocupa com o certificado, uma vez instalado no domínio, irá cobrir sua API de forma automática. |
Beta Was this translation helpful? Give feedback.
-
Ok, após mais alguns rounds de uma luta de Box bem disputada, acho que VENCI (por pontos). Fica aqui o meu parecer caso alguém precise. Descobri que o HORSE não precisa ter um SERVIÇO SSL rodando para permitir ser consumido usando este protocolo. Para ele funcionar sem esse serviço é preciso configurar no seu código as seguintes linhas: THorse.IOHandleSSL.CertFile := '.\horsecert.pem'; //Certificado CRT Isso foi explicado num video que um colega postou aqui nesta discussão. Importante: Esse certificado é SELF-SIGNED, não é um certificado comprado e foi gerado pela própria máquina seguindo as dicas do Google. Portanto para fins de teste parece que não faz diferença usar um certificado válido ou um Self-Signed. Outro detalhe importante: Se bater o endereço HTTPS://LOCALHOST:9000/ping, ele vai dar um erro no Horse "Error accepting connection with SSL. EOF was observd that violates the protocol." mas assim que você pedir para continuar, ele vai funcionar, ou seja, sua requisição será atendida pelo Horse. Se trocar por HTTPS://127.0.0.1:9000/ping ele funciona sem erro algum. Não sei exatamente o motivo já que LOCALHOST e 127.0.0.1 deveriam ser a mesma coisa (sei que o DNS tem que atuar quando se usa o LOCALHOST já que é um apelido, mas não vou me aprofundar). Descobri em minhas pesquisas para resolver esses problemas que há toneladas de situações que podem ocasionar erros ao tentar usar o Horse com HTTPS (versões das bibliotecas "ssleay32.dll" e "libeay32.dll", versão do INDY, geração correta do Certificado) e como ainda existe bem pouco uso desta ferramenta, fica bem difícil se encontrar, principalmente para quem está deixando o universo da programação CLIENTE/SERVIDOR e entrando agora nesse mundo de Servidores de Aplicação. |
Beta Was this translation helpful? Give feedback.
-
Configurado o Horse em console para funcionar com ssl, entretanto no modo debug esta me retornando a seguinte mensagem de erro:
Project EFAPI.exe raised exception class EIdOSSLUnderlyingCryptoError with message 'Error accepting connection with SSL.
error:14094416:SSL routines:ssl3_read_bytes:sslv3 alert certificate unknown'.
Alguém poderia me da uma dica do que pode esta acontecendo e como resolver esta questâo?
Beta Was this translation helpful? Give feedback.
All reactions