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

管理证书

本部分介绍如何在目录服务器中管理 SSL 证书。

要在目录服务器上运行 SSL,您必须使用自签名证书或公钥基础结构 (Public Key Infrastructure, PKI) 解决方案。

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


注 –

如果将证书用于测试目的,您可能要使用自签名的证书。但是在生产中,使用自签名证书不太安全。在生产中,应使用可信的证书颁发机构 (Certificate Authority, CA) 证书。


本部分中的过程使用 dsadmdsconf 命令。有关这些命令的信息,请参见 dsadm(1M)dsconf(1M) 手册页。

本部分提供了以下有关在目录服务器上配置证书的信息:

Procedure查看默认的自签名证书

首次创建目录服务器实例时,它将包含默认的自签名证书。自签名证书是一个公钥/私钥对,其中的公钥由私钥进行签名。自签名证书的有效期为三个月。

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

  1. 要查看默认的自签名证书,请使用以下命令:


    $ dsadm show-cert instance-path defaultCert

Procedure管理自签名证书

创建目录服务器实例时,将自动提供默认的自签名证书。

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

  1. 要使用非默认设置创建自签名证书,请使用以下命令:


    $ dsadm add-selfsign-cert instance-path cert-alias
    

    其中 cert-alias 是您提供的用于标识证书的名称。

    要查看此命令的所有选项,请参见 dsadm(1M) 手册页或命令行帮助:


    $ dsadm add-selfsign-cert --help
  2. 当自签名证书过期时,请停止服务器实例并续订证书。


    $ dsadm stop instance-path
    $ dsadm renew-selfsign-cert instance-path cert-alias
    
  3. 重新启动服务器实例。


    $ dsadm start instance-path
    

Procedure请求 CA 签名的服务器证书

