Estamos usando certificados autoassinados por trás de uma variedade de balanceadores de carga, os endpoints usam certificados autoassinados.
Ao testar os endpoints diretamente usando CURL, obtemos erros intermitentes de SSL Connect (Código 35)
Aqui está um exemplo de saída de uma tentativa fracassada:
curl --insecure exemplo.com/index.html
- Tentando 9773...
- Conjunto TCP_NODELAY
- Conectado a example.com (10.8.49.98) porta 9773 (#0)
- ALPN, oferecendo h2
- ALPN, oferecendo http/1.1
- definir com êxito os locais de verificação do certificado:
- CAfile: /etc/ssl/cert.pem CApath: nenhum
- TLSv1.2 (OUT), handshake TLS, Olá do cliente (1):
- TLSv1.2 (IN), handshake TLS, Olá do servidor (2):
- TLSv1.2 (IN), handshake TLS, certificado (11):
- TLSv1.2 (IN), handshake TLS, troca de chaves do servidor (12):
- TLSv1.2 (IN), handshake TLS, servidor finalizado (14):
- TLSv1.2 (OUT), handshake TLS, troca de chaves do cliente (16):
- TLSv1.2 (OUT), cifra de alteração TLS, especificação de alteração de cifra (1):
- TLSv1.2 (OUT), handshake TLS, finalizado (20):
- LibreSSL SSL_connect: SSL_ERROR_SYSCALL em conexão com example.com
- Fechando conexão 0 curl: (35) LibreSSL SSL_connect: SSL_ERROR_SYSCALL em conexão com example.com:9773
Isso é devido a uma configuração incorreta? Problema de desempenho do servidor? Rede?
O servidor é Tomcat 8.
Comando usado para criar o certificado:
openssl req -x509 -newkey rsa:4096 -nodes -keyout private.pem -out public.crt -days 365 -subj '/CN=example.com'
A configuração SSL do Tomcat associada:
<Connector port="9773" protocol="org.apache.coyote.http11.Http11AprProtocol"
maxThreads="150"
SSLEnabled="true"
scheme="https"
secure="true"
compression="on"
address="0.0.0.0"
>
<UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
<SSLHostConfig
protocols="TLSv1.2"
>
<Certificate
certificateFile="/ssl/certs/public.crt"
certificateKeyFile="/ssl/certs/private.pem"
/>
</SSLHostConfig>
</Connector>