Ubuntu
Ubuntu 10.04.4 LTS - cURL SSL 證書權限被拒絕
經過廣泛的搜尋,我還沒有找到這個問題的文件。突然,可能是在軟體更新(?)之後,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 的符號連結,而 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 的執行。有誰知道原因,更重要的是,一個安全可靠的解決方案?
這個文件沒有理由不被世界閱讀。它不是您的系統獨有的任何東西,並且包含在預設安裝中:http ://packages.ubuntu.com/lucid/all/ca-certificates/filelist
一般來說,我認為 /usr/share/ 下的任何內容都可能是世界可讀的(因為它在“share”下)。
現在為什麼這個文件在你的系統上不是世界可讀的是真正的問題。大概是個bug。
唔。在我的 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
您的安裝似乎有問題,或者以前的管理員出於不明原因更改了所有權/權限。