9.2. 管理 PostgreSQL Realm
要添加用户并关联到 EST Users 组,可以执行以下命令:
$ psql -U est -t -A -c "INSERT INTO users VALUES ('est-test-user', 'EST TEST USER', '<tomcat_digest>');" est $ psql -U est -t -A -c "INSERT INTO group_members VALUES ('EST Users', 'est-test-user');" est
注意
可以通过以下命令获取密码的 tomcat 摘要:
$ tomcat-digest <user_password>
9.2.1. TLS mutual 身份验证
以上配置允许使用 用户名/密码 进行客户端身份验证。在某些情况下,或 用于特定操作,如重新注册新证书,则需要使用客户端证书进行 mutual 身份验证。
域配置已经支持基于证书的身份验证,但为了验证用户,需要一些额外的信息。更加详细,用户条目必须包含包含一些证书详情和二进制证书 的描述。
描述 的格式有 < Version>;<Serial>;<Issuer>;<subject
>。version 是十六进制值(不包括 0x),串行是十进制和签发者,subject 是可分辨名称(DN)。DN 的格式是从更具体的属性到更常规的属性(注意:一些工具,如 OpenSSL,具有不同的顺序),用逗号分开。
这些信息存储在 user_certs 表中。例如,如果用户有以下值的证书:
$ openssl x509 -in cert.pem -subject -serial -issuer -text -noout |head -11 Certificate: Data: Version: 3 (0x2) Serial Number: 33:1c:9e:b7:9a:2d:cc:17:69:24:a2:81:4e:06:07:40 Signature Algorithm: sha256WithRSAEncryption Issuer: O=EXAMPLE, OU=pki-tomcat, CN=CA Signing Certificate Validity Not Before: Jan 16 11:31:11 2025 GMT Not After : Apr 16 11:31:11 2025 GMT Subject: CN=test.example.com
然后,上面定义的用户条目 est-test-user
需要在 user_certs 表中添加一个新条目,该表可以通过以下方式添加:
$ psql -U est -t -A -c "INSERT INTO user_certs VALUES ('est-test-user', '2;67939231264256858734977554404570695488;CN=CA Signing Certificate,OU=pki-tomcat,O=EXAMPLE;CN=test.example.com', pg_read_binary_file('/cert.der'));" est