是否可以在AWS ELB终止SSL以使Postgres服务器前置,从而使以下命令成功?
PGSSLMODE=verify-full \
PGSSLROOTCERT=/path/to/go-daddy-root-ca.pem \
PGCONNECT_TIMEOUT=5 \
psql -h my-postgres.example.com -p 5432 -U test_username test-database -c 'select 1';如果我用以下参数在Postgres服务上设置了ssl证书和密钥,我就可以在负载均衡器上使用TCP协议,在实例协议上使用TCP:
-c
ssl=on
-c
ssl_cert_file=/var/lib/postgresql/my-postgres.example.com.crt
-c
ssl_key_file=/var/lib/postgresql/my-postgres.example.com.key但是,如果可能的话,我希望在负载均衡器级别处理SSL,这样就不会将证书和密钥传递到运行postgres服务的实例中。我已经尝试了以下ELB配置:
LB协议、实例协议、Postres SSL、成功/失败
TCP、TCP、on、成功
SSL、TCP、on、故障
TCP、SSL、on、故障
SSL、SSL、on、故障
SSL、TCP、关闭、故障
失败消息如下:
psql: error: could not connect to server: server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.也许NLB可以工作,也许在Postgres服务级别端到端终止SSL是verify-full成功的唯一方法?
如果对另一种方法有帮助,postgres将在EKS集群中运行。
感谢您提供的任何信息!
发布于 2020-12-06 01:14:22
我们在RDS postgres数据库前面使用NLB。不幸的是,它只是在没有SSL终止的情况下“代理”请求- NLB是在TCP端口5432上配置的。你有没有看过相对较新的AWS RDS proxy -根据文档,它应该能够做SSL终止,我不确定的是,你是否可以使用它而不使用RDS。当然,另一种方法是使用此解决方案的所有优点和缺点自行设置此代理。
https://stackoverflow.com/questions/64326627
复制相似问题