Sun Java System Directory Server Enterprise Edition 6.3 管理指南

第 20 章 目录代理服务器证书

本章介绍如何在目录代理服务器上配置证书。有关在目录服务器上配置证书的信息,请参见管理证书

本章中的过程使用 dpadmdpconf 命令。有关这些命令的信息,请参见 dpadm(1M)dpconf(1M) 手册页。

本章包含以下主题:

默认的自签名证书

创建目录代理服务器实例时,该实例具有默认的自签名证书。自签名证书是一个公钥/私钥对,其中公钥是由目录代理服务器自签名的。

Procedure查看默认的自签名证书

可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。

  1. 查看默认的自签名证书。


    $ dpadm show-cert instance-path defaultservercert

创建、请求和安装目录代理服务器的证书

要在目录代理服务器上运行安全套接字层 (Secure Sockets Layer, SSL),必须使用自签名证书或公钥基础结构 (Public Key Infrastructure, PKI) 解决方案。

PKI 解决方案需要使用外部证书颁发机构 (Certificate Authority, CA)。要使用 PKI 解决方案,您需要包含公钥和私钥的 CA 签名服务器证书。此证书特定于一个目录代理服务器实例。此外,还需要包含公钥的可信 CA 证书。可信 CA 证书可确保来自 CA 的所有服务器证书都是可信的。此证书有时称为 CA 根密钥或根证书。

有关如何创建非默认的自签名证书,以及如何请求和安装 CA 签名证书的信息,请参见以下过程。

Procedure创建非默认的目录代理服务器自签名证书

在创建目录代理服务器实例时,将自动提供默认的自签名证书。如果要使用非默认设置创建自签名证书,请执行以下过程。

此过程将为服务器证书创建公钥/私钥对,其中公钥由目录代理服务器签名。自签名证书的有效期为三个月。

可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。

  1. 要创建非默认的目录代理服务器自签名证书,请键入:


    $ 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

Procedure请求目录代理服务器的 CA 签名证书

自签名证书对于测试非常有用。但是在生产环境中,使用可信证书颁发机构 (Certificate Authority, CA) 颁发的证书会更加安全。

可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。

  1. 请求 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 签名证书时,新证书将取代临时的自签名证书。

  2. 按照程序将证书请求发送给 CA。

    发送请求之后,您必须等待 CA 对请求做出响应,即提供您的证书。请求的响应时间会有所不同。例如,如果 CA 在您的公司内部,则响应时间可能很短。但是,如果 CA 在公司外部,则 CA 可能需要几个星期才能响应您的请求。

  3. 保存从 CA 收到的证书。

    以文本文件的形式保存证书,并将此证书备份到安全位置。

Procedure安装目录代理服务器的 CA 签名服务器证书

要信任 CA 签名的服务器证书,必须在目录代理服务器实例上安装此证书。此过程将 CA 证书的公钥安装到目录代理服务器上的证书数据库中。

可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。

  1. 查看是否已安装此 CA 的可信 CA 证书。

    要执行此操作,请列出所有已安装的 CA 证书,如列出 CA 证书所述。

  2. 如果未安装可信 CA 证书,请将其添加到目录代理服务器实例上的证书数据库中。


    $ dpadm add-cert instance-path cert-alias cert-file
    

    其中 cert-alias 是可信 CA 证书的名称,cert-file 是包含可信 CA 证书的文件的名称。

  3. 将 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

续订过期的目录代理服务器 CA 签名证书

本部分介绍如何续订过期的 CA 签名服务器证书。

Procedure续订过期的目录代理服务器 CA 签名服务器证书

可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。

  1. 从 CA 获取更新的证书。

  2. 在目录代理服务器实例上安装证书。


    $ dpadm renew-cert instance-path cert-alias cert-file
    

    其中 cert-alias 是新证书的名称,cert-file 是包含此证书的文件的名称。有关所有命令选项的描述,请参见 dpadm(1M) 手册页。

列出证书

有关如何列出服务器证书和 CA 证书的信息,请参见以下过程。

Procedure列出服务器证书

此过程将列出在目录代理服务器实例上安装的所有证书。

可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。

  1. 列出目录代理服务器实例上证书数据库中的服务器证书。


    $ 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.

Procedure列出 CA 证书

此过程将列出在目录代理服务器实例上安装的 CA 证书。

可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。

  1. 列出目录代理服务器实例上证书数据库中的 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 服务器的证书添加到目录代理服务器上的证书数据库中

本部分介绍如何将后端 LDAP 服务器的证书添加到目录代理服务器上的证书数据库中。

Procedure将后端目录服务器的证书添加到目录代理服务器上的证书数据库中

可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。

  1. 使用以下命令语法以 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-----
  2. 保存证书。

    以文本文件的形式保存证书,并将此证书备份到安全位置。

  3. 将后端 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 服务器可能会请求目录代理服务器中的证书。本部分介绍如何配置目录代理服务器,以便将证书导出到后端 LDAP 服务器。

Procedure配置目录代理服务器以便将客户端证书导出到后端 LDAP 服务器

  1. 指定要发送到后端 LDAP 服务器的证书。


    $ dpconf set-server-prop -h host -p port ssl-client-cert-alias:cert-alias
    

    其中 cert-alias 是此证书的名称。有关所有命令选项的描述,请参见 dpconf(1M) 手册页。

  2. 将证书内容复制到某个文件。


    $ dpadm show-cert -F ascii -o filename instance-path cert-alias
    
  3. 将证书添加到后端 LDAP 服务器的证书数据库中,如添加 CA 签名的服务器证书和可信的 CA 证书所述。

接下来的操作

将后端 LDAP 服务器配置为进行客户端验证。有关如何为目录服务器执行此操作的信息,请参见配置凭证级别和验证方法

另请参见

有关如何配置客户端和目录代理服务器之间基于证书的验证的信息,请参见配置基于证书的验证

备份和恢复目录代理服务器的证书数据库

使用 dpadm 备份目录代理服务器时,将备份服务器证书。备份的证书存储在 archive-path/alias 目录中。

有关如何备份和恢复目录代理服务器的信息,请参见备份和恢复目录代理服务器实例

访问证书数据库时提示输入密码

默认情况下,证书数据库的密码是在内部进行管理的。因此,您无需键入证书密码或指定密码文件。通过存储的密码在内部管理证书数据库时,密码会存储在安全的环境中。

为了使证书更加安全,以及对证书进行更多控制,可以在命令行上将目录代理服务器配置为提示输入密码。这样,对于除 autostartbackupdisable-serviceenable-serviceinforestorestop 之外的所有 dpadm 子命令,系统都会提示您输入密码。

有关将目录代理服务器配置为提示(或不提示)输入密码的信息,请参见以下过程。

Procedure访问证书数据库时提示输入密码

可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。

  1. 停止服务器。


    $ dpadm stop instance-path
    Directory Proxy Server instance 'instance-path' stopped
  2. 将密码提示标志设置为 on,然后键入并确认证书数据库密码。


    $ dpadm set-flags instance-path cert-pwd-prompt=on
    Choose the certificate database password:
    Confirm the certificate database password:
  3. 启动服务器,然后键入证书数据库密码。


    $ dpadm start instance-path
    Enter the certificate database password:

Procedure访问证书数据库时禁用密码提示

可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。

  1. 停止服务器。


    $ dpadm stop instance-path
    Directory Proxy Server instance 'instance-path' stopped
  2. 将密码提示标志设置为 off,然后键入现有密码。


    $ dpadm set-flags instance-path cert-pwd-prompt=off
    Enter the old password:
  3. 启动服务器。


    $ dpadm start instance-path