Конфигурация соединителя
Код: Выделить всё
port = 8443
protocol="org.apache.coyote.http11.Http11NioProtocol"
defaultSSLHostConfigName="defaultConfig"
"TLSv1.2 (IN), подтверждение TLS, обмен ключами сервера (12):"
Код: Выделить всё
--tls-max 1.2Аргумент Код: Выделить всё
* Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to localhost (127.0.0.1) port 8443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
* CAfile: /etc/ssl/infaca/ca-bundle.pem
CApath: none
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Request CERT (13):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Certificate (11):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS handshake, CERT verify (15):
* TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to localhost:8443
* Closing connection 0
curl: (35) OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to localhost:8443
Код: Выделить всё
10.29.5.112 - - 2024-10-02 00:05:31.204 null -1 "-" 400 - 0 - 10.29.5.22 - "-" "-" nullВ SSLHostConfig пробовал ограничить шифры до протокола, совместимого с fips, и ограничить протокол tls 1.2, но ничего не изменилось
Код: Выделить всё
Пытался настроить org.apache.catalina.level = FINE в свойствах ведения журнала tomcat, но не получил полезной информации в журналах Catalina
путь к классу содержит /opt/java/zulu17.50.20- sa-jdk17.0.11-linux_x64-fips-bc/fips_libs
и командная строка включает -Dorg.bouncycastle.fips.approved_only=true
Обновление:
тайм-аут 20 секунд соответствует значению ConnectionTimeout, установленному в коннекторе https.
gnutls-util показывает, что SSL-квитирование завершено
Код: Выделить всё
[2024-10-04 00:01:45] - Description: (TLS1.3-X.509)-(ECDHE-SECP256R1)-(RSA-PSS-RSAE-SHA256)-(AES-256-GCM)
[2024-10-04 00:01:45] - Options:
[2024-10-04 00:01:45] - Handshake was completed
gnutls-cli работает после предоставления строки HTTP-запроса через стандартный ввод.
Пытался использовать эквивалентный шифр с завитком, но закручивание по-прежнему завершается неудачей через 20 секунд.
р>
Код: Выделить всё
curl -vk https://localhost:12345/XXX/mgmtapi/version --ciphers 'ECDHE-RSA-AES256-GCM-SHA384'Между запросом сертификата и его завершением проходит 20 секунд
[img]https: //i.sstatic.net/kZH8eWjb.png[/img]
К этому моменту истекает время ожидания соединения tomcat, и соединение закрывается.
Примечание. Этот дамп TCP был расшифрован с использованием метода переменной env SSLKEYLOGFILE
Обновление 4: дамп TCP из wget. Запрос выполняется примерно через 30 мс
Дамп TCP зашифрован

Обновление 5:
strace в tomcat показывает задержку в 5 с (время ожидания соединения уменьшено с 20 до 5 с)
Код: Выделить всё
# grep '(15, ' strace_log_.2631*
strace_log_.2631293:21:30:00.659611 read(15, "\26\3\1\0\313\1\0\0\307\3\3i\n\364\234\234u\6B\3211\24\366\202\30_,\334a\356\235f"..., 16921) = 208
strace_log_.2631293:21:30:00.671155 read(15, 0x7faff802b1e0, 18505) = -1 EAGAIN (Resource temporarily unavailable)
strace_log_.2631293:21:30:00.673816 write(15, "\26\3\3\0]\2\0\0Y\3\3~KL\352\315*\207L\310\357\256\204qv\311\334\364ag\213\224"..., 17408) = 17408
strace_log_.2631293:21:30:00.673963 read(15, 0x7faff8029be0, 18713) = -1 EAGAIN (Resource temporarily unavailable)
strace_log_.2631294:21:30:05.762746 write(15, "Universal Root Certification Aut"..., 1915) = 1915
strace_log_.2631294:21:30:05.768307 getsockopt(15, SOL_SOCKET, SO_LINGER, {l_onoff=0, l_linger=0}, [8]) = 0
strace_log_.2631294:21:30:05.768970 shutdown(15, SHUT_WR) = 0
strace_log_.2631296:21:30:00.641739 fcntl(15, F_GETFL) = 0x2 (flags O_RDWR)
strace_log_.2631296:21:30:00.641834 getsockname(15, {sa_family=AF_INET6, sin6_port=htons(8443), sin6_flowinfo=htonl(0), inet_pton(AF_INET6, "::ffff:127.0.0.1", &sin6_addr), sin6_scope_id=0}, [28]) = 0
strace_log_.2631296:21:30:00.641931 getsockname(15, {sa_family=AF_INET6, sin6_port=htons(8443), sin6_flowinfo=htonl(0), inet_pton(AF_INET6, "::ffff:127.0.0.1", &sin6_addr), sin6_scope_id=0}, [28]) = 0
strace_log_.2631296:21:30:00.657494 fcntl(15, F_GETFL) = 0x2 (flags O_RDWR)
strace_log_.2631296:21:30:00.657543 fcntl(15, F_SETFL, O_RDWR|O_NONBLOCK) = 0
strace_log_.2631296:21:30:00.657643 setsockopt(15, SOL_SOCKET, SO_RCVBUF, [32768], 4) = 0
strace_log_.2631296:21:30:00.657712 setsockopt(15, SOL_SOCKET, SO_LINGER, {l_onoff=0, l_linger=0}, 8) = 0
strace_log_.2631296:21:30:00.657765 setsockopt(15, SOL_TCP, TCP_NODELAY, [1], 4) = 0
Подробнее здесь: https://stackoverflow.com/questions/790 ... -fips-mode
Мобильная версия