Назад | Перейти на главную страницу

Ошибка сертификата SSL при подключении к github.com

Начиная с сегодняшнего дня (или в течение последних нескольких дней) я столкнулся с ошибкой SSL при попытке подключиться к github.com (например, для клонирования репозитория).

Это устаревший сервер с Red Hat 4.1.2-33.

Вот как это выглядит, когда я пытаюсь подключиться:

$ curl https://www.github.com --verbose
* About to connect() to www.github.com port 443 (#0)
*   Trying 192.30.252.130... connected
* Connected to www.github.com (192.30.252.130) port 443 (#0)
*   CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: none
* NSS error -12286
* Closing connection #0
* SSL connect error
curl: (35) SSL connect error

Я могу видеть из эта страница что код ошибки NSS:

«Невозможно безопасно связаться с одноранговым узлом: нет общих алгоритмов шифрования».

Локальные и удаленные системы не имеют общих наборов шифров. Это может быть связано с неправильной конфигурацией на любом конце. Это может быть связано с неправильной конфигурацией сервера для использования сертификата, отличного от RSA, с алгоритмом обмена ключами RSA.

Если я все правильно изложу, похоже, что на github.com есть недавно обновленный сертификат SSL, а на моем сервере нет совместимого с ним набора шифров. Это устаревший сервер, поэтому я не удивлен.

я пробовал yum update nss (поскольку это, похоже, использует завиток), а также yum update openssl но ни один из этих пакетов не обновился.

Я также пробовал следовать схеме процедуры Вот но безрезультатно.

Я как бы наткнулся на стену со своими знаниями о том, как работают рукопожатия TLS, чтобы даже устранить эту проблему гораздо глубже. Есть ли у кого-нибудь хорошие идеи о том, как начать копать глубже и выяснить, что идет не так и где мне нужно что-то обновить? Обновление ОС пока что не вариант.

Обновить

Если копать дальше, это похоже на проблему с libcurl и шифром, который он использует при подключении к github.com через git. я жестяная банка заставить curl работать, если я явно укажу совместимый шифр:

$ curl https://github.com --cipher rsa_aes_128_sha

И я даже могу добавить --cipher rsa_aes_128_sha в файл .curlrc, и curl использует этот шифр по умолчанию. К сожалению, команда git, похоже, не подхватила это, так что это ни к чему не привело ... и я не смог найти альтернативный способ указать шифр. Вот что получается в результате многословного git pull выглядит как в репозитории github.com:

$ GIT_CURL_VERBOSE=1 git pull
* Couldn't find host github.com in the .netrc file, using defaults
* About to connect() to github.com port 443 (#0)
*   Trying 192.30.252.129... * Connected to github.com (192.30.252.129) port 443 (#0)
*   CAfile: /root/certs/cacert.pem
  CApath: none
* NSS error -12286
* Expire cleared
* Closing connection #0
* Couldn't find host github.com in the .netrc file, using defaults
* About to connect() to github.com port 443 (#0)
*   Trying 192.30.252.129... * Connected to github.com (192.30.252.129) port 443 (#0)
*   CAfile: /root/certs/cacert.pem
  CApath: none
* NSS error -12286
* Expire cleared
* Closing connection #0
error: SSL connect error while accessing https://github.com/twbs/bootstrap.git/info/refs
fatal: HTTP request failed

Это может быть тупик ... похоже, этот парень из StackOverflow столкнулся с точно такая же проблема.

Сегодняшняя конфигурация SSL / TLS обусловлена ​​соображениями безопасности, которые возникли за последние пару лет, такими как атаки BEAST и CRIME, а также слабость RC4, что в некоторых случаях приведет к тому, что некоторые старые клиенты не смогут чтобы общаться, поскольку они не поддерживают более современные протоколы, наборы шифров и т. д. Даже клиенты RHEL 5 иногда бывают проблемы связь с серверами RHEL 6 через SSL / TLS. Приложив некоторую работу, вы можете вручную указать набор шифров для использования, но это маловероятно с чем-то таким же старым, как RHEL4. Такое положение вещей делает обновление вашего только реальный вариант.

... прежде, чем вы собираетесь биться о стену и все такое) проверьте дату / время:

[alexus@wcmisdlin02 ~]$ sudo ntpdate time.apple.com
 2 Jan 16:33:44 ntpdate[6883]: adjust time server 17.171.4.35 offset 0.000416 sec
[alexus@wcmisdlin02 ~]$ 

Возможно, это не ваша проблема, но у меня были проблемы в неподходящее время, SSL не работал у меня.

Думаю, это может быть то, что вы ищете:

https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/PKCS11/Module_Specs

В нем есть объяснения настроек, я думаю, вам нужно заставить его работать по умолчанию (без указания в командной строке).

Имя файла в моей системе CentOS 6.8 - /etc/pki/nssdb/pkcs11.txt