Назад | Перейти на главную страницу

Прерывистая ошибка 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>