本部分介绍如何在目录服务器中管理 SSL 证书。
要在目录服务器上运行 SSL,您必须使用自签名证书或公钥基础结构 (Public Key Infrastructure, PKI) 解决方案。
PKI 解决方案需要使用外部证书颁发机构 (Certificate Authority, CA)。要使用 PKI 解决方案,您需要包含公钥和私钥的 CA 签名服务器证书。此证书特定于一个目录服务器。此外还需要一个包含公钥的可信 CA 证书。可信 CA 证书可确保来自 CA 的所有服务器证书都是可信的。此证书有时称为 CA 根密钥或根证书。
如果将证书用于测试目的,您可能要使用自签名的证书。但是在生产中,使用自签名证书不太安全。在生产中,应使用可信的证书颁发机构 (Certificate Authority, CA) 证书。
本部分中的过程使用 dsadm 和 dsconf 命令。有关这些命令的信息,请参见 dsadm(1M) 和 dsconf(1M) 手册页。
本部分提供了以下有关在目录服务器上配置证书的信息:
 查看默认的自签名证书
查看默认的自签名证书首次创建目录服务器实例时,它将包含默认的自签名证书。自签名证书是一个公钥/私钥对,其中的公钥由私钥进行签名。自签名证书的有效期为三个月。
您可以使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。
 管理自签名证书
管理自签名证书创建目录服务器实例时,将自动提供默认的自签名证书。
您可以使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。
要使用非默认设置创建自签名证书,请使用以下命令:
| $ dsadm add-selfsign-cert instance-path cert-alias | 
其中 cert-alias 是您提供的用于标识证书的名称。
要查看此命令的所有选项,请参见 dsadm(1M) 手册页或命令行帮助:
| $ dsadm add-selfsign-cert --help | 
当自签名证书过期时,请停止服务器实例并续订证书。
| dsadm stop instance-path $ dsadm renew-selfsign-cert instance-path cert-alias | 
重新启动服务器实例。
| $ dsadm start instance-path | 
 请求 CA 签名的服务器证书
请求 CA 签名的服务器证书此过程介绍如何请求和安装用于目录服务器的 CA 签名服务器证书。
您可以使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。
生成 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----- | 
获取证书颁发机构证书的过程取决于所使用的证书颁发机构。某些商业 CA 提供了允许您自动下载证书的 Web 站点。其他 CA 将在您请求证书后以电子邮件形式向您发送证书。
发送请求之后,您必须等待 CA 对请求做出响应,即提供您的证书。请求的响应时间会有所不同。例如,如果您的 CA 在公司内部,则 CA 可能只需一两天即可响应您的请求。如果您选择的 CA 在公司外部,则 CA 可能需要几个星期才能响应您的请求。
保存从证书颁发机构收到的证书。
请将证书备份到安全位置。如果丢失证书,您可以使用备份文件重新安装。可以在文本文件中保存证书。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----- | 
 添加 CA 签名的服务器证书和可信的 CA 证书
添加 CA 签名的服务器证书和可信的 CA 证书此过程介绍如何安装用于目录服务器的 CA 签名服务器证书和可信 CA 证书。
您可以使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。
添加 CA 签名的服务器证书。
| $ dsadm add-cert --ca instance-path cert-alias cert-file | 
其中 cert-alias 是您提供的用于标识证书的名称,cert-file 是包含 PEM 格式 PKCS #11 证书的文本文件。
例如,要安装 CA 签名的服务器证书,可以使用与以下形式类似的命令:
| $ dsadm add-cert --ca /local/ds server-cert /local/safeplace/serv-cert-file | 
证书现在已完成安装,但还不是可信证书。要信任 CA 签名的服务器证书,必须安装证书颁发机构证书。
添加可信的证书颁发机构证书。
| $ dsadm add-cert --ca -C instance-path cert-alias cert-file | 
-C 选项表示该证书为可信的证书颁发机构证书。
例如,要安装来自证书颁发机构的可信证书,可以使用以下命令:
| $ dsadm add-cert --ca -C /local/ds CA-cert /local/safeplace/ca-cert-file | 
(可选的)验证已安装的证书。
要列出所有服务器证书并显示其有效日期和别名,请键入:
| $ 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 | 
 续订过期的 CA 签名服务器证书
续订过期的 CA 签名服务器证书CA 签名服务器证书(公钥和私钥)过期时,可以使用此过程续订证书。
您可以使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。
从证书颁发机构获取已更新的 CA 签名服务器证书。
在收到更新的证书时,请停止服务器实例并安装证书。
| $ dsadm stop instance-path $ dsadm renew-cert instance-path cert-alias cert-file | 
重新启动服务器实例。
| $ dsadm start instance-path | 
 导出和导入 CA 签名的服务器证书
导出和导入 CA 签名的服务器证书在某些情况下,您可能需要导出证书的公钥和私钥,以便日后可以导入该证书。例如,您可能希望其他服务器使用该证书。
此过程中的命令可用于包含通配符的证书(如 "cn=*,o=example")。
您可以使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。
导出证书。
| $ 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 | 
导入证书。
| $ dsadm import-cert instance-path cert-file | 
例如,将证书导入 host1 上的服务器实例:
| $ dsadm import-cert -h host1 /local/ds2 /tmp/first-ca-server-certificate Enter the PKCS#12 file password: | 
(可选的)如果已将证书导入服务器,请将该服务器配置为使用导入的证书。
| $ dsconf set-server-prop -e -h host -p port -w - ssl-rsa-cert-name:server-cert | 
默认情况下,目录服务器通过存储的密码在内部管理 SSL 证书数据库密码。在管理证书时,用户无需键入证书密码或指定密码文件。此选项不太安全,因为只是隐藏了密码,而不会对密码进行加密。
但是,如果要对证书使用进行更多控制,则可以配置服务器,以提示用户在命令行中输入密码。在这种情况下,对于除 autostart、 backup、 disable-service、enable-service、info、 reindex、 restore 和 stop 之外的所有 dsadm 子命令,用户都必须键入证书数据库密码。证书数据库位于目录 instance-path/alias 中。
 将服务器配置为提示用户输入证书密码
将服务器配置为提示用户输入证书密码您可以使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。
停止服务器。
| $ dsadm stop instance-path | 
将密码提示标志设置为 on。
| $ dsadm set-flags instance-path cert-pwd-prompt=on | 
系统将要求您选择新的证书密码。
启动服务器。
| $ dsadm start instance-path | 
备份目录服务器实例时,将会备份目录服务器配置和证书。备份的证书存储在 archive-path/alias 目录中。
有关如何备份和恢复目录服务器的信息,请参见创建备份以用于灾难恢复。