Ssl

讓我們加密 SSL 證書文件未找到錯誤,但仍然有效

  • December 9, 2020

我正在執行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 configtestopenssl上出現錯誤的任何想法?

多謝你們!

經過幾個不眠之夜,我終於開始工作了。*(矯枉過正的聲明)*我們都知道這是權限,但究竟在哪裡需要檢查。

我繼續使用**/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 -tapachectl configtest)。執行命令的使用者(我)根本沒有訪問證書的適當權限。我只需要在命令前面加上前綴就sudo可以以 root 身份執行它們!沒有更多錯誤,配置測試返回“語法 OK”,我可以重新啟動伺服器。(好吧,我有點尷尬,我花了這麼長時間才弄明白……)

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