记录使用pg_dump中遇到的ssl问题

问题描述

在使用pg_dump过程中遇到的两个问题:

  1. SSL connection is required. Please specify SSL options and retry.
  2. SSL error: unsafe legacy renegotiation disabled

SSL option问题

这是因为postgresql需要使用TLS/SSL connections,我们可以设置一个环境变量PGSSLMODErequired就可以了。

针对Linux或者Macos用户,使用:

1
export PGSSLMODE=require

针对Windows用户,使用:

1
SET PGSSLMODE=require

unsafe legacy renegotiation disabled

这是因为ssl协议存在一个漏洞,后来升级的时候提供了一个开关默认关闭这个了漏洞,这个解决方法存在一定安全隐患,请谨慎使用。

创建一个自定义的openssl.cnf,并写入:

1
2
3
4
5
6
7
8
9
10
openssl_conf = openssl_init

[openssl_init]
ssl_conf = ssl_sect

[ssl_sect]
system_default = system_default_sect

[system_default_sect]
Options = UnsafeLegacyRenegotiation

将该config文件的路径写入名为OPENSSL_CONF的环境变量:

1
export OPENSSL_CONF=/path/to/custom/openssl.cnf

参考资料

  1. Migrate your PostgreSQL database by using dump and restore
  2. SSL error unsafe legacy renegotiation disabled