本章介绍如何在目录代理服务器上配置证书。有关在目录服务器上配置证书的信息,请参见管理证书。
本章中的过程使用 dpadm 和 dpconf 命令。有关这些命令的信息,请参见 dpadm(1M) 和 dpconf(1M) 手册页。
本章包含以下主题:
创建目录代理服务器实例时,该实例具有默认的自签名证书。自签名证书是一个公钥/私钥对,其中公钥是由目录代理服务器自签名的。
可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。
要在目录代理服务器上运行安全套接字层 (Secure Sockets Layer, SSL),必须使用自签名证书或公钥基础结构 (Public Key Infrastructure, PKI) 解决方案。
PKI 解决方案需要使用外部证书颁发机构 (Certificate Authority, CA)。要使用 PKI 解决方案,您需要包含公钥和私钥的 CA 签名服务器证书。此证书特定于一个目录代理服务器实例。此外,还需要包含公钥的可信 CA 证书。可信 CA 证书可确保来自 CA 的所有服务器证书都是可信的。此证书有时称为 CA 根密钥或根证书。
有关如何创建非默认的自签名证书,以及如何请求和安装 CA 签名证书的信息,请参见以下过程。
在创建目录代理服务器实例时,将自动提供默认的自签名证书。如果要使用非默认设置创建自签名证书,请执行以下过程。
此过程将为服务器证书创建公钥/私钥对,其中公钥由目录代理服务器签名。自签名证书的有效期为三个月。
可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。
要创建非默认的目录代理服务器自签名证书,请键入:
$ dpadm add-selfsign-cert instance-path cert-alias |
其中 cert-alias 是自签名证书的名称。
例如,可以按如下方式创建一个名为 my-self-signed-cert 的证书:
$ dpadm add-selfsign-cert /local/dps my-self-signed-cert |
有关所有命令选项的描述,请参见 dpadm(1M) 手册页,或者在命令行中键入 dpadm add-selfsign-cert --help。
自签名证书对于测试非常有用。但是在生产环境中,使用可信证书颁发机构 (Certificate Authority, CA) 颁发的证书会更加安全。
可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。
请求 CA 签名的服务器证书。
$ dpadm request-cert instance-path cert-alias |
其中 cert-alias 是要请求的证书的名称。证书颁发机构可能需要该命令的所有选项以识别服务器。有关所有命令选项的描述,请参见 dpadm(1M) 手册页。
用于获取 CA 证书的过程取决于所使用的 CA。某些商业CA 会提供一个允许您从中下载证书的 Web 站点,某些 CA 则会以电子邮件的方式将证书发送给您。
例如,可以请求一个名为 my-CA-signed-cert 的证书,如下所示:
$ dpadm request-cert -S cn=my-request,o=test /local/dps my-CA-signed-cert -----BEGIN NEW CERTIFICATE REQUEST----- MIIBYDCBygIBADAhMQ0wCwYDVQQDEwRnZXJpMRAwDgYDVQQDEwdteWNlcnQ0MIGfMA0GCSqGSIb3 DQEBAQUAA4GNADCBiQKBgQC3v9ubG468wnjBDAMbRrEkmFDTQzT+LO30D/ALLXOiElVsHrtRyWhJ PG9cURI9uwqs15crxCpJvho1kt3SB9+yMB8Ql+CKnCQDHlNAfnn30MjFHShv/sAuEygFsN+Ekci5 W1jySYE2rzE0qKVxWLSILFo1UFRVRsUnORTX/Nas7QIDAQABoAAwDQYJKoZIhvcNAQEEBQADgYEA fcQMnZNLpPobiX1xy1ROefPOhksVz8didY8Q2fjjaHG5lajMsqOROzubsuQ9Xh4ohT8kIA6xcBNZ g8FRNIRAHCtDXKOdOm3CpJ8da+YGI/ttSawIeNAKU1DApF9zMb7c2lS4yEfWmreoQdXIC9YeKtF6 zwbn2EmIpjHzETtS5Nk= -----END NEW CERTIFICATE REQUEST----- |
使用 dpadm request-cert 命令请求证书时,此证书请求是保密性增强的电子邮件 (Privacy Enhanced Mail, PEM) 格式的 PKCS #10 证书请求。 PEM 是由 RFC 1421 至 1424 指定的格式。有关详细信息,请参见 http://www.ietf.org/rfc/rfc1421.txt。PEM 格式表示 ASCII 格式的 base64 编码的证书请求。
请求 CA 签名的证书时,将创建一个临时的自签名证书。收到并安装来自 CA 的 CA 签名证书时,新证书将取代临时的自签名证书。
按照程序将证书请求发送给 CA。
发送请求之后,您必须等待 CA 对请求做出响应,即提供您的证书。请求的响应时间会有所不同。例如,如果 CA 在您的公司内部,则响应时间可能很短。但是,如果 CA 在公司外部,则 CA 可能需要几个星期才能响应您的请求。
保存从 CA 收到的证书。
以文本文件的形式保存证书,并将此证书备份到安全位置。
要信任 CA 签名的服务器证书,必须在目录代理服务器实例上安装此证书。此过程将 CA 证书的公钥安装到目录代理服务器上的证书数据库中。
可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。
查看是否已安装此 CA 的可信 CA 证书。
要执行此操作,请列出所有已安装的 CA 证书,如列出 CA 证书所述。
如果未安装可信 CA 证书,请将其添加到目录代理服务器实例上的证书数据库中。
$ dpadm add-cert instance-path cert-alias cert-file |
其中 cert-alias 是可信 CA 证书的名称,cert-file 是包含可信 CA 证书的文件的名称。
将 CA 签名的服务器证书安装到证书数据库中。
$ dpadm add-cert instance-path cert-alias cert-file |
其中 cert-alias 是 CA 签名服务器证书的名称,cert-file 是包含 CA 签名服务器证书的文件的名称。请注意,cert-alias 必须与证书请求中所使用的 cert-alias 相同。
例如,可以按如下方式将名为 CA-cert 的 CA 签名服务器证书添加到 /local/dps 上的证书数据库中:
$ dpadm add-cert /local/dps CA-cert /local/safeplace/ca-cert-file.ascii |
可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。
从 CA 获取更新的证书。
在目录代理服务器实例上安装证书。
$ dpadm renew-cert instance-path cert-alias cert-file |
其中 cert-alias 是新证书的名称,cert-file 是包含此证书的文件的名称。有关所有命令选项的描述,请参见 dpadm(1M) 手册页。
有关如何列出服务器证书和 CA 证书的信息,请参见以下过程。
此过程将列出在目录代理服务器实例上安装的所有证书。
可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。
列出目录代理服务器实例上证书数据库中的服务器证书。
$ dpadm list-certs instance-path |
默认情况下,目录代理服务器实例包含一个名为 defaultservercert 的服务器证书。文本 Same as issuer 表明默认证书是自签名的服务器证书。
例如:
$ dpadm list-certs /local/dps Alias Valid from Expires on Self-signed? Issued by Issued to ----------------- ---------------- ---------------- ------------ ------------------ -------------- defaultservercert 2006/06/01 04:15 2008/05/31 04:15 y CN=myserver:myport Same as issuer 1 certificate found. |
此过程将列出在目录代理服务器实例上安装的 CA 证书。
可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。
列出目录代理服务器实例上证书数据库中的 CA 证书。
$ dpadm list-certs -C instance-path |
例如:
$ dpadm list-certs -C /local/dps Alias Valid from Expires on Built-in Issued by Issued to ------ ---------- ---------------- --------- --------- --------- CAcert1 1999/06/21 06:00 2020/06/21 06:00 y CN=company1, O=company2 ... |
本部分介绍如何将后端 LDAP 服务器的证书添加到目录代理服务器上的证书数据库中。
可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。
使用以下命令语法以 PEM 格式显示后端目录服务器中的证书。
dsadm show-cert -F ascii instance-path [cert-alias] |
如果未指定 cert-alias,将显示默认的服务器证书。有关所有命令选项的描述,请参见 dsadm(1M) 手册页。
例如,显示默认的自签名服务器证书,如下所示:
$ dsadm show-cert -F ascii /local/ds defaultCert -----BEGIN CERTIFICATE----- MIICJjCCAY+gAwIBAgIFAIKL36kwDQYJKoZIhvcNAQEEBQAwVzEZMBcGA1UEChMQ U3VuIE1pY3Jvc3lzdGVtczEZMBcGA1UEAxMQRGlyZWN0b3J5IFNlcnZlcjENMAsG A1UEAxMEMjAxMTEQMA4GA1UEAxMHY29uZHlsZTAeFw0wNjA1MjIxMTQxNTVaFw0w NjA4MjIxMTQxNTVaMFcxGTAXBgNVBAoTEFN1biBNaWNyb3N5c3RlbXMxGTAXBgNV BAMTEERpcmVjdG9yeSBTZXJ2ZXIxDTALBgNVBAMTBDIwMTExEDAOBgNVBAMTB2Nv bmR5bGUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAK9U3ry3sJmEzwQY8CGd 7S2MTZuBedo03Vea1lfDtD08WIsdDMzhHplTdeHAkWWNc8g2PDcEFXeWp9UXFMuD Pcia7t8HtFkm73VmlriWhMd8nn3l2vkxhsPK2LHFEeOIUDR9LBBiMiEeLkjdoEhE VLMSoYKqKI+Aa5grINdmtFzBAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAF4eDbSd7 qy2l10dIogT+rnXZ362gLTlQFCblhbGpmmptbegUdL1ITGv/62q1isPV2rW7CkjM Cqb0fo3k5UkKKvW+JbMowpQeAPnlgpX612HuDr1tldnKV4eyU7gpG31t/cpACALQ 7OPi1A7oVb2Z8OJKfEJHkp3txBSsiI2gTkk= -----END CERTIFICATE----- |
保存证书。
以文本文件的形式保存证书,并将此证书备份到安全位置。
将后端 LDAP 服务器的证书添加到目录代理服务器实例上的证书数据库中。
$ dpadm add-cert instance-path cert-alias cert-file |
其中 cert-alias 是此证书的名称,cert-file 是包含此证书的文件的名称。
例如,可以按如下方式添加证书 defaultCert:
$ dpadm add-cert /local/dps defaultCert /local/safeplace/defaultCert.ascii |
后端 LDAP 服务器可能会请求目录代理服务器中的证书。本部分介绍如何配置目录代理服务器,以便将证书导出到后端 LDAP 服务器。
$ dpconf set-server-prop -h host -p port ssl-client-cert-alias:cert-alias |
其中 cert-alias 是此证书的名称。有关所有命令选项的描述,请参见 dpconf(1M) 手册页。
将证书内容复制到某个文件。
$ dpadm show-cert -F ascii -o filename instance-path cert-alias |
将证书添加到后端 LDAP 服务器的证书数据库中,如添加 CA 签名的服务器证书和可信的 CA 证书所述。
将后端 LDAP 服务器配置为进行客户端验证。有关如何为目录服务器执行此操作的信息,请参见配置凭证级别和验证方法。
有关如何配置客户端和目录代理服务器之间基于证书的验证的信息,请参见配置基于证书的验证。
使用 dpadm 备份目录代理服务器时,将备份服务器证书。备份的证书存储在 archive-path/alias 目录中。
有关如何备份和恢复目录代理服务器的信息,请参见备份和恢复目录代理服务器实例。
默认情况下,证书数据库的密码是在内部进行管理的。因此,您无需键入证书密码或指定密码文件。通过存储的密码在内部管理证书数据库时,密码会存储在安全的环境中。
为了使证书更加安全,以及对证书进行更多控制,可以在命令行上将目录代理服务器配置为提示输入密码。这样,对于除 autostart、backup、disable-service、enable-service、info、restore 和 stop 之外的所有 dpadm 子命令,系统都会提示您输入密码。
有关将目录代理服务器配置为提示(或不提示)输入密码的信息,请参见以下过程。
可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。
停止服务器。
$ dpadm stop instance-path Directory Proxy Server instance 'instance-path' stopped |
将密码提示标志设置为 on,然后键入并确认证书数据库密码。
$ dpadm set-flags instance-path cert-pwd-prompt=on Choose the certificate database password: Confirm the certificate database password: |
启动服务器,然后键入证书数据库密码。
$ dpadm start instance-path Enter the certificate database password: |
可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。