Периодическая ошибка Curl 35 при использовании самоподписанного сертификата на Tomcat

Периодическая ошибка Curl 35 при использовании самоподписанного сертификата на Tomcat

Мы используем самоподписанный сертификат для ряда балансировщиков нагрузки, конечные точки используют самоподписанные сертификаты.

При тестировании конечных точек напрямую с помощью 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>

Связанный контент