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