配置pgpool 4.4.2使用scram-sha-256认证时遇AES加密不支持错误
针对你执行bin/pg_enc -m -k /export/home/postgres/.pgpoolkey -u pgpool -p时出现的"AES encryption is not supported by this build"错误,即便已经使用--with-openssl编译,可能的原因如下:
OpenSSL开发依赖未安装或版本不兼容
编译pgpool前必须安装OpenSSL的开发包(比如CentOS的openssl-devel、Ubuntu的libssl-dev),否则--with-openssl参数无法生效。此外,pgpool 4.4.2对OpenSSL版本有要求(需1.1.1及以上),如果系统安装的是旧版本(如1.0.2),即便指定参数也无法启用AES支持。编译时未正确检测到OpenSSL
若OpenSSL未安装在系统默认路径(如自定义编译安装的OpenSSL),需要在./configure时通过--with-openssl-dir指定具体路径,例如:./configure --with-openssl --with-openssl-dir=/usr/local/openssl编译前务必检查
./configure的输出日志,确认"OpenSSL support"项显示为yes,如果是no则说明OpenSSL检测失败,AES支持未启用。执行的pg_enc并非新编译的版本
可能你运行的pg_enc是系统预装的旧版本,而非自己编译的4.4.2版本。可以通过以下命令验证:which pg_enc pg_enc -V确认路径和版本是否与编译安装的一致,若不一致需调整环境变量或直接使用编译目录下的二进制文件执行。
编译后未完成安装步骤
编译完成后需执行make install将新编译的二进制文件和库文件安装到系统路径,否则即便编译成功,运行的还是旧版本的pgpool组件。密钥文件权限问题(次要排查点)
虽然报错核心是AES支持,但也需确保/export/home/postgres/.pgpoolkey文件的权限正确:仅postgres用户拥有读写权限(权限设为600),避免因权限不足导致密钥读取异常,进而触发后续加密逻辑报错。
内容的提问来源于stack exchange,提问作者scapy

