Postgresql

為什麼postgres在連接ssl時抱怨“ca md太弱”

  • August 20, 2018

我正在嘗試設置僅具有 openssl 訪問權限的 postgres 伺服器(版本 10.4)。我為使用者和伺服器創建了一個自簽名 ca 以及必要的私鑰和公鑰,如這裡所述,並將其放在此處所述的目錄。之後我添加了這一行

hostssl  all  myname  192.168.0.0/16  cert

這里這裡pg_hba.conf描述的 但是當我嘗試連接到數據庫時

psql -h 192.168.0.222 "sslmode=verify-ca sslcert=myname.crt sslkey=myname.key"

彈出此錯誤消息

couldn't read certificate "myname.crt": ca md too weak

並在伺服器日誌中

couldn't accept SSL-connection: success

(也許這些消息不是字面上正確的,我是從德語翻譯過來的)

這很有趣,因為當我查看我的證書時

easyrsa show-cert myname

我看到以下幾行(以及更多):

Certificate: 
  Data: 
  Version: 3 (0x2) 
  Serial Number: 
      don't show it here
  Signature Algorithm: sha256WithRSAEncryption

我的根證書 ca.crt 和 postgres 伺服器的證書也是如此。所以很明顯,證書是用 sha256 方法而不是用 md 簽名

的同時我沒有更改任何配置。也許 openssl 或 postgresql 的一些更新介於兩者之間。

檢查openssl*.cnf您使用 Easy-RSA 的文件。在該[ CA_default ]部分中,有一個選項default_md應設置為sha256

如果您實際使用了easyrsaEasy-RSA 目前 3.x 版本附帶的腳本,那麼它已經在openssl*.cnf隨附的文件中正確設置。如果您使用的是 2.x Easy-RSA 版本,那麼您需要自己進行編輯。

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