npgsql подключается к AWS RDS PostgreSQL с помощью SSL

Драйвер npgsql поддерживает следующий параметр sslrootcert=<<certname>>? этот параметр не учитывается в строке подключения, так как не имеет никакого эффекта. Я импортировал сертификат на веб-сервер и обновленную строку подключения.


person varun7447    schedule 19.11.2018    source источник


Ответы (1)


Npgsql в настоящее время не позволяет указывать сертификат через строку подключения, вам необходимо предоставить сертификат программно , как описано в документации. Уже отслеживается проблема с указанием сертификата через строку подключения.

Кстати, вы видели документацию, в которой говорилось, что вы можете использовать sslrootcert=<<certname>> где угодно с Npgsql?

person Shay Rojansky    schedule 20.11.2018
comment
Я не вижу документации по sslrootcert ни в одной документации npgsql. Я использую npgsql и AWS RDS postgres. Одно из моих требований - использовать SSL, и документ AWS postgres имеет sslrootcert в качестве параметра psql -h testpg.cdhmuqifdpib.us-east-1.rds.amazonaws.com -p 5432 \ "dbname=testpg user=testuser sslrootcert=rds-ca-2015-root.pem sslmode=verify-full" - person varun7447; 20.11.2018
comment
Параметры psql нельзя использовать в Npgsql как есть - это два разных клиента. Как я уже писал выше, вы можете использовать SSL с Npgsql, но вам нужно указать сертификат программно. - person Shay Rojansky; 20.11.2018
comment
Да, я знаю, что это два разных клиента, но мне интересно, достаточно ли я использую sslmode для подключения к AWS RDS postgresql с помощью npgsql или нужен ли sslrootcert для rds - person varun7447; 20.11.2018
comment
RDS - это просто PostgreSQL, в этом нет ничего особенного. Кроме того, указание сертификата корневого ЦС необходимо только для проверки сертификата сервера, когда он подписан нестандартным ЦС - обычно это не требуется. Клиенты обычно просто должны предоставить свой собственный сертификат для аутентификации на сервере. Подробнее обо всем этом вы можете прочитать в документации PostgreSQL. - person Shay Rojansky; 21.11.2018
comment
Согласно документу AWS, корневой сертификат предоставляется AWS. docs.aws.amazon.com/ AmazonRDS / latest / UserGuide / есть флаг для передачи корневого сертификата. возможно, когда мы импортируем сертификат на сервер приложений, этот параметр sslrootcert не требуется. - person varun7447; 21.11.2018
comment
Правильно - если вы импортируете сертификат в доверенное корневое хранилище вашего сервера приложений, это, вероятно, лучший способ. Вы также можете указать Trust Server Certificate=true, чтобы полностью обойти проверку сертификата сервера, но это менее безопасно и не идеально. В противном случае вы можете предоставить RemoteCertificateValidationCallback в NpgsqlConnection, см. stackoverflow.com/questions/7695438/ для получения дополнительных сведений. - person Shay Rojansky; 21.11.2018