Проблемы разрешения с/etc/ssl/certs/ca-certificates.crt

При попытке к curl или git clone что-то по HTTPS как обычный пользователь, это перестало работать с ошибкой:

fatal: unable to access 'https://github.com/mikemackintosh/xxx/': Problem with the SSL CA cert (path? access rights?)

Примечание: Если я выполняю команды как корень, он хорошо работает, но корень не должен быть единственным пользователем, который в состоянии связываться по ssl.

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

$ GIT_CURL_VERBOSE=1 git clone https://github.com/mikemackintosh/xxx
Cloning into 'xxx'...
* Couldn't find host github.com in the .netrc file; using defaults
* Hostname was NOT found in DNS cache
*   Trying 192.30.252.130...
* Connected to github.com (192.30.252.130) port 443 (#0)
* error reading ca cert file /etc/ssl/certs/ca-certificates.crt (Error while reading file.)
* Closing connection 0
fatal: unable to access 'https://github.com/mikemackintosh/xxx/': Problem with the SSL CA cert (path? access rights?)

В результате мы можем подтвердить ca-certificate файл: /etc/ssl/certs/ca-certificates.crt который соответствует curl-config -ca вывод.

Следующий шаг должен попытаться считать файл. Как просто простой, некорневой пользователь:

$ cat /etc/ssl/certs/ca-certificates.crt
cat: /etc/ssl/certs/ca-certificates.crt: Permission denied

Теперь, когда кажется странным.

$ sudo ls -la /etc/ssl/certs/ca-certificates.crt
-rw-r--r-- 1 root root 273790 Jun 15 22:35 /etc/ssl/certs/ca-certificates.crt

$ sudo lsattr /etc/ssl/certs/ca-certificates.crt
-------------e-- /etc/ssl/certs/ca-certificates.crt

Так смотря на полномочия, это читаемо миром. Не должно быть никакой проблемы, получающей доступ к нему. Никакие сумасшедшие атрибуты, предотвращающие доступ.

выполнение ls -la /etc/ssl/certs/ возвраты:

...
l????????? ? ? ? ?            ? Verisign_Class_4_Public_Primary_Certification_Authority_-_G3.pem
l????????? ? ? ? ?            ? VeriSign_Universal_Root_Certification_Authority.pem
l????????? ? ? ? ?            ? Visa_eCommerce_Root.pem
l????????? ? ? ? ?            ? WellsSecure_Public_Root_Certificate_Authority.pem
l????????? ? ? ? ?            ? WoSign_China.pem
l????????? ? ? ? ?            ? WoSign.pem
...

Если я выполняю a sudo cat /etc/ssl/certs/ca-certificates.pem, это выкладывает содержание как ожидалось.

О, это - наверняка проблема полномочий.

Делая некоторый поиск с помощью Google, я нашел, что существует ssl-cert группа, но эта группа не имеет прав на /etc/ssl/certs каталог.

Исключенный apparmor, исключил дисковое повреждение, нет никакого улучшения, если я работаю update-ca-certificates (w/wo -f), и т.д.

Кто-либо видел это поведение?

Я никогда не видел ничего как это прежде, но я копировал его на двух отдельных машинах. Как примечание, я действительно происхожу из среды CentOS/RHEL, таким образом, это могло быть нормальным поведением Ubuntu, но я хотел бы узнать действительное решение.

3
задан 16 June 2015 в 07:24

4 ответа

Выполнить namei -mo /etc/ssl/certs/ca-certificates.crt. Сопоставьте его вывод со следующим:

f: /etc/ssl/certs/ca-certificates.crt
 drwxr-xr-x root root /
 drwxr-xr-x root root etc
 drwxr-xr-x root root ssl
 drwxr-xr-x root root certs
 -rw-r--r-- root root ca-certificates.crt

Вы можете использовать chmod и chown, чтобы вернуть все обратно к правильным настройкам:

  • sudo chown root / && chown root /etc/ && chown root /etc/ssl/ && chown root /etc/ssl/certs/ && chown root /etc/ssl/certs/ca-certificates.crt
  • sudo chmod 755 /
  • sudo chmod 755 /etc/
  • sudo chmod 755 /etc/ssl/
  • sudo chmod 755 /etc/ssl/certs
  • sudo chmod 644 /etc/ssl/certs/ca-certificates.crt
10
ответ дан 1 December 2019 в 12:56

Сегодня я встретился с той же проблемой. Вот то, что я сделал:

клон мерзавца GIT_CURL_VERBOSE=1 https://github.com/robbyrussell/oh-my-zsh.git

Это клонирует репозиторий в вихревом подробном режиме (завихрение вызывает проблему прямо сейчас)

, Вот то, что я получил

Cloning into 'oh-my-zsh'...
* Couldn't find host github.com in the .netrc file; using defaults
* Hostname was NOT found in DNS cache
*   Trying 192.30.252.131...
* Connected to github.com (192.30.252.131) port 443 (#0)
* error reading ca cert file /bin/curl-ca-bundle.crt (Error while reading file.)
* Closing connection 0
fatal: unable to access 'https://github.com/robbyrussell/oh-my-zsh.git/': Problem with the SSL CA cert (path? access rights?)

Примечание строка:

  • ошибка, читая приблизительно файл сертификата/bin/curl-ca-bundle.crt (Ошибка при чтении файла.)

у меня была проблема конфигурации в ~/.gitconfig [HTTP]->sslCAinfo раздел. У Вас не могло бы быть той же проблемы, но она даст Вам достаточно информации для отладки самостоятельно.

5
ответ дан 1 December 2019 в 12:56

В Unix проверяется весь путь, поэтому, на мой взгляд, вы должны проверить, есть ли у разрешений папки в пути, я думаю, они должны иметь как минимум rw-, не паникуйте, w не означает пишите, если говорите о папках ... Потому что если у вас есть /a/b/c/certificate.pem и вы не можете пройти "b", вы не можете пройти b: D

Надеюсь помогает:)

2
ответ дан 1 December 2019 в 12:56

Удостоверьтесь, что у Вас есть сертификаты CA, чтобы позволить основанным на SSL приложениям проверять на подлинность соединений SSL. Они могут быть установлены:

sudo apt-get install ca-certificates openssl

Это может отсутствовать особенно в контейнерах CI или Докере.

, Если у Вас есть он, рассмотрите переустановку его.

можно также попытаться работать: sudo update-ca-certificates.

Связанный:

0
ответ дан 1 December 2019 в 12:56

Другие вопросы по тегам:

Похожие вопросы: