Sun Java 徽标     上一章      目录      索引      下一章     

Sun 徽标
Sun Java(TM) System Directory Server 5 2004Q2 管理指南 

附录 A
使用 Sun Crypto Accelerator 板

本附录提供有关与 Directory Server 一起使用 Sun Crypto Accelerator 板来增强连接性能的说明,此连接采用基于证书验证的安全套接字层 (SSL) 协议。


开始之前

表 A-1 包含了一些项目,在尝试使用 Sun Crypto Accelerator 板来增强 SSL 连接性能之前必须完成它们。

表 A-1 使用 Sun Crypto Accelerator 板的前提条件

前提条件

注释

安装 Sun Crypto Accelerator 板

当在主机上安装硬件、驱动程序、修补程序和管理公用程序时,请参阅为 Sun Crypto Accelerator 板提供的产品文档。

Directory Server 安装

有关说明,请参阅《Sun Java Enterprise System 2004Q2 安装指南》。

服务器证书(PKCS#12 格式)

获取 Directory Server 的服务器证书(作为 .p12 文件)

CA 证书(PEM 格式)

获取证书认证机构 (CA) 的 CA 证书(作为保密增强邮件 [PEM] 格式文件)。

请参阅第 11 章“管理验证和加密”以获取对 SSL 协议自身和 SSL 证书的讨论,以及有关如何在 Sun Java System 服务器(通过服务器控制台支持管理)上使用协议的说明。


创建令牌

Directory Server 使用令牌和口令访问 Accelerator 板上适当的加密密钥资料。令牌采用 user@realm 形式,其中 user 是指 Accelerator 板方面的用户 - 加密密钥材料的所有者,而 realm 是指 Accelerator 板方面的领域 用户及其密钥资料的逻辑分区。Accelerator 板 user 无需与系统上的用户帐户有任何关联。它是专用于该板的。请参阅 Accelerator 板产品文档,以获取有关用户和领域的进一步说明。

可利用供板使用的 secadm(1M) 公用程序为令牌创建用户和领域。Accelerator 板也允许创建多个 slots,以便管理用于多个应用程序的令牌。这里假设由于性能原因,您将主机专用于 Directory Server,因此只使用一个插槽(默认)。请参阅 Accelerator 板产品文档,以获取使用具有多个软件应用程序的板的详细信息。

执行以下步骤,为令牌创建用户和领域以访问默认插槽。

  1. 启动 secadm 公用程序。
  2. $ CryptoPath/bin/secadm

    默认的 密码路径/opt/SUNWconn/crypto

  3. 为该令牌创建领域。
  4. secadm> create realm=dsrealm
    System Administrator Login Required
    Login: super-user
    Password:
    Realm dsrealm created successfully.

  5. 设置要在其中创建用户的领域。
  6. secadm> set realm=dsrealm
    secadm{dsrealm}> su
    System Administrator Login Required
    Login: super-user
    Password:
    secadm{root@dsrealm}#

  7. 创建用户 nobody 以使用默认插槽,提供重新启动配置了 SSL 的 Directory Server 时使用的口令。
  8. secadm{root@dsrealm}# create user=nobody
    Initial password: password
    Confirm password: password
    User nobody created successfully.
    secadm{root@dsrealm}# exit

此时,已为令牌 nobody@dsrealm 创建了用户和领域,并提供了重新启动 Directory Server 时使用的口令。


生成用于板的绑定

用于 Accelerator 板的绑定采用您生成的外部安全模块的形式,这样 Directory Server 就可以绑定到板上。执行以下步骤以生成外部安全模块和 Directory Server 证书数据库之间的绑定,此数据库支持数种 SSL 算法。

  1. 在使用 modutil 之前设置 LD_LIBRARY_PATH
  2. $ set LD_LIBRARY_PATH=ServerRoot/lib ; export LD_LIBRARY_PATH

  3. 创建一个安全模块数据库(如果不存在)。
  4. $ cd ServerRoot/shared/bin
    $ ./modutil -create -dbdir ../../alias -dbprefix "slapd-serverID"

  5. 将外部安全模块添加到安全模块数据库中。
  6. $ ./modutil -add "Crypto Mod" -dbdir ../../alias -nocertdb \
    -libfile CryptoPath/lib/libpkcs11.so \
    -mechanisms "RSA:DSA:RC4:DES" -dbprefix "slapd-serverID"

    默认的 CryptoPath/opt/SUNWconn/crypto

  7. 请列出安全模块以确保可以成功添加。
  8. $ ./modutil -list -dbdir ../../alias -dbprefix "slapd-serverID"

    您应该看到在步骤 3 中为 Crypto Mod 添加的条目。

  9. 请将外部安全模块设为针对 RSA、DSA、RC4 和 DES 的默认设置。
  10. $ ./modutil -default "Crypto Mod" -dbdir ../../alias \
    -mechanisms "RSA:DSA:RC4:DES" -dbprefix "slapd-serverID"

    这将会成功地更改默认安全模块。

此时已生成用于 Accelerator 板的绑定,并可以导入证书。


导入证书

在配置 SSL 之前,必须导入已获得的服务器和 CA 证书,如表 A-1 中所示。执行以下步骤以导入证书。

  1. 导入服务器证书 .p12 文件。
  2. $ cd ServerRoot/shared/bin
    $ ./pk12util -i ServerCert.p12 -d ../../alias -P "slapd-serverID" \
    -h "nobody@dsrealm"
    Enter Password or Pin for "nobody@dsrealm": password
    Enter Password for PKCS12 file: password

  3. 导入 CA 证书。
  4. $ ./certutil -A -n "Crypto CA Cert" -t CT -i CACert.txt \
    -d ../../alias -P "slapd-serverID" -h "nobody@dsrealm"

  5. 列出与令牌相关联的证书以确保导入成功。
  6. $ ./certutil -L -d ../../alias -P "slapd-serverID" \
    -h "nobody@dsrealm"

    您应该可以看到在步骤 1步骤 2 中添加的证书的条目。

此时已导入证书,并可配置 Directory Server 以监听 SSL 连接。


配置 SSL

使用已创建的令牌和口令、外部安全模块和 Directory Server 证书数据库之间已生成的绑定以及已导入的证书,可以将 Directory Server 配置为以安全模式启动。执行这些步骤以配置 SSL,并以安全模式重新启动 Directory Server。

  1. 创建文件 ssl.ldif,此文件内容为更改 SSL 相关的 Directory Server 配置条目的修改信息。
  2. 代码示例 A-1 使用该板 (ssl.ldif) 为激活 SSL 进行的修改

    dn: cn=RSA,cn=encryption,cn=config

    changetype: add

    objectclass: top

    objectclass: nsEncryptionModule

    cn: RSA

    nsSSLToken: nobody@dsrealm

    nsSSLPersonalitySSL:服务器证书昵称1

    nsSSLActivation: on

    dn: cn=encryption,cn=config

    changetype: modify

    replace: nsSSL3

    nsSSL3: on

    -

    replace: nsSSLClientAuth

    nsSSLClientAuth: allowed

    -

    replace: nsSSL3Ciphers

    nsSSL3Ciphers: -rsa_null_md5,+rsa_rc4_128_md5,+rsa_rc4_40_md5,

    +rsa_rc2_40_md5,+rsa_des_sha,+rsa_fips_des_sha,+rsa_3des_sha,

    +rsa_fips_3des_sha,+fortezza,+fortezza_rc4_128_sha,

    +fortezza_null,+tls_rsa_export1024_with_rc4_56_sha,

    +tls_rsa_export1024_with_rc4_56_sha,

    +tls_rsa_export1024_with_des_cbc_sha

    -

    replace: nsCertfile

    nsCertfile:alias/slapd-server ID-cert8.db

    -

    replace: nsKeyFile

    nsKeyFile: alias/slapd-server ID-key3.db

    dn: cn=config

    changetype: modify

    replace: nsslapd-secureport

    nsslapd-secureport:port

    -

    replace: nsslapd-security

    nsslapd-security: on

    1该昵称包含在 Directory Server 的证书中。

    此处的 portnsslapd-secureport 的值)是指一旦以安全模式启动时,Directory Server 用于监听 SSL 连接的端口。

  3. 应用修改以更改 Directory Server 配置。
  4. $ ldapmodify -p currPort -D "cn=directory manager" -w password -f ssl.ldif

    其中的 currPort 是 Directory Server 当前监听客户机请求使用的端口号。

  5. 以安全模式重新启动 Directory Server。
  6. $ ServerRoot/slapd-serverID/restart-slapd
    Enter PIN for nobody@dsrealm: password

    此处的 password 是指当创建令牌 nobody@dsrealm 时提供的用于 nobody 的用户口令。

此时,Directory Server 使用指定的端口监听 SSL 通讯量。可以配置 Sun Java System Administration Server 和客户机应用程序以通过指定端口访问 SSL 上的 Directory Server。有关详细信息,请参阅第 11 章“管理验证和加密”



上一章      目录      索引      下一章     


版权所有 2004 Sun Microsystems, Inc. 所有权利保留。