Ошибка Firefox "ssl_error_no_cypher_overlap"

У моих коллег и у меня проблемы с использованием Firefox 3.0.6 для доступа к веб-приложению Java 1.6.0 ___ 11, которое мы разрабатываем. Все работает отлично от 1 до 30 минут в сеансе... но в итоге соединение не работает и появляется следующая ошибка:

Secure Connection Failed

An error occurred during a connection to 10.x.x.x.

Cannot communicate securely with peer: no common encryption algorithm(s).

(Error code: 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... но почему?

На основе некоторого Googling мы пробовали следующие вещи, но безуспешно:

  • используя Firefox 2.x(некоторые люди сообщали о случаях, когда 2.x работал, но 3.x не делал этого):

  • включение SSL2

  • отключение SSL3

  • отключить OCSP (Инструмент > Параметры > Дополнительно > Шифрование > Проверка)

  • убедитесь, что антивирус/брандмауэр клиентского компьютера не блокирует или не сканирует порт 443 (порт https)

Любые идеи?

Ответы

Ответ 1

У меня была такая же проблема, обновив сертификат для нашего сервера по адресу www.tpsynergy.com. После импорта нового сертификата сервера и перезапуска tomcat ошибка, которую мы получали, была ERR_SSL_VERSION_OR_CIPHER_MISMATCH. После много исследований я использовал эту ссылку https://www.sslshopper.com/certificate-key-matcher.html для сравнения csr (запрос подписи сертификата к фактическому сертификату). Оба они не совпали. Поэтому я создал новый csr и получил новый сертификат и установил его. Это сработало.

Таким образом, полные шаги для процесса:

  • С того же сервера, на котором будет установлен сертификат, создайте CSR

keytool -keysize 2048 -genkey -alias tomcat -keyalg RSA -keystore tpsynergy.keystore(при необходимости измените имя домена)

При создании этого запроса он запрашивает имя и фамилию. Не указывайте свое имя, но используйте доменное имя. Например, я дал его как www.tpsynergy.com

2.keytool -certreq -keyalg RSA -alias tomcat -file csr.csr -keystore tpsynergy.keystore

Это создаст файл csr.csr в той же папке. скопируйте его содержимое на сайт godaddy и создайте новый сертификат.

  1. Загруженный сертификат zip файла будет иметь три файла gd_bundle-g2-g1.crt gdig2.crt youractualcert.crt

  2. Вам необходимо загрузить корневой сертификат gdroot-g2.crt из репозитория godaddy.

  3. Скопируйте все эти файлы в тот же каталог, из которого вы создали файл CSR, и где находится файл хранилища ключей.

  4. Теперь запустите следующие команды один за другим, чтобы импортировать сертификаты в хранилище ключей

    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 middle -file gdig2.crt -keystore tpsynergy.keystore

    keytool -import -trustcacerts -alias tomcat -file yourdomainfile.crt -keystore tpsynergy.keystore

  5. Убедитесь, что файл server.xml в папке conf имеет эту запись

     

  6. Перезапустите tomcat

Ответ 2

Учитывая то, что вы пробовали, и сообщения об ошибках, я бы сказал, что это больше связано с использованием точного алгоритма шифрования, а не с версией TLS/SSL. Используете ли вы не-Sun JRE, или какую-либо другую реализацию безопасности поставщика? Попробуйте использовать другую JRE/ОС для тестирования вашего сервера, если сможете. В противном случае вы можете просто увидеть, что происходит с Wireshark (с фильтром 'tcp. порт == 443 ').

Ответ 3

Если вы просмотрите процесс согласования SSL в Википедии, вы узнаете, что в начале сообщения ClientHello и ServerHello отправляются между браузером и сервером.

Только если шифры, предоставленные в ClientHello, имеют перекрывающиеся элементы на сервере, сообщение ServerHello будет содержать cypher, поддерживаемый обеими сторонами. В противном случае соединение SSL не будет инициировано, так как отсутствует общий шифр.

Чтобы решить проблему, вам нужно установить cyphers (обычно на уровне ОС), вместо того, чтобы пытаться работать в браузере (обычно браузер использует ОС). Я знаком с Windows и IE, но я мало знаю об Linux и Firefox, поэтому я могу только указать, что неправильно, но не может предоставить вам решение.

Ответ 4

В расширенных настройках firefox вы должны установить шифрование. По умолчанию SSL3.0 и TLS1.0 должны быть проверены, поэтому если firefox пытается создать ssl 3.0, попробуйте отключить настройку ssl 3.0.

Если это не сработает, попробуйте найти страницу about: config для "ssl2" У моего Firefox есть настройки с установкой ssl2 по умолчанию false...

Ответ 5

Первое, что я хотел бы проверить, это config для mod_nss. Это странный, потому что он принадлежит вам, и в мире нет такого:-) Если бы у вас была огромная ошибка в Firefox или mod_nss, я бы предположил, что вы уже узнали об этом в своем квест google. Тот факт, что вы воспользовались настройкой (например, отключением SSL3 и различными другими случайными настройками), также вызывает подозрение.

