Kong 0.10.x 和 datastore postgresql-9.6 之间无法建立 SSL/TLS 连接

我正在使用 Kong 10.x 和 datastore postgresql 9.6。 我想在 kong 和它的 datastore postgresql 之间建立 ssl 连接。 但我得到以下错误:

Postgresql 错误:

LOG:  could not accept SSL connection: tlsv1 alert unknown ca

Kong 的错误:

/usr/local/share/lua/5.1/kong/cmd/migrations.lua:34: [postgres error] could not retrieve current migrations: [postgres error] connection refused

以下是我的 Kong 和 Postgresql 配置:

Kong:

# Kong 配置文件
# DATASTORE
database = postgres
pg_host = 10.0.1.191
pg_port = 5432
pg_user = kong
pg_password = kong
pg_database = kong
pg_ssl = on
pg_ssl_verify = on

# DEVELOPMENT & MISCELLANEOUS
lua_ssl_trusted_certificate = /opt/postgres_ssl/postgresql.crt  # 证书的绝对路径

Postgresql:

pg_hba.conf:

hostssl all         all    10.0.1.191/32             md5 clientcert=1

postgresql.conf:

listen_addresses = '10.0.1.191'
ssl_cert_file = 'server.crt'
ssl_key_file = 'server.key'
ssl_ca_file = 'root.crt'

证书生成过程:

openssl genrsa -passout pass:mypass -des3 -out server.key 1024
openssl rsa -passin pass:mypass -in server.key -out server.key
chmod 400 server.key
openssl req -new -key server.key -days 3650 -out server.crt -x509 -subj '/C=IN/ST=Maharastra/L=Mumbai/O=Development/CN=10.0.1.191'
cp server.crt root.crt
openssl genrsa -passout pass:iotadmin -des3 -out postgresql.key 1024
openssl rsa -in postgresql.key -out postgresql.key -passin pass:mypass
openssl req -new -key postgresql.key -days 3650 -out postgresql.csr -subj '/C=IN/ST=Maharastra/L=Mumbai/O=Development/CN=kong'
openssl x509 -req -in postgresql.csr -CA root.crt -CAkey server.key -out postgresql.crt -CAcreateserial
点赞
用户1950957
用户1950957

错误消息显示Kong不信任签署数据库证书的CA。这并不让人感到惊讶,因为它只知道后者,而不知道CA的证书。

尝试使用根证书作为lua_ssl_trusted_certificate配置项,它应该可以工作:

lua_ssl_trusted_certificate = /path/to/your/root.crt
2018-03-09 17:12:11