Ubuntu

Ubuntu 10.04.4 LTS - cURL SSL 證書權限被拒絕

  • April 7, 2014

經過廣泛的搜尋,我還沒有找到這個問題的文件。突然,可能是在軟體更新(?)之後,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

您的安裝似乎有問題,或者以前的管理員出於不明原因更改了所有權/權限。

引用自:https://serverfault.com/questions/411009