Ubuntu 10.04.4 LTS - отказано в разрешении SSL-сертификата cURL
После долгих поисков я не нашел документации по этой проблеме. Внезапно, возможно, после обновления программного обеспечения (?), CURL не может установить SSL-соединения с этой ошибкой:
curl: (35) error:0200100D:system library:fopen:Permission denied
С помощью strace я обнаружил, что он пытается открыть сертификат SSL, в котором отказано:
open ("/ etc / ssl / certs / 3c58f906.0", O_RDONLY | O_LARGEFILE) = -1 EACCES (разрешение отклонено)
Этот сертификат является символической ссылкой, которая указывает на AddTrust_External_Root.pem, которая, в свою очередь, является символической ссылкой на /usr/share/ca-certificates/mozilla/AddTrust_External_Root.crt. Разрешения таковы, что мой пользователь не имеет доступа к нему:
ls -l /usr/share/ca-certificates/mozilla/AddTrust_External_Root.crt
-rw-r----- 1 root ssl-cert 1521 2011-09-01 18:48 /usr/share/ca-certificates/mozilla/AddTrust_External_Root.crt
Вероятно, есть причина, по которой этот файл не доступен для чтения во всем мире, но он мешает работе cURL. Кто-нибудь знает причину и, что более важно, безопасное и надежное решение?
2 ответа
Нет никаких причин для того, чтобы этот файл не был доступен для чтения. Это не является чем-то уникальным для вашей системы и включено в установку по умолчанию: http://packages.ubuntu.com/lucid/all/ca-certificates/filelist
Вообще, я думаю, что что-либо в / usr / share / может быть доступно для чтения всем пользователям (так как это в разделе "share").
Теперь, почему этот файл не доступен для чтения в вашей системе, это реальный вопрос. Ошибка наверное.
Хм. На моей установке Lucid читается весь мир:
$ ls -l /usr/share/ca-certificates/mozilla/AddTrust_External_Root.crt
-rw-r--r-- 1 root root 1521 2011-09-01 16:48 /usr/share/ca-certificates/mozilla/AddTrust_External_Root.crt
Похоже, что-то не так с вашей установкой, или предыдущий администратор изменил владельца / разрешения по неясным причинам.