Ubuntu

Letsencrypt 帶有 NFS 的萬用字元證書。在18.04在18.04U 18.04

  • February 18, 2020

我目前正在嘗試與 NFS 共享和使用來自letsencrypt 的萬用字元證書,但是應該使用它的伺服器不能這樣做。

對於我的設置:我有 3 個 VM(將來可能是 4 個)正在執行。一種是反向代理,它接收所有 http 和 https 流量並將它們重定向到我的郵件伺服器和我的 Kanboard。我的郵件伺服器與 iRedMail 一起執行。

我的問題是我無法在 Kanboard 和 iRedMail 伺服器上部署證書。Kanboard (APACHE2) 告訴我:

SSLCertificateFile: file '/mnt/letsencrypt/live/domain.com/fullchain.pem' does not exist or is empty

和 iRedMail (NGINX) 這個:

nginx: [emerg] BIO_new_file("/etc/ssl/certs/iRedMail.crt") failed (SSL: error:0200100D:system library:fopen:Permission denied:fopen('/etc/ssl/certs/iRedMail.crt'

因為我不希望這篇文章拖得太久,所以我用我的配置和我所做的事情創建了一些 pastebins。 Reverse-proxyiRedMailKanboard:所有這些都可以在 6 個月內訪問。

domain.com 的 HTTPS 訪問(意思是反向代理)沒有問題。

*sudo ls -l /etc/letsencrypt/*的輸出(實時)

drwxrwxrwx 3 administrator root 4096 Feb 13 16:25 live

所有 3 台伺服器都執行 Ubuntu 1804 伺服器,並且使用者“管理員”使用相同的憑據。

如果您需要更多資訊,請隨時詢問。 編輯

  1. namei -lx /path/to/private/key 的輸出

因為列表中的守護程序以 root 身份執行(郵件和 Web 在埠 <1024 上偵聽)並且這些守護程序嘗試從 NFS 讀取,所以它們會遇到問題,因為通常 NFS 共享是在沒有選項 no_root_squash 的情況下完成的。這個想法是 NFS 將本地(在客戶端)root 使用者映射為 ID 不為 0 的匿名使用者。本地 root 使用者將無法訪問 NFS 共享文件和目錄,並且僅限 root 權限。因此,OP 可以使用兩種方式解決此問題:

  1. 更改文件和目錄的權限,以便世界可以讀取文件。

或者

  1. 將 no_root_squash 添加到 NFS 共享(並重新啟動 NFS 伺服器)

引用自:https://unix.stackexchange.com/questions/568034