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

Quarkus非响应式JDBC配合Panache+Agroal配置Postgres SSL连接方法

Quarkus 非响应式PostgreSQL SSL连接(三类证书)配置方案

完全可以实现该需求,Agroal连接池对接的是标准PostgreSQL JDBC驱动,原生支持服务端证书、客户端证书、客户端密钥三类SSL参数配置,无需依赖响应式客户端。


前置准备

将你获取到的三类证书文件放入项目src/main/resources目录,建议提前将客户端私钥转换为JDBC驱动兼容的PKCS8格式,转换命令如下:

openssl pkcs8 -topk8 -inform PEM -in 原始客户端密钥文件名.pem -out client.pk8 -nocrypt

如果需要给客户端密钥设置加密密码,去掉上述命令中的-nocrypt参数,后续配置中补充密钥密码即可。


核心配置(application.properties)

直接通过Agroal的额外JDBC属性透传PostgreSQL驱动的SSL参数即可:

# 基础数据源配置
quarkus.datasource.db-kind=postgresql
quarkus.datasource.username=<数据库用户名>
quarkus.datasource.password=<数据库密码>
# JDBC连接地址开启SSL
quarkus.datasource.jdbc.url=jdbc:postgresql://<数据库地址>:<端口>/<数据库名>?ssl=true
# SSL三类证书配置
quarkus.datasource.jdbc.additional-jdbc-properties.sslrootcert=server.crt
quarkus.datasource.jdbc.additional-jdbc-properties.sslcert=client.crt
quarkus.datasource.jdbc.additional-jdbc-properties.sslkey=client.pk8
# 可选配置:生产环境开启服务端域名校验,避免中间人攻击
quarkus.datasource.jdbc.additional-jdbc-properties.sslmode=verify-full
# 可选配置:如果客户端密钥设置了加密密码,补充该配置
quarkus.datasource.jdbc.additional-jdbc-properties.sslpassword=<客户端密钥密码>

验证说明

  • 上述配置完成后,Panache ORM无需做任何额外调整,会自动使用配置好的Agroal数据源发起SSL加密的数据库请求
  • 证书路径如果放在项目外部,可直接填写文件系统绝对路径

内容的提问来源于stack exchange,提问作者N. Silviu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 00:36:02