1.6. 续订 TLS 证书
TLS 证书具有过期日期和时间。要持续提供安全连接,请在 Directory Server 过期前更新服务器证书。
1.6.1. 使用命令行续订 TLS 证书 复制链接链接已复制到粘贴板!
TLS 证书具有过期日期和时间。要持续提供安全连接,请在 Directory Server 过期前更新服务器证书。
在 TLS 服务器证书过期前按照以下步骤更新它。
前提条件
- 未配置属性加密。
- TLS 证书将在不久的将来过期。
流程
创建私钥和证书签名请求(CSR)。如果要使用外部实用程序创建它们,请跳过这一步。
如果您的主机只能通过一个名称访问,请输入:
dsctl <instance_name> tls generate-server-cert-csr -s "CN=server.example.com,O=example_organization"
# dsctl <instance_name> tls generate-server-cert-csr -s "CN=server.example.com,O=example_organization"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您的主机可以通过多个名称访问:
dsctl <instance_name> tls generate-server-cert-csr -s "CN=server.example.com,O=example_organization" server.example.com server.example.net
# dsctl <instance_name> tls generate-server-cert-csr -s "CN=server.example.com,O=example_organization" server.example.com server.example.netCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您将主机名指定为最后一个参数,命令将使用 DNS:server.example.
com、DNS:server.example.net条目将 Subject Alternative Name (SAN)扩展添加到 CSR。
在
-s subject参数中指定的字符串必须是根据 RFC 1485 的有效主题名称。主题中的CN字段是必需的,您必须将其设置为服务器的完全限定域名(FQDN)。命令会将 CSR 存储在/etc/dirsrv/slapd- <instance_name>/Server-Cert.csr文件中。- 将 CSR 提交到证书颁发机构(CA)以获取签发的证书。详情请查看您的 CA 文档。
-
将 CA 证书和服务器证书都存储在
/root/目录中。 使用以下选项之一将 CA 发布的服务器证书导入到 NSS 数据库:
如果您使用
dsctl tls generate-server-cert-csr命令创建私钥,请输入:dsconf -D "cn=Directory Manager" ldap://server.example.com security certificate add --file /root/instance_name.crt --name "server-cert" --primary-cert
# dsconf -D "cn=Directory Manager" ldap://server.example.com security certificate add --file /root/instance_name.crt --name "server-cert" --primary-certCopy to Clipboard Copied! Toggle word wrap Toggle overflow 记住您在 -name
_certificate_nickname参数中设置的证书的名称。在后续步骤中,您需要它。如果您使用外部实用程序创建私钥,请导入服务器证书和私钥:
dsctl <instance_name> tls import-server-key-cert /root/server.crt /root/server.key
# dsctl <instance_name> tls import-server-key-cert /root/server.crt /root/server.keyCopy to Clipboard Copied! Toggle word wrap Toggle overflow 请注意,命令要求您首先指定服务器证书的路径,然后指定私钥的路径。这个方法始终将证书的 nickname 设置为
Server-Cert。
将 CA 证书导入到 NSS 数据库:
dsconf -D "cn=Directory Manager" ldap://server.example.com security ca-certificate add --file /root/ca.crt --name "Example CA"
# dsconf -D "cn=Directory Manager" ldap://server.example.com security ca-certificate add --file /root/ca.crt --name "Example CA"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 设置 CA 证书的信任标记:
dsconf -D "cn=Directory Manager" ldap://server.example.com security ca-certificate set-trust-flags "Example CA" --flags "CT,,"
# dsconf -D "cn=Directory Manager" ldap://server.example.com security ca-certificate set-trust-flags "Example CA" --flags "CT,,"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这会将目录服务器配置为信任用于 TLS 加密和基于证书的身份验证的 CA。
停止实例:
dsctl <instance_name> stop
# dsctl <instance_name> stopCopy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑
/etc/dirsrv/slapd- <instance_name> /dse.ldif文件,并删除以下条目,包括其属性:-
cn=AES,cn=encrypted attribute keys,cn=database_name,cn=ldbm database,cn=plugins,cn=config -
cn=3DES,cn=encrypted attribute keys,cn=database_name,cn=ldbm database,cn=plugins,cn=config
重要删除所有数据库的条目。如果包含
nsSymmetricKey属性的任何条目保留在/etc/dirsrv/slapd- <instance_name> /dse.ldif文件中,则目录服务器将无法启动。-
启动实例:
dsctl <instance_name> start
# dsctl <instance_name> startCopy to Clipboard Copied! Toggle word wrap Toggle overflow