Мы используем самоподписанный сертификат за рядом балансировщиков нагрузки, конечные точки используют самоподписанные сертификаты.
При тестировании конечных точек напрямую с помощью CURL мы получаем периодические ошибки SSL Connect (Код 35)
Вот пример вывода неудачной попытки:
curl --insecure example.com/index.html
- Пробуем 9773 ...
- TCP_NODELAY установлен
- Подключен к example.com (10.8.49.98) порт 9773 (# 0)
- ALPN, предлагающий h2
- ALPN, предлагающий http / 1.1
- успешно установить местоположения проверки сертификата:
- CAfile: /etc/ssl/cert.pem CApath: нет
- TLSv1.2 (OUT), рукопожатие TLS, приветствие клиента (1):
- TLSv1.2 (IN), рукопожатие TLS, привет серверу (2):
- TLSv1.2 (IN), рукопожатие TLS, сертификат (11):
- TLSv1.2 (IN), рукопожатие TLS, обмен серверными ключами (12):
- TLSv1.2 (IN), рукопожатие TLS, сервер завершен (14):
- TLSv1.2 (OUT), рукопожатие TLS, обмен клиентскими ключами (16):
- TLSv1.2 (OUT), изменение шифра TLS, изменение спецификации шифра (1):
- TLSv1.2 (OUT), рукопожатие TLS, завершено (20):
- LibreSSL SSL_connect: SSL_ERROR_SYSCALL в связи с example.com
- Закрытие соединения 0 curl: (35) LibreSSL SSL_connect: SSL_ERROR_SYSCALL в связи с example.com:9773
Это из-за неправильной конфигурации? Проблема с производительностью сервера? Сеть?
Сервер - Tomcat 8.
Команда, используемая для создания сертификата:
openssl req -x509 -newkey rsa:4096 -nodes -keyout private.pem -out public.crt -days 365 -subj '/CN=example.com'
Связанная конфигурация Tomcat SSL:
<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>