Hasura使用SSL证书进行Postgres连接

时间:2019-08-08 20:30:35

标签: 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"

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

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

我应该怎么做?

1 个答案:

答案 0 :(得分:0)

您需要将证书挂载到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