Ошибка 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 и создайте новый сертификат.
-
Загруженный сертификат 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 middle -file gdig2.crt -keystore tpsynergy.keystore
keytool -import -trustcacerts -alias tomcat -file yourdomainfile.crt -keystore tpsynergy.keystore
-
Убедитесь, что файл server.xml в папке conf имеет эту запись
-
Перезапустите 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