[ОБНОВИТЬ]
Я запустил команду openssl с пары серверов и своего локального компьютера. Похоже, порт 9443 не работает. Шифр на server1: 9443 остался таким же, как и на первом сервере (RHEL5), с которого я запросил. Однако запросы с моего локального компьютера (Win7) и виртуальной машины (RHEL6.9) приводят к 0000
шифр.
Я не думаю, что сбой связан с разницей в шифровании моего порта, потому что дополнительные тесты показывают, что приложение снова в сети с такими же настройками среды, что и конечный пользователь. Я читал статья что балансировщик F5 потенциально может вызвать проблемы. Так что я исследую этот маршрут с администраторами.
Но все же хотелось бы знать, почему порты отражают разные шифры и как это исправить. [/ОБНОВИТЬ]
У меня два сервера, на обоих по два экземпляра серверов приложений. Каждый экземпляр сервера приложений настроен на использование одних и тех же протоколов SSL и шифрования.
Из конфигов:
sslProtocols = "TLSv1,TLSv1.1,TLSv1.2"
ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,
TLS_DHE_RSA_WITH_AES_256_CBC_SHA,
TLS_DHE_DSS_WITH_AES_128_CBC_SHA,
TLS_RSA_WITH_AES_128_CBC_SHA256,
TLS_RSA_WITH_AES_128_CBC_SHA,
TLS_RSA_WITH_AES_256_CBC_SHA256,
TLS_RSA_WITH_AES_256_CBC_SHA"
В некоторых случаях клиенты сообщали о сбоях в работе для Server1:9443
Я выбежал из командной строки: openssl s_client -connect server:port
Сервер1: 8443
Protocol : TLSv1
Cipher : AES128-SHA
Сервер1: 9443
Protocol : TLSv1
Cipher : DHE-RSA-AES256-SHA
Сервер2: 8443
Protocol : TLSv1
Cipher : AES128-SHA
Сервер2: 9443
Protocol : TLSv1
Cipher : AES128-SHA
Почему бы server1:9443
отразить иначе?
Оба сервера работают на RHEL 5.11.
[РЕДАКТИРОВАТЬ]
Из командной строки netstat -tupln
Сервер1:
tcp 0 0 0.0.0.0:9443 0.0.0.0:* LISTEN 9709/java
Сервер2:
tcp 0 0 0.0.0.0:9443 0.0.0.0:* LISTEN 718/java
tcp 0 0 0.0.0.0:8443 0.0.0.0:* LISTEN 5900/java
Сервер1 /etc/services
перечисляет 8443 как pcsync-https. Проверено, запустив команду sudo netstat -t -l -p |grep pcsync-https
на server1.
tcp 0 0 *:pcsync-https *:* LISTEN 7037/java
[/РЕДАКТИРОВАТЬ]
Так что это был не шифр, а порт перенаправления ... тот, который клиенты не использовали, и был отключен на одном сервере, но не на другом.
<Connector port="8080" address="${jboss.bind.address}"
maxThreads="250" maxHttpHeaderSize="8192"
emptySessionPath="true" protocol="HTTP/1.1"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
После того, как мы закомментировали этот блок из файла JBoss server.xml и перезапустили службу, все заработало, как задумано. Каждый порт на обоих серверах теперь отражает один и тот же шифр сервер-клиент.