Firefox "ssl_error_no_cypher_overlap" ошибка - PullRequest
17 голосов
/ 13 февраля 2009

У меня и моих коллег возникли проблемы с использованием 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 ... но почему?

Основываясь на некоторых поисках в Google, мы попробовали следующее, но безуспешно:

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

  • включение SSL2

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

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

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

Есть идеи?

Ответы [ 11 ]

7 голосов
/ 07 декабря 2014

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

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

  1. На том же сервере, где будет установлен сертификат, создайте 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 промежуточный -file gdig2.crt -keystore tpsynergy.keystore

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

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

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

5 голосов
/ 24 августа 2009

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

3 голосов
/ 29 августа 2009

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

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

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

1 голос
/ 02 октября 2015

У меня были похожие проблемы с просмотром защищенных сайтов (https://) при использовании Отрыжка (или, по крайней мере, проблема, которая привела бы вас к этой странице при поиске в Google):

  • ssl_error_no_cypher_overlap в Firefox
  • ERR_SSL_VERSION_OR_CIPHER_MISMATCH в Chrome

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

0 голосов
/ 27 декабря 2014

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

  1. Пошел примерно: конфиг.
  2. В поле поиска введите "security".
  3. Установить для всех возвращаемых записей значения по умолчанию.
  4. Введите "ssl" в поле поиска.
  5. Установить для всех возвращаемых результатов значения по умолчанию.
  6. Включено ssl2.
  7. Отключено ssl3.
  8. Перезапущенный Firefox.

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

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

0 голосов
/ 22 октября 2014

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

0 голосов
/ 22 октября 2014

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

Решение

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

0 голосов
/ 03 октября 2010

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

0 голосов
/ 01 сентября 2009

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

0 голосов
/ 25 августа 2009

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

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

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

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

Материал java / tomcat выглядит как красная сельдь, поскольку, если я не понял вашего описания, ничего из этого не относится к рукопожатию / протоколу SSL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...