Я вернусь к очень ванильному mod_nss config и посмотрю, работает ли это. Затем систематически измените ситуацию на текущую конфигурацию, пока не сможете воспроизвести проблему. По его звуку источник ошибки находится где-то в конфигурации шифрования mod_nss и связанных с ним протоколах. Так что, возможно, вы случайно что-то изменили там, пытаясь отключить SSLv3 (кстати, почему отключить SSL3? Обычно люди отключают V2?).

Еще одна вещь, которую нужно проверить, это то, что вы находитесь на последнем mod_nss, и это не известная ошибка. Интересен тот факт, что ему удается начать сеанс, а затем провалиться позже - это говорит о том, что, возможно, он пытается пересмотреть сеанс и не может договориться о шифрах в этот момент. Таким образом, это могут быть симметричные шифры. Или это может быть просто ошибка реализации в вашей версии mod_nss, которая каким-то образом искажает протокол.

Еще одна идея, и это дикая догадка, браузер пытается возобновить сеанс, который был согласован с SSLv3, прежде чем отключить его, и что-то ломается при попытке возобновить этот сеанс, когда V3 выключен, или, может быть, mod_nss просто не реализует его правильно.

Материал java/tomcat кажется красной селедкой, если я не понял ваше описание, ничто из этого не связано с SSL-квитированием/протоколом.

Ответ 6

У меня были проблемы с аналогичными проблемами для защиты сайтов (https://) при использовании Burp (или, по крайней мере, проблема, которая привела бы к вы на эту страницу при поиске в Google):

  • ssl_error_no_cypher_overlap в Firefox
  • ERR_SSL_VERSION_OR_CIPHER_MISMATCH в Chrome

Оказалось, что проблема связана с с использованием Java 8. Когда я переключился на Java 7, проблема остановилась.

Ответ 7

Если вы получите ошибку перекрытия шифрования на firefox, и вы оставили ее по умолчанию, вы используете то, что должно быть очень небезопасным сайтом, пытающимся использовать очень слабый шифр "экспортного класса". Использование этих шифров в наши дни не поощряется, и я лично перестану использовать сайт, пытающийся использовать такой слабый шифр.

Ответ 8

У меня была такая же проблема; для решения было достаточно, чтобы включить все схемы SSL в "about: config". Я нашел их путем фильтрации с помощью ssl. Сначала я включил все опции для того, чтобы отключить ненужные.

Ответ 9

"Сообщение об ошибке: ssl_error_no_cypher_overlap" после входа в систему, когда ожидается экран приветствия - с помощью браузера Firefox

Решение

Включить поддержку 40-битного шифрования RSA в браузере Firefox: 1: введите "about: config" в адресной строке браузера 2: найти/выбрать "security.ssl3.rsa_rc4_40_md5" 3: установить значение boolean в значение TRUE

Ответ 10

Что сработало для меня, я:

  • Отправлено: config.
  • В окне поиска введите "безопасность".
  • Установите все возвращенные записи по умолчанию.
  • В поле поиска введите "ssl".
  • Задайте все возвращенные результаты по умолчанию.
  • Включено ssl2.
  • Отключено ssl3.
  • Перезагруженный Firefox.

Примечание о перезапуске Firefox: когда я запустил его очень скоро после его закрытия, у него часто возникает проблема с доступом к файлу, для чего мне требуется удалить places.sqlite и places.sqlite-journal в C:\WINDOWS\Application Data\Mozilla\Firefox\Profiles\n18091xv.default. Это заставляет меня потерять мою историю, плюс закладки должны быть восстанавливается из резервной копии каждый раз, когда это происходит. Я жду от пяти до десяти минут или больше, чтобы избежать этих хлопот.

Запуск Firefox v3.5.1 на WinMe

Ответ 11

"Код ошибки: ssl_error_no_cypher_overlap" после входа в систему, когда ожидается экран приветствия - с помощью браузера Firefox Решение 1: введите "about: config" в адресной строке браузера 2: найти/выбрать "security.ssl3.rsa_rc4_40_md5" 3: установить значение boolean в значение TRUE