Postgresql
為什麼postgres在連接ssl時抱怨“ca md太弱”
我正在嘗試設置僅具有 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
。如果您實際使用了
easyrsa
Easy-RSA 目前 3.x 版本附帶的腳本,那麼它已經在openssl*.cnf
隨附的文件中正確設置。如果您使用的是 2.x Easy-RSA 版本,那麼您需要自己進行編輯。