此过程介绍如何请求和安装用于目录服务器的 CA 签名服务器证书。

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

  1. 生成 CA 签名的服务器证书请求。


    $ dsadm request-cert [-W cert-pwd-file] {-S DN | --name name [--org org] \
      [--org-unit org-unit] [--city city] [--state state] [--country country]} \
      [-o output-file] [-F format] instance-path
    

    例如,要为 Example 公司请求 CA 签名的服务器证书,请使用以下命令:


    $ dsadm request-cert --name host1 --org Example --org-unit Marketing \
     -o my_cert_request_file /local/ds

    为了完整地标识服务器,证书颁发机构可能需要此示例中显示的所有属性。有关每个属性的描述,请参见 dsadm(1M) 手册页。

    使用 dsadm request-cert 请求证书时,所生成的证书请求为二进制证书请求,除非将 ASCII 指定为输出格式。如果指定 ASCII,则生成的证书请求为 PEM 格式的 PKCS #10 证书请求。PEM 是由 RFC 1421 至 1424 (http://www.ietf.org/rfc/rfc1421.txt ) 指定的保密性增强的电子邮件格式,用于以 US-ASCII 字符表示 base64 编码的证书请求。请求的内容与以下示例类似:


    -----BEGIN NEW CERTIFICATE REQUEST-----
    MIIBrjCCARcCAQAwbjELMAkGA1UBhMCVXMxEzARBgNVBAgTCkNBElGT1JOSUExLD
    AqBgVBAoTI25ldHNjYXBlIGNvb11bmljYXRpb25zIGNvcnBvcmF0aWuMRwwGgYDV
    QQDExNtZWxsb24umV0c2NhcGUuY29tMIGfMA0GCSqGSIb3DQEBAUAA4GNADCBiQK
    BgCwAbskGh6SKYOgHy+UCSLnm3ok3X3u83Us7u0EfgSLR0f+K41eNqqWRftGR83e
    mqPLDOf0ZLTLjVGJaHJn4l1gG+JDf/n/zMyahxtV7+T8GOFFigFfuxJaxMjr2j7I
    vELlxQ4IfZgwqCm4qQecv3G+N9YdbjveMVXW0v4XwIDAQABAAwDQYJKoZIhvcNAQ
    EEBQADgYEAZyZAm8UmP9PQYwNy4Pmypk79t2nvzKbwKVb97G+MT/gw1pLRsuBoKi
    nMfLgKp1Q38K5Py2VGW1E47/rhm3yVQrIiwV+Z8Lcc=
    -----END NEW CERTIFICATE REQUEST-----
  2. 按照程序将证书请求传送给证书颁发机构。

    获取证书颁发机构证书的过程取决于所使用的证书颁发机构。某些商业 CA 提供了允许您自动下载证书的 Web 站点。其他 CA 将在您请求证书后以电子邮件形式向您发送证书。

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

  3. 保存从证书颁发机构收到的证书。

    请将证书备份到安全位置。如果丢失证书,您可以使用备份文件重新安装。可以在文本文件中保存证书。PEM 格式的 PKCS #11 证书与以下示例类似:


    -----BEGIN CERTIFICATE-----
    MIICjCCAZugAwIBAgICCEEwDQYJKoZIhKqvcNAQFBQAwfDELMAkGA1UEBhMCVVMx
    IzAhBgNVBAoGlBhbG9a2FWaWxsZGwSBXaWRnZXRzLCBJbmMuMR0wGwYDVQQLExRX
    aWRnZXQgTW3FrZXJzICdSJyBVczEpMCcGAx1UEAxgVGVzdCBUXN0IFRlc3QgVGVz
    dCBUZXN0IFlc3QgQ0EswHhcNOTgwMzEyMDIzMzUWhcNOTgwMzI2MDIzMpzU3WjBP
    MQswCYDDVQQGEwJVUzEoMCYGA1UEChMfTmV0c2NhcGUgRGlyZN0b3J5VIFB1Ymxp
    Y2F0aW9uczEWMB4QGA1UEAxMNZHVgh49dq2tLNvbjTBaMA0GCSqGSIb3DQEBAQUA
    A0kAMEYkCQCksMR/aLGdfp4m0OiGgijG5KgOsyRNvwGYW7kfW+8mmijDtZaRjYNj
    jcgpF3VnlbxbclX9LVjjNLC5737XZdAgEDozYwpNDARBglghkgBhvhCEAQEEBAMC
    APAwHkwYDVR0jBBgwFAU67URjwCaGqZHUpSpdLxlzwJKiMwDQYJKoZIhQvcNAQEF
    BQADgYEAJ+BfVem3vBOPBveNdLGfjlb9hucgmaMcQa9FA/db8qimKT/ue9UGOJqL
    bwbMKBBopsDn56p2yV3PLIsBgrcuSoBCuFFnxBnqSiTS7YiYgCWqWaUA0ExJFmD6
    6hBLseqkSWulk+hXHN7L/NrViO+7zNtKcaZLlFPf7d7j2MgX4Bo=
    -----END CERTIFICATE-----

Procedure添加 CA 签名的服务器证书和可信的 CA 证书

