跳转到主要内容

libx509pq

通过 OpenSSL 解析与检查 X.509 证书

概览

扩展包名版本分类许可证语言
libx509pq1.3SECGPL-3.0-or-laterC
ID扩展名BinLibLoadCreateTrustReloc模式
7420libx509pq否是否是否是-

Requires OpenSSL 1.1.1+; GPL-3.0-or-later is explicit in source headers. EL9 default crypto policy rejects a legacy SHA-1 test fixture; SHA-256 verification passed without changing policy.

版本

类型仓库版本PG 大版本包名依赖
EXTPIGSTY1.31817161514libx509pq-
RPMPIGSTY1.31817161514libx509pq_$vopenssl-libs
DEBPIGSTY1.31817161514postgresql-$v-libx509pq-
OS / PGPG18PG17PG16PG15PG14
el8.x86_64
el8.aarch64
el9.x86_64
el9.aarch64
el10.x86_64
el10.aarch64
d12.x86_64
PIGSTY 1.3
PIGSTY 1.3
PIGSTY 1.3
PIGSTY 1.3
PIGSTY 1.3
d12.aarch64
PIGSTY 1.3
PIGSTY 1.3
PIGSTY 1.3
PIGSTY 1.3
PIGSTY 1.3
d13.x86_64
PIGSTY 1.3
PIGSTY 1.3
PIGSTY 1.3
PIGSTY 1.3
PIGSTY 1.3
d13.aarch64
PIGSTY 1.3
PIGSTY 1.3
PIGSTY 1.3
PIGSTY 1.3
PIGSTY 1.3
u22.x86_64
PIGSTY 1.3
PIGSTY 1.3
PIGSTY 1.3
PIGSTY 1.3
PIGSTY 1.3
u22.aarch64
PIGSTY 1.3
PIGSTY 1.3
PIGSTY 1.3
PIGSTY 1.3
PIGSTY 1.3
u24.x86_64
PIGSTY 1.3
PIGSTY 1.3
PIGSTY 1.3
PIGSTY 1.3
PIGSTY 1.3
u24.aarch64
PIGSTY 1.3
PIGSTY 1.3
PIGSTY 1.3
PIGSTY 1.3
PIGSTY 1.3
u26.x86_64
PIGSTY 1.3
PIGSTY 1.3
PIGSTY 1.3
PIGSTY 1.3
PIGSTY 1.3
u26.aarch64
PIGSTY 1.3
PIGSTY 1.3
PIGSTY 1.3
PIGSTY 1.3
PIGSTY 1.3

构建

您可以使用 pig build 命令构建 libx509pq 扩展的 RPM / DEB 包:

pig build pkg libx509pq         # 构建 RPM / DEB 包

安装

您可以直接安装 libx509pq 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:

pig repo add pgsql -u          # 添加仓库并更新缓存

使用 pig 或者是 apt/yum/dnf 安装扩展:

安装
pig install libx509pq;          # 当前活跃 PG 版本安装
pig
pig ext install -y libx509pq -v 18  # PG 18
pig ext install -y libx509pq -v 17  # PG 17
pig ext install -y libx509pq -v 16  # PG 16
pig ext install -y libx509pq -v 15  # PG 15
pig ext install -y libx509pq -v 14  # PG 14
dnf
dnf install -y libx509pq_18       # PG 18
dnf install -y libx509pq_17       # PG 17
dnf install -y libx509pq_16       # PG 16
dnf install -y libx509pq_15       # PG 15
dnf install -y libx509pq_14       # PG 14
apt
apt install -y postgresql-18-libx509pq   # PG 18
apt install -y postgresql-17-libx509pq   # PG 17
apt install -y postgresql-16-libx509pq   # PG 16
apt install -y postgresql-15-libx509pq   # PG 15
apt install -y postgresql-14-libx509pq   # PG 14

创建扩展:

CREATE EXTENSION libx509pq;

用法

来源:

libx509pq 向 SQL 暴露 OpenSSL X.509 证书解析。它接收 DER bytea 证书,并提取主题、签发者、有效期、序列号、密钥与签名信息、扩展、备用名称、指纹等字段。

CREATE EXTENSION libx509pq;
SELECT x509_commonName(der),
       x509_issuerName(der),
       x509_notBefore(der),
       x509_notAfter(der),
       x509_keyAlgorithm(der),
       x509_keySize(der)
FROM certificate_store;

提取多个基础字段时,x509_basic_info(der) 可避免重复解析同一证书。其他 API 可枚举扩展与名称、提取公钥、识别部分弱密钥模式,并用指定密钥验证单个证书签名。

解析或签名验证并不等于完整 PKIX 路径验证:它本身不能建立信任、主机名有效性、吊销状态、策略或当前可接受性。畸形 DER 会进入原生 OpenSSL 代码,应限制输入大小,用不可信语料做模糊和回归测试,并及时修补 PostgreSQL 与 OpenSSL。构建和运行时应固定 OpenSSL ABI,审计错误哨兵与空值语义,限制高开销函数,并基准批量解析。

这个页面对您有帮助吗?