![]() | |
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 板产品文档,以获取使用具有多个软件应用程序的板的详细信息。
执行以下步骤,为令牌创建用户和领域以访问默认插槽。
- 启动 secadm 公用程序。
$ CryptoPath/bin/secadm
默认的 密码路径 是 /opt/SUNWconn/crypto。
- 为该令牌创建领域。
secadm> create realm=dsrealm
System Administrator Login Required
Login: super-user
Password:
Realm dsrealm created successfully.- 设置要在其中创建用户的领域。
secadm> set realm=dsrealm
secadm{dsrealm}> su
System Administrator Login Required
Login: super-user
Password:
secadm{root@dsrealm}#- 创建用户 nobody 以使用默认插槽,提供重新启动配置了 SSL 的 Directory Server 时使用的口令。
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 算法。
- 在使用 modutil 之前设置 LD_LIBRARY_PATH。
$ set LD_LIBRARY_PATH=ServerRoot/lib ; export LD_LIBRARY_PATH
- 创建一个安全模块数据库(如果不存在)。
$ cd ServerRoot/shared/bin
$ ./modutil -create -dbdir ../../alias -dbprefix "slapd-serverID"- 将外部安全模块添加到安全模块数据库中。
$ ./modutil -add "Crypto Mod" -dbdir ../../alias -nocertdb \
-libfile CryptoPath/lib/libpkcs11.so \
-mechanisms "RSA:DSA:RC4:DES" -dbprefix "slapd-serverID"默认的 CryptoPath 是 /opt/SUNWconn/crypto。
- 请列出安全模块以确保可以成功添加。
$ ./modutil -list -dbdir ../../alias -dbprefix "slapd-serverID"
您应该看到在步骤 3 中为 Crypto Mod 添加的条目。
- 请将外部安全模块设为针对 RSA、DSA、RC4 和 DES 的默认设置。
$ ./modutil -default "Crypto Mod" -dbdir ../../alias \
-mechanisms "RSA:DSA:RC4:DES" -dbprefix "slapd-serverID"这将会成功地更改默认安全模块。
此时已生成用于 Accelerator 板的绑定,并可以导入证书。
导入证书在配置 SSL 之前,必须导入已获得的服务器和 CA 证书,如表 A-1 中所示。执行以下步骤以导入证书。
- 导入服务器证书 .p12 文件。
$ 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- 导入 CA 证书。
$ ./certutil -A -n "Crypto CA Cert" -t CT -i CACert.txt \
-d ../../alias -P "slapd-serverID" -h "nobody@dsrealm"- 列出与令牌相关联的证书以确保导入成功。
$ ./certutil -L -d ../../alias -P "slapd-serverID" \
-h "nobody@dsrealm"此时已导入证书,并可配置 Directory Server 以监听 SSL 连接。
配置 SSL使用已创建的令牌和口令、外部安全模块和 Directory Server 证书数据库之间已生成的绑定以及已导入的证书,可以将 Directory Server 配置为以安全模式启动。执行这些步骤以配置 SSL,并以安全模式重新启动 Directory Server。
- 创建文件 ssl.ldif,此文件内容为更改 SSL 相关的 Directory Server 配置条目的修改信息。
代码示例 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 的证书中。
此处的 port(nsslapd-secureport 的值)是指一旦以安全模式启动时,Directory Server 用于监听 SSL 连接的端口。
- 应用修改以更改 Directory Server 配置。
$ ldapmodify -p currPort -D "cn=directory manager" -w password -f ssl.ldif
其中的 currPort 是 Directory Server 当前监听客户机请求使用的端口号。
- 以安全模式重新启动 Directory Server。
$ 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 章“管理验证和加密”。