此过程介绍如何安装用于目录服务器的 CA 签名服务器证书和可信 CA 证书。

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

  1. 添加 CA 签名的服务器证书。


    $ dsadm add-cert --ca instance-path cert-alias cert-file
    

    其中 cert-alias 是您提供的用于标识证书的名称,cert-file 是包含 PEM 格式 PKCS #11 证书的文本文件。

    例如,要安装 CA 签名的服务器证书,可以使用与以下形式类似的命令:


    $ dsadm add-cert /local/ds server-cert /local/safeplace/serv-cert-file

    证书现在已完成安装,但还不是可信证书。要信任 CA 签名的服务器证书,必须安装证书颁发机构证书。

  2. 添加可信的证书颁发机构证书。


    $ dsadm add-cert --ca instance-path cert-alias cert-file
    

    --ca 选项表示该证书为可信的证书颁发机构证书。

    例如,要安装来自证书颁发机构的可信证书,可以使用以下命令:


    $ dsadm add-cert --ca /local/ds CA-cert /local/safeplace/ca-cert-file
  3. (可选的)验证已安装的证书。

    • 要列出所有服务器证书并显示其有效日期和别名,请键入:


      $ dsadm list-certs instance-path
      

      例如:


      $ dsadm list-certs /local/ds1
      Enter the certificate database password:
      Alias       Valid from Expires on Self-   Issued by          Issued to
                                        signed?                                     
      ----------- ---------- ---------- ------- -----------------  -----------------
      serverCert  2000/11/10 2011/02/10 n       CN=CA-Signed Cert, CN=Test Cert,
                  18:13      18:13              OU=CA,O=com        dc=example,dc=com
      defaultCert 2006/05/18 2006/08/18 y       CN=host1,CN=DS,    Same as issuer
                  16:28      16:28              dc=example,dc=com
      2 certificates found

      默认情况下,目录代理服务器实例包含一个名为 defaultCert 的默认服务器证书。文本 Same as issuer 表明默认证书是自签名的服务器证书。

    • 要列出可信的 CA 证书,请键入:


      $ dsadm list-certs -C instance-path
      

      例如:


      $ dsadm list-certs -C /local/ds1
      Enter the certificate database password:
      Alias   Valid from Expires on Self-   Issued by           Issued to
                                    signed?                                   
      ------- ---------- ---------- ------- -----------------   --------------
      CA-cert 2000/11/10 2011/02/10 y       CN=Trusted CA Cert, Same as issuer
              18:12      18:12              OU=CA,O=com
      1 certificate found
    • 要查看证书的详细信息(包括证书的过期日期),请键入:


      $ dsadm show-cert instance-path cert-alias
      

      例如,要查看服务器证书,请键入:


      $ dsadm show-cert /local/ds1 "Server-Cert"
      Enter the certificate database password:
      Certificate:
          Data:
              Version: 3 (0x2)
              Serial Number: 2 (0x2)
              Signature Algorithm: PKCS #1 MD5 With RSA Encryption
              Issuer:
                  "CN=Server-Cert,O=Sun,C=US"
              Validity:
                  Not Before: Fri Nov 10 18:12:20 2000
                  Not After : Thu Feb 10 18:12:20 2011
              Subject:
                  "CN=CA Server Cert,OU=ICNC,O=Sun,C=FR"
              Subject Public Key Info:
                  Public Key Algorithm: PKCS #1 RSA Encryption
                  RSA Public Key:
                      Modulus:
                          bd:76:fc:29:ca:06:45:df:cd:1b:f1:ce:bb:cc:3a:f7:
                          77:63:5a:82:69:56:5f:3d:3a:1c:02:98:72:44:36:e4:
                          68:8c:22:2b:f0:a2:cb:15:7a:c4:c6:44:0d:97:2d:13:
                          b7:e3:bf:4e:be:b5:6a:df:ce:c4:c3:a4:8a:1d:fa:cf:
                          99:dc:4a:17:61:e0:37:2b:7f:90:cb:31:02:97:e4:30:
                          93:5d:91:f7:ef:b0:5a:c7:d4:de:d8:0e:b8:06:06:23:
                          ed:5f:33:f3:f8:7e:09:c5:de:a5:32:2a:1b:6a:75:c5:
                          0b:e3:a5:f2:7a:df:3e:3d:93:bf:ca:1f:d9:8d:24:ed
                      Exponent: 65537 (0x10001)
          Signature Algorithm: PKCS #1 MD5 With RSA Encryption
          Signature:
              85:92:42:1e:e3:04:4d:e5:a8:79:12:7d:72:c0:bf:45:
              ea:c8:f8:af:f5:95:f0:f5:83:23:15:0b:02:73:82:24:
              3d:de:1e:95:04:fb:b5:08:17:04:1c:9d:9c:9b:bd:c7:
              e6:57:6c:64:38:8b:df:a2:67:f0:39:f9:70:e9:07:1f:
              33:48:ea:2c:18:1d:f0:30:d8:ca:e1:29:ec:be:a3:43:
              6f:df:03:d5:43:94:8f:ec:ea:9a:02:82:99:5a:54:c9:
              e4:1f:8c:ae:e2:e8:3d:50:20:46:e2:c8:44:a6:32:4e:
              51:48:15:d6:44:8c:e6:d2:0d:5f:77:9b:62:80:1e:30
          Fingerprint (MD5):
              D9:FB:74:9F:C3:EC:5A:89:8F:2C:37:47:2F:1B:D8:8F
          Fingerprint (SHA1):
              2E:CA:B8:BE:B6:A0:8C:84:0D:62:57:85:C6:73:14:DE:67:4E:09:56
      
          Certificate Trust Flags:
              SSL Flags:
                  Valid CA
                  Trusted CA
                  User
                  Trusted Client CA
              Email Flags:
                  User
              Object Signing Flags:
                  User

