讓我們加密 SSL 證書文件未找到錯誤,但仍然有效
我正在執行Let’s Encrypt 的SSL 證書。我已經將它們安裝在執行 Apache 的 Ubuntu 機器上。設置工作正常,我可以啟動網站,查看綠色掛鎖,甚至在 SSL Labs 上獲得 A+。
問題是當我執行apachectl configtest時,伺服器會返回一個文件未找到錯誤:
SSLCertificateFile: file '/etc/letsencrypt/live/www.example.com/fullchain.pem' not exist or is empty.
但
sudo service apache2 restart
工作得很好。我在Let’s Encrypt Community遇到了這個問題,但問題尚未解決。
sudo cat /etc/letsencrypt/live/www.example.com/fullchain.pem
有效,返回有效的證書詳細資訊。sudo x509 -text -noout -in /etc/letsencrypt/live/www.example.com/fullchain.pem
不起作用並返回以下錯誤:
Error opening Certificate /etc/letsencrypt/live/www.example.com/fullchain.pem 139774254929568:error:02001002:system library:fopen:No such file or directory:bss_file.c:398:fopen('/etc/letsencrypt/live/www.example.com/fullchain.pem.','r') 139774254929568:error:2007402:BIO routines:FILE_CTRL:system lib:bss_file.c:400: ubable to load certificate
關於為什麼我在apachectl configtest和openssl上出現錯誤的任何想法?
多謝你們!
經過幾個不眠之夜,我終於開始工作了。*(矯枉過正的聲明)*我們都知道這是權限,但究竟在哪裡需要檢查。
我繼續使用**/ect/letsencrypt/live以及其下的目錄和文件。我不斷地將權限從原始更改為 0755 和 0777。我沒有立即看到的是/etc/letsencrypt/live** *是從 /etc/letsencrypt/archive 創建的連結,*並且它具有0700權限。這就是它無法讀取文件的原因。將/etc/letsencrypt/archive的權限更改為0755後,
apachectl configtest
已經響應Syntax OK
.雖然最初的問題已經解決,但我將把它重新送出給Let’s Encrypt,因為這都是證書的自動安裝。這樣的事情不應該發生在“自動”中。但是我的設置可能與權限問題有關,因為我使用非 root 使用者安裝它(但我做了 sudo)。
希望這可以幫助某人。
在我的情況下,文件和權限不是問題。我試圖重新啟動伺服器
apachectl restart
或測試配置(apachectl -t
或apachectl configtest
)。執行命令的使用者(我)根本沒有訪問證書的適當權限。我只需要在命令前面加上前綴就sudo
可以以 root 身份執行它們!沒有更多錯誤,配置測試返回“語法 OK”,我可以重新啟動伺服器。(好吧,我有點尷尬,我花了這麼長時間才弄明白……)