簡體   English   中英

您可以在沒有正確 FQDN 的情況下生成 Let's Encrypt 證書嗎?是否有解決方法

[英]Can you generate a Let's Encrypt certificate without a proper FQDN and is there a workaround

我的azure VM是別人生成的。 它變得很重要。 我需要為數據庫 SSL 創建服務器證書。我將 certbot 與 letsencrypt 一起使用,如下所示:

https://www.vultr.com/docs/use-ssl-encryption-with-postgresql-on-ubuntu-20-04/

我在這一步中脫穎而出:

sudo certbot certonly --standalone -d zz-ubuntu1

Account registered.
Requesting a certificate for zz-ubuntu1
An unexpected error occurred:
Error creating new order :: Cannot issue for "zz-ubuntu1": Domain name needs at least one dot

所以,我沒有輸入域名,因為似乎沒有。

主機文件未受影響:

127.0.0.1 localhost

# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

似乎根本沒有關於域名的內容:

root@zz-ubuntu1:~/tmp_certbot_key# hostname -f
ZZ-UBUNTU1

為了讓 certbot 按照說明生成 CA 證書,我相信我需要給它一個 FQDN,但也許我可以做一些虛擬條目或軟糖......?

我無法訪問 azure 門戶。 我確實有根。

有誰知道我是否可以采取任何步驟來生成證書? 最好不要對那里的獨立 Postgres 數據庫造成任何損害。

Let's encrypt 是一種獲取公開簽名證書的方法。 這意味着證書簽名機構必須有某種方法來驗證證書簽名請求中的域是否可以與該請求相關聯。 通常,這是通過添加公共 DNS CNAME 或 TXT 記錄以及“證明”您擁有該域的內容,或者通過將內容添加到域上的 web 端點來完成的,這可以獲得與您擁有該域相同的證據。

作為一個不合格的主機名,沒有人擁有ZZ-UBUNTU1 它只是一個字符串標識符。 您無法獲得此名稱的公共證書,因為在簽名之前無法驗證它。

您可以執行以下操作:

  • 您可以使用非公共 CA 密鑰簽署證書。 將 CA 密鑰保存在安全的地方,將 CA 證書提供給客戶端,並將簽名的證書和密鑰提供給 postgres 服務器。 公眾不會信任證書,但無論如何他們都不會連接到 postgres 服務器。 如果 CA 密鑰是安全的,那么它在密碼學上與公開簽名的證書一樣安全。 如果證書不需要由公眾驗證,這只是一個合適的解決方案,公眾沒有理由信任您的 CA 證書。

  • 作為類似的替代方案,您可以使用自簽名證書。 這意味着與證書關聯的密鑰也是用於簽署 CSR 的密鑰,因此 CA 密鑰材料和服務器密鑰材料是相同的。 然后,您可以在客戶端配置中將自簽名證書指定為ca-cert ,以便驗證密鑰。 這也僅對私人使用的證書有效,因為公眾無法驗證真實性。

  • 您可以在您的組織控制的域下使用 FQDN。 您的組織必須允許您更新 DNS 或處理公共 http 對 FQDN 的請求,以便您可以提供所有權證明。 例如,如果您有example.com ,您可以獲得db.internal.example.com的公開簽名證書。 然后,您可以將db.internal.example.com定義為 127.0.0.1 或 /etc/hosts 中的任何 IP。 您應該知道,可以在證書透明度日志中發現任何帶有公開簽名證書的 FQDN。 此外,出於安全考慮,公共 DNS 可能無法可靠地解析為 127.0.0.1 或其他私有地址,但這在 home.networks 上比在 azure 中更有可能。

Let's Encrypt 證書有效期為 90 天。 文章說重啟 postgres 以獲取新證書,但這種粗暴的方法會在重啟時中斷 postgresql 服務。 從前一段時間的 postgres 10 開始,可以重新加載 ssl 證書,而無需重新啟動服務器或中斷現有客戶端。 因此,如果您最終使用 let's encrypt,而不是每 10 天重新啟動您的數據庫服務器並導致中斷,而是發出重新加載。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM