postgresql - Hasura 使用 SSL 证书进行 Postgres 连接

标签 postgresql ssl hasura

我可以从 Docker 镜像运行 Hashura。

docker run -d -p 8080:8080 \
  -e HASURA_GRAPHQL_DATABASE_URL=postgres://username:password@hostname:port/dbname \
  -e HASURA_GRAPHQL_ENABLE_CONSOLE=true \
  hasura/graphql-engine:latest

但是我也有一个只能通过三个证书访问的 Postgres 实例:

psql "sslmode=verify-ca sslrootcert=server-ca.pem \
      sslcert=client-cert.pem sslkey=client-key.pem \
      hostaddr=$DB_HOST \
      port=$DB_PORT\
      user=$DB_USER dbname=$DB_NAME"

我没有看到允许我以这种方式连接到 Postgres 实例的 Hasura 配置。

这是我应该传递给数据库连接 URL 的东西吗?

我应该怎么做?

最佳答案

您需要将您的证书安装到 docker 容器中,然后配置 libpq(这是 hasura 在下面使用的)以将所需的证书与这些 environment variables 一起使用。 .它会是这样的(我还没有测试过):

docker run -d -p 8080:8080 \
  -v /absolute-path-of-certs-folder:/certs
  -e HASURA_GRAPHQL_DATABASE_URL=postgres://hostname:port/dbname \
  -e HASURA_GRAPHQL_ENABLE_CONSOLE=true \
  -e PGSSLMODE=verify-ca \
  -e PGSSLCERT=/certs/client-cert.pem \
  -e PGSSLKEY=/certs/client-key.pem \
  -e PGSSLROOTCERT=/certs/server-ca.pem \
  hasura/graphql-engine:latest

关于postgresql - Hasura 使用 SSL 证书进行 Postgres 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57420156/

相关文章:

graphql - Hasura 查询的工作方式类似于 SQL 内连接

sql - 为什么这个左外连接查询不能正常工作?

powershell - 为什么 Send-MailMessage 无法通过端口 587 使用 STARTTLS 发送

ios - 调用 iOS webview HTTPS(自签名证书)

javascript - 使用 Typescript 展平来自 Apollo/Hasura GraphQL 查询的结果

postgresql - 如何在 hasura 中针对特定模式执行 graphql 查询?

Django SELECT COUNT(*) as "__count"对于每个查询

sql - 如何从按索引存储数组元素的规范化表中获取数组?

sql - 为什么以下 SQL 查询不等价?

ssl - 如何将 ssl 与非 ssl 内容混合?