У меня и моих коллег возникла проблема с использованием Firefox 3.0.6 для доступа к веб-приложению Java 1.6.0___11, которое мы разрабатываем. Все работает нормально в течение 1-30 минут после начала сеанса... но в конце концов соединение обрывается и появляется следующая ошибка:
Secure Connection Failed
.
Во время соединения с 10.x.x.x.x.
произошла ошибка.
Невозможно установить безопасное соединение со сверстником: нет общего алгоритма(ов) шифрования.
(Код ошибки: ssl_error_no_cypher_overlap)
.
IE работает нормально. Firefox выдает ошибку и в Windows, и в Fedora, так что проблема, похоже, не связана с ОС. Приложение Java EE работает на сервере Tomcat 6.0.16. Все страницы шифруются с помощью TLS 1.0 через HTTP-сервер Apache 2.2.8 с mod_nss.
Наш сервер Apache настроен на отклонение соединений SSL 3.0. Одна из наших гипотез заключается в том, что Firefox может пытаться установить соединение SSL 3.0... но почему?
Погуглив, мы попробовали следующее, но безуспешно:
использовать Firefox 2.x (некоторые люди сообщали о случаях, когда 2.x работал, а 3.x - нет):
включение SSL2
отключение SSL3
отключение OCSP (Инструменты > Параметры > Дополнительно > Шифрование > Проверка)
убедиться, что антивирус/фаервол клиентского компьютера не блокирует и не сканирует порт 443 (порт https)
Есть идеи?
У меня была такая же проблема при обновлении сертификата для нашего сервера на www.tpsynergy.com . После импорта нового сертификата сервера и перезапуска tomcat мы получили ошибку ERR_SSL_VERSION_OR_CIPHER_MISMATCH. После долгих исследований я использовал эту ссылку https://www.sslshopper.com/certificate-key-matcher.html для сравнения csr (запрос на подписание сертификата с фактическим сертификатом). Они оба не совпадали. Поэтому я создал новый csr, получил новый сертификат и установил его. Это сработало.
Таким образом, полные шаги для процесса
keytool -keysize 2048 -genkey -alias tomcat -keyalg RSA - магазин ключей tpsynergy.keystore (измените доменное имя по мере необходимости)
При создании этого он будет запрашивать имя и фамилию. Не называйте свое имя, но используйте доменное имя. Например, я дал его как www.tpsynergy.com
2.keytool -certreq -keyalg RSA -alias tomcat -file csr.csr -keystore tpsynergy.keystore
Это создаст файл csr.csr в той же папке. скопируйте содержимое этого сайта на сайт godaddy и создайте новый сертификат.
Загруженный zip-файл сертификата будет иметь три файла gd_bundle-g2-g1.crt gdig2.crt youractualcert.crt
Вам нужно будет загрузить корневой сертификат gdroot-g2.crt из хранилища Godaddy.
Скопируйте все эти файлы в тот же каталог, из которого вы создали файл CSR и где находится файл хранилища ключей.
Теперь запустите приведенные ниже команды один за другим, чтобы импортировать сертификаты в магазин ключей
keytool -import -trustcacerts -alias root -file gd_bundle-g2-g1.crt -keystore tpsynergy.keystore
keytool -import -trustcacerts -alias root2 -file gdroot-g2.crt -keystore tpsynergy.keystore
keytool -import -trustcacerts -alias промежуточный -file gdig2.crt -keystore tpsynergy.keystore
keytool -import -trustcacerts -alias tomcat -file yourdomainfile.crt -keystore tpsynergy.keystore
Убедитесь, что файл server.xml в папке conf имеет эту запись
& Лт;!- Определите разъем SSL HTTP / 1.1 на порту 8443 Этот разъем использует конфигурацию JSSE при использовании APR Разъем должен использовать конфигурацию стиля OpenSSL описано в документации APR - > < Connector port = "8443" protocol = "HTTP / 1.1" SSLEnabled = "true" maxThreads = "150" схема = "https" secure = "true" clientAuth = "false" sslProtocol = "TLS" keystoreFile = "/ usr / share / tomcat7 / webapps / productioncerts / tpsynergy.keystore" keystorePass = "mypasswordsameas тот, который используется при создании csr" / >
Перезагрузите кота
Учитывая то, что вы пробовали, и сообщения об ошибках, я бы сказал, что это скорее связано с используемым алгоритмом шифрования, чем с версией TLS/SSL. Вы случайно не используете JRE от Sun, или реализацию безопасности другого производителя? Попробуйте использовать другую JRE/OS для тестирования вашего сервера, если это возможно. В противном случае вы можете просто увидеть, что происходит с помощью Wireshark (с фильтром 'tcp.port == 443').
Если вы посмотрите процесс согласования SSL в Википедии, вы узнаете, что в начале сообщения ClientHello и ServerHello отправляются между браузером и сервером.
Только если шифры, представленные в ClientHello, имеют перекрывающиеся элементы на сервере, сообщение ServerHello будет содержать шифр, который поддерживают обе стороны. В противном случае SSL-соединение не будет инициировано, так как нет общего шифра.
Чтобы решить проблему, вам нужно установить шифры (обычно на уровне ОС), а не пытаться работать в браузере (обычно браузер полагается на ОС). Я знаком с Windows и IE, но мало знаю о Linux и Firefox, поэтому я могу только указать, что не так, но не могу предоставить вам решение.
У меня были похожие проблемы при просмотре защищенных сайтов (https://) при использовании Burp (или, по крайней мере, проблема, которая приведет вас на эту страницу при поиске в Google):
ssl_error_no_cypher_overlap
в FirefoxERR_SSL_VERSION_OR_CIPHER_MISMATCH
в ChromeОказалось, что это проблема с использованием Java 8. Когда я переключился на Java 7, проблема прекратилась.
В расширенных настройках firefox вы должны иметь возможность установить шифрование. По умолчанию SSL3.0 и TLS1.0 должны быть отмечены, поэтому если firefox пытается создать соединения ssl 3.0, попробуйте снять флажок с параметра ssl 3.0s.
Если это не сработает, попробуйте найти на странице about:config параметр "ssl2" В моем Firefox в настройках ssl2 по умолчанию установлено значение false...
Первое, что я бы проверил, это конфигурацию mod_nss. Он самый странный, потому что он ваш и ни один в мире не похож на него :-) Если бы в Firefox или в самом mod_nss была какая-то огромная ошибка, я думаю, вы бы уже узнали о ней в своих поисках в гугле. Тот факт, что вы возились с конфигурацией (например, отключение SSL3 и другие случайные настройки), также подозрителен.
Я бы вернулся к очень ванильной конфигурации mod_nss и посмотрел, работает ли она. Затем меняйте все систематически в направлении вашего текущего конфига, пока вы не сможете воспроизвести проблему. Судя по звуку, источник ошибки находится где-то в конфигурации спецификации шифров mod_nss и связанных с ней протокольных переговоров. Так что, возможно, вы случайно изменили что-то там, когда пытались отключить SSLv3 (кстати, зачем отключать SSL3? Обычно люди отключают V2?).
Еще нужно проверить, что вы используете последнюю версию mod_nss, и это не является известной ошибкой. Тот факт, что ему удается начать сессию, а затем происходит сбой, интересен - это говорит о том, что, возможно, он пытается перезаключить сессию и не может согласовать шифры в этот момент. Так что, возможно, дело в симметричных шифрах. Или это может быть просто ошибка реализации в вашей версии mod_nss, которая каким-то образом искажает протокол.
Еще одна идея, и это дикое предположение, браузер пытается возобновить сессию, которая была согласована с SSLv3 до того, как вы отключили его, и что-то ломается при попытке возобновить эту сессию, когда V3 отключен, или, возможно, mod_nss просто не реализует его правильно.
То, что касается java/tomcat, похоже на красную селедку, поскольку, если я неправильно понял ваше описание, ничего из этого не вовлечено в рукопожатие/протокол SSL.
Если вы получаете ошибку перекрытия шифров без Firefox и оставляете ее в настройках по умолчанию, вы используете очень небезопасный сайт, пытающийся использовать очень слабый шифр «экспортного уровня». Использование этих шифров в наши дни не рекомендуется, и я лично перестал бы использовать сайт, пытающийся использовать такой слабый шифр.
Сообщение об ошибке «Код ошибки: ssl_error_no_cypher_overlap» после входа в систему, когда ожидается экран приветствия - с использованием браузера Firefox
Решение
Включить поддержку 40-битного шифрования RSA в браузере Firefox: 1: введите 'about: config' в адресной строке браузера 2: найти / выбрать "security.ssl3.rsa_rc4_40_md5" 3: установите логическое значение TRUE
Что сработало для меня, так это я
Примечание о перезапуске Firefox: когда я его запускаю очень скоро после его закрытия, часто возникает проблема с доступом к файлу, которая требует от меня удаления places.sqlite и places.sqlite-journal в C: \ WINDOWS \ Данные приложения \ Mozilla \ Firefox \ Profiles \ n18091xv.default . Это заставляет меня потерять свою историю, плюс закладки должны быть восстанавливается из резервной копии каждый раз, когда это происходит. Я жду от пяти до десяти минут или больше, чтобы избежать этой хлопоты.
Запуск Firefox v3.5.1 на WinMe
У меня была та же проблема; решить было достаточно, чтобы включить все схемы SSL в «about: config». Я нашел их, отфильтровав с помощью ssl. Сначала я предоставил все варианты для afret, отключив ненужные.
Сообщение об ошибке «Код ошибки: ssl_error_no_cypher_overlap» после входа в систему, когда ожидается экран приветствия - с использованием браузера Firefox Решение 1: введите 'about: config' в адресной строке браузера 2: найти / выбрать "security.ssl3.rsa_rc4_40_md5" 3: установите логическое значение TRUE