Я немного смущен.Мы настроили наш сервер Tomcat v7 для связи с подключающимися браузерами, используя только TSLv1.2, и мы указали ограниченный набор шифров.Использование браузера Firefox (v60.3.0esr 64 бит).Мы можем установить соединение, но странно, что после того, как я подключился к сайту, я заметил, что согласованный шифр - это тот, которого нет в списке настроенных шифров tomcat.
У меня сложилось впечатление, что при настройке объекта http-соединения сервер как часть отрицаний hello-соединения будет ограничивать соединение списком доступных шифров?Что мне не хватает?Если параметр ciphers отсутствует, то список доступных шифров будет ограничен шифром, настроенным на JVM (это мое понимание).Таким образом, нужно ли также ограничивать шифры в JVM тем же набором, который я указываю в элементе коннектора http?
ДЕТАЛИ: Tomcat (v 7.0.77 java 1.8.0_151)
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true" allowTrace="false"
clientAuth="false" sslProtocols="TLS" sslEnabledProtocols="TLSv1.2"
keystoreFile="/etc/tomcat/tomcat.keystore" keystorePass="XXXX"
ciphers="TLS_RSA_WITH_AES_256_CBC_SHA256,
TLS_DHE_RSA_WITH_AES_256_CBC_SHA,
TLS_DHE_DSS_WITH_AES_256_CBC_SHA,
TLS_RSA_WITH_AES_128_CBC_SHA256,
TLS_RSA_WITH_AES_128_CBC_SHA,
TLS_DHE_RSA_WITH_AES_128_CBC_SHA,
TLS_RSA_WITH_AES_256_GCM_SHA384,
TLS_RSA_WITH_AES_128_GCM_SHA256,
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,
TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384,
TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384" />
У меня нет ничего определенного в моем tomcat.config
JAVA_HOME="/usr/lib/jvm/jre"
CATALINA_BASE="/usr/share/tomcat"
CATALINE_HOME="/usr/share/tomcat"
JASPER_HOME="/usr/share/tomcat"
CATALINE_TMPDIR="/var/cache/tomcat/temp"
TOMCAT_USER="tomcat"
SECURITY_MANAGER="false"
SHUTDOWN_WAIT="30"
SHUTDOWN_VERBOSE="false"
CATALINA_PID="/var/run/tomcat.pid
После того, как я установил соединение, я щелкнул правой кнопкой мыши в окне браузера, выбрал Inspect Element и выбрал тег Network инажал на запрос клиента.Затем я выбрал вкладку безопасности (для запроса), и на ней отображалось:
Protocol verson: TLSv1.2
Cipher suite: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
Key Exchange group: None
...
Я заметил, что срок действия нашего сертификата истек (я получил исключение безопасности при первоначальном установлении соединения).
Может кто-нибудь объяснить, почему согласованный шифр не входит в список шифров tomcat?Что нужно сделать, чтобы ограничить набор доступных шифров, поддерживаемых сервером?Заранее спасибо.
НАХОДКИ: Итак, с включенным ведением журнала, кажется, что сервер выбрал шифр в нашем списке шифров соединения.Тем не менее, когда я проверяю настройки безопасности просмотра fire-fox, браузер указывает, что он согласен с шифром TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256.Вопросы:
- Что касается инициализации обработчика протокола, почему я получаю так много протоколов, недоступных?Этот Tomcat изучает JVM и по какой-то причине у JVM нет этих установленных протоколов.Разве мы не включаем необходимую библиотеку?
- Я вижу в журнале клиент-серверный обмен сообщениями приветствия и согласованный шифрТем не менее, браузер указывает другой шифр, как это меняется?Что-то перехватывает этот обмен?Смущенный по меньшей мере.Есть идеи?