Procedure续订过期的 CA 签名服务器证书

CA 签名服务器证书(公钥和私钥)过期时,可以使用此过程续订证书。

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

  1. 从证书颁发机构获取已更新的 CA 签名服务器证书。

  2. 收到更新的证书时,停止服务器实例并安装该证书。


    $ dsadm stop instance-path
    $ dsadm renew-cert instance-path cert-alias cert-file
    
  3. 重新启动服务器实例。


    $ dsadm start instance-path
    

Procedure导出和导入 CA 签名的服务器证书

在某些情况下,您可能需要导出证书的公钥和私钥,以便日后可以导入该证书。例如,您可能希望其他服务器使用该证书。

此过程中的命令可用于包含通配符的证书(如 "cn=*,o=example")。

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

  1. 导出证书。


    $ dsadm export-cert [-o output-file] instance-path cert-alias
    

    例如:


    $ dsadm export-cert -o /tmp/first-certificate /local/ds1 "First Certificate"
    $ dsadm export-cert -o /tmp/first-ca-server-certificate /local/ds1/ defaultCert
    Choose the PKCS#12 file password:
    Confirm the PKCS#12 file password:
    $ ls /tmp
    first-ca-server-certificate
     
  2. 导入证书。


    $ dsadm import-cert instance-path cert-file
    

    例如,将证书导入到服务器实例:


    $ dsadm import-cert /local/ds2 /tmp/first-ca-server-certificate
    Enter the PKCS#12 file password:
     
  3. (可选的)如果已将证书导入服务器,请将该服务器配置为使用导入的证书。


    $ dsconf set-server-prop -e -h host -p port ssl-rsa-cert-name:server-cert

配置证书数据库密码

默认情况下,目录服务器通过存储的密码在内部管理 SSL 证书数据库密码。在管理证书时,用户无需键入证书密码或指定密码文件。此选项不太安全,因为只是隐藏了密码,而不会对密码进行加密。

但是,如果要对证书使用进行更多控制,则可以配置服务器,以提示用户在命令行中输入密码。在这种情况下,对于除 autostart backupdisable-serviceenable-serviceinforeindexrestorestop 之外的所有 dsadm 子命令,用户都必须键入证书数据库密码。证书数据库位于目录 instance-path/alias 中。

Procedure将服务器配置为提示用户输入证书密码

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

  1. 停止服务器。


    $ dsadm stop instance-path
    
  2. 将密码提示标志设置为 on


    $ dsadm set-flags instance-path cert-pwd-prompt=on

    系统将要求您选择新的证书密码。

  3. 启动服务器。


    $ dsadm start instance-path
    

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

备份目录服务器实例时,将会备份目录服务器配置和证书。备份的证书存储在 archive-path/alias 目录中。

有关如何备份和恢复目录服务器的信息,请参见创建备份以用于灾难恢复