You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求提供通过OpenSSL与Progress DataDirect Linux ODBC驱动连接PostgreSQL的完整配置示例

请求提供通过OpenSSL与Progress DataDirect Linux ODBC驱动连接PostgreSQL的完整配置示例

看起来你已经把PostgreSQL容器的SSL证书和基础配置搞定了,接下来咱们一步步把客户端的ODBC配置调整好,实现加密连接。

第一步:准备客户端证书文件

你在服务器端生成的fd.crt证书需要复制到客户端机器上,找一个安全的目录存放,比如/home/tjcw/ODBC/ssl/:

# 创建目录(如果不存在)
mkdir -p /home/tjcw/ODBC/ssl
# 复制服务器的fd.crt到这个目录(可通过scp等方式传输)
# scp <服务器地址>:/path/to/fd.crt /home/tjcw/ODBC/ssl/
# 设置安全权限,仅当前用户可读
chmod 400 /home/tjcw/ODBC/ssl/fd.crt

第二步:配置ODBC数据源

推荐单独使用/etc/odbc.ini来配置加密的数据源(文件不存在则新建),添加以下内容:

[ODBC Data Sources]
PostgreSQL_SSL=DataDirect 8.0 PostgreSQL SSL

[PostgreSQL_SSL]
Description     = 加密连接的PostgreSQL ODBC数据源
Driver          = /home/tjcw/ODBC/drivers/lib/UKpsql95.so
HostName=localhost
PortNumber=5432
Database=acedb
# 开启SSL加密开关
SSL=1
# 指定服务器证书路径,用于验证服务器身份
SSLServerCert=/home/tjcw/ODBC/ssl/fd.crt
# 强制验证服务器证书(可选但强烈推荐,防范中间人攻击)
SSLVerifyServerCert=1
# 可提前配置数据库用户名,也可在连接时输入
# UserName=your_db_user

如果你习惯在/etc/odbcinst.ini里配置,也可以把上述PostgreSQL_SSL段的内容整合进去,不过分开管理驱动和数据源会更清晰。

第三步:确保PostgreSQL容器允许SSL连接

你当前的Dockerfile还未配置pg_hba.conf来放行SSL连接,需要在init-user-db.sh中添加一行规则:

# 允许所有客户端通过SSL连接(可根据实际需求调整IP范围)
echo "hostssl all all 0.0.0.0/0 scram-sha-256" >> /var/lib/postgresql/data/pg_hba.conf

之后重新构建容器,PostgreSQL才会接受加密的客户端连接请求。

第四步:测试连接

用unixODBC的isql工具验证连接是否成功:

isql -v PostgreSQL_SSL <你的数据库用户名> <你的数据库密码>

如果连接失败,可检查以下几点:

  • 证书路径是否正确、权限是否为400
  • PostgreSQL容器的5432端口是否正确映射到客户端的localhost
  • pg_hba.conf的hostssl规则是否配置正确
  • 服务器postgresql.conf中的ssl参数是否已设为on

备注:内容来源于stack exchange,提问作者Chris Ward

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 13:33:04