Estamos utilizando certificados autofirmados detrás de una variedad de balanceadores de carga, los puntos finales usan certificados autofirmados.
Al probar los puntos finales directamente usando CURL, obtenemos errores intermitentes de SSL Connect (Código 35)
A continuación se muestra un ejemplo de resultado de un intento fallido:
curl --insecure ejemplo.com/index.html
- Probando 9773...
- Conjunto TCP_NODELAY
- Conectado al puerto 9773 (#0) de example.com (10.8.49.98)
- ALPN, ofreciendo h2
- ALPN, ofreciendo http/1.1
- establecer correctamente las ubicaciones de verificación de certificados:
- Archivo CA: /etc/ssl/cert.pem CApath: ninguno
- TLSv1.2 (OUT), protocolo de enlace TLS, saludo del cliente (1):
- TLSv1.2 (IN), protocolo de enlace TLS, saludo del servidor (2):
- TLSv1.2 (IN), protocolo de enlace TLS, certificado (11):
- TLSv1.2 (IN), protocolo de enlace TLS, intercambio de claves del servidor (12):
- TLSv1.2 (IN), protocolo de enlace TLS, servidor finalizado (14):
- TLSv1.2 (OUT), protocolo de enlace TLS, intercambio de claves de cliente (16):
- TLSv1.2 (OUT), cambio de cifrado TLS, cambio de especificación de cifrado (1):
- TLSv1.2 (SALIDA), protocolo de enlace TLS, finalizado (20):
- LibreSSL SSL_connect: SSL_ERROR_SYSCALL en conexión con ejemplo.com
- Cerrando conexión 0 curl: (35) LibreSSL SSL_connect: SSL_ERROR_SYSCALL en conexión con example.com:9773
¿Esto se debe a una mala configuración? ¿Problema de rendimiento del servidor? ¿Red?
El servidor es Tomcat 8.
Comando utilizado para crear el certificado:
openssl req -x509 -newkey rsa:4096 -nodes -keyout private.pem -out public.crt -days 365 -subj '/CN=example.com'
La configuración SSL de Tomcat asociada:
<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>