本節說明如何管理目錄伺服器中的 SSL 憑證。
若要在目錄伺服器上執行 SSL,您必須使用自行簽署的憑證或公開金鑰基礎架構 (PKI) 解決方案。
PKI 解決方案與外部憑證授權機構 (CA) 相關。使用 PKI 解決方案時,必須具備 CA 簽署的伺服器憑證,其中包含公開金鑰與私密金鑰。此憑證隨各目錄伺服器而不同。您也需具備可信任的 CA 憑證,其中包含公開金鑰。可信任的 CA 憑證可確保來自您的 CA 之所有伺服器憑證皆可信任。此憑證有時亦稱為 CA 根金鑰或根憑證。
若使用憑證進行測試,可能會使用自行簽署的憑證。但在生產環境中使用自行簽署的憑證,並不是安全的做法。在生產環境中,請使用可信任的憑證授權機構 (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 簽署伺服器憑證。
您可以使用 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) 所指定的安全電子郵件 (Privacy Enhanced Mail) 格式,可用以透過 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 會提供網站供您自動下載憑證。其他 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 憑證。
您可以使用 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 簽署伺服器憑證 (公開金鑰與私密金鑰) 過期時,請使用此程序加以更新。
您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。
從憑證授權機構取得更新的 CA 簽署伺服器憑證。
當您接收到更新的憑證時,請停止伺服器實例,再安裝該憑證。
$ dsadm stop instance-path $ dsadm renew-cert instance-path cert-alias cert-file |
重新啟動伺服器實例。
$ dsadm start instance-path |
有時您可能會想匯出憑證的公開與私密金鑰,以便後續可匯入憑證。例如,可能會想讓其他伺服器使用您的憑證。
此程序中的指令可用於含有萬用字元的憑證,例如 "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 目錄中。
如需有關如何備份及復原目錄伺服器的資訊,請參閱製作嚴重損壞回復所需的備份。