Назад | Перейти на главную страницу

почему postgres жалуется на "ca md too weak" при соединении с ssl

Я пытаюсь настроить сервер postgres (версия 10.4) только с доступом openssl. Я создал самоподписанный CA и необходимые закрытые и открытые ключи для пользователя и сервера с easyrsa версии 3, как описано Вот и поместите его в каталоги, как указано Вот. Впоследствии я добавил эту строку

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, вам нужно будет отредактировать ее самостоятельно.