![]() | |
Sun Java System Calendar Server 6 2005Q1 管理指南 |
第 8 章
配置 SSLCalendar Server 支持使用安全套接字层 (SSL) 协议加密在日历客户机最终用户和 Calendar Server 之间传输的数据。要支持 SSL,Calendar Server 需使用 Sun Java System Messaging Server 也使用的 Netscape 安全服务 (NSS) 的 SSL 库。
可以在 ics.conf 文件中配置 Calendar Server,只对 Caleder Server 登录和密码进行加密,或加密整个日历会话。
本章介绍以下主题:
配置 Calendar Server 的 SSL要配置 Calendar Server 的 SSL,请执行以下操作:
创建 SSL 证书数据库
实现 Calendar Server 的 SSL 需要证书数据库。证书数据库必须定义 Calendar Server 的认证机构 (CA) 和证书。
Mozilla 工具
本发行版包含以下 Mozilla 工具:
- 证书数据库工具 (certutil)——用于创建和管理证书数据库。有关信息,请访问以下 Web 站点:
http://mozilla.org/projects/security/pki/nss/tools/certutil.html
- 安全模块数据库工具 (modutil)——用于显示有关可用安全模块的信息。有关信息,请访问以下 Web 站点:
http://mozilla.org/projects/security/pki/nss/tools/modutil.html
这些工具可从以下目录中获得:
/opt/SUNWics5/cal/lib
或从 Web 站点下载最新版本。
库路径变量
使用 Mozilla 工具之前,需要正确设置 LD_LIBRARY_PATH 变量。例如:
setenv LD_LIBRARY_PATH /opt/SUNWics5/cal/lib
示例文件和目录
本章中的示例使用以下文件和目录:
创建证书数据库
- 以超级用户 (root) 身份登录或转为超级用户。
- 在 /etc/opt/SUNWics5/config/sslPasswordFile 中指定 certutil 的证书数据库密码。例如:
# echo 'password' > /etc/opt/SUNWics5/config/sslPasswordFile
其中,password 是您的特定密码。
- 创建证书数据库的 alias 目录。例如:
# cd /var/opt/SUNWics5
# mkdir alias
- 转到 bin 目录,创建证书数据库 (cert7.db) 和密钥数据库 (key3.db)。例如:
# cd /opt/SUNWics5/cal/bin
# ./certutil -N -d /var/opt/SUNWics5/alias
-f /etc/opt/SUNWics5/config/sslPasswordFile
注
在这一次以及其他必须运行 certutil 实用程序的时候,请完全遵照本示例,或参考 certutil 帮助页来理解语法。
例如在本例中,如果没有同时指定 -d / 文件信息时,请勿运行带 -N 选项的 certutil实用程序。
- 生成默认的自签名根证书授权机构证书。例如:
# ./certutil -S -n SampleRootCA -x -t "CTu,CTu,CTu"
-s "CN=My Sample Root CA, O=sesta.com" -m 25000
-o /var/opt/SUNWics5/alias/SampleRootCA.crt
-d /var/opt/SUNWics5/alias
-f /etc/opt/SUNWics5/config/sslPasswordFile -z
/etc/passwd
- 生成主机的证书。例如:
# ./certutil -S -n SampleSSLServerCert -c SampleRootCA -t "u,u,u"
-s "CN=hostname.sesta.com, O=sesta.com" -m 25001
-o /var/opt/SUNWics5/alias/SampleSSLServer.crt
-d /var/opt/SUNWics5/alias -f /etc/opt/SUNWics5/config/sslPasswordFile
-z /etc/passwd
其中,hostname.sesta.com 是服务器主机名。
- 验证证书。例如:
# ./certutil -V -u V -n SampleRootCA -d /var/opt/SUNWics5/alias
# ./certutil -V -u V -n SampleSSLServerCert -d /var/opt/SUNWics5/alias
- 列出证书。例如:
# ./certutil -L -d /var/opt/SUNWics5/alias
# ./certutil -L -n SampleSSLServerCert -d /var/opt/SUNWics5/alias
- 使用 modutil 列出可用的安全模块 (secmod.db)。例如:
# ./modutil -list -dbdir /var/opt/SUNWics5/alias
- 将 alias 文件的属主更改为 icsuser 和 icsgroup(或将要运行 Calendar Server 的用户和组标识)。例如:
# find /var/opt/SUNWics5/alias -exec chown icsuser {} \;
# find /var/opt/SUNWics5/alias -exec chgrp icsgroup {} \;
从根证书授权机构 (CA) 请求并导入证书
以下步骤将生成认证请求,将请求提交给公钥基础设施 (PKI) Web 站点,然后导入证书。
从根证书授权机构请求并导入证书
- 以超级用户 (root) 身份登录或转为超级用户。
- 转到 bin 目录:
# cd /opt/SUNWics5/cal/bin
- 以认证机构或公钥基础设施 (PKI) Web 站点为基础,使用 certutil 生成认证请求。例如:
# ./certutil -R -s "CN=hostname.sesta.com, OU=hostname / SSL Web Server, O=Sesta, C=US" -p "408-555-1234" -o hostnameCert.req -g 1024
-d /var/opt/SUNWics5/alias
-f /etc/opt/SUNWics5/config/sslPasswordFile
-z /etc/passwd -a其中,hostname.sesta.com 为主机名。
- 从认证机构或公钥基础设施 (PKI) Web 站点为 SSL Web 服务器请求一个测试证书。将 hostnameCert.req 文件的内容复制并粘贴到认证请求中。
系统将通知您证书何时签名并可用。
- 将认证机构证书链和 SSL 服务器证书复制到文本文件中。
- 将认证机构证书链导入证书数据库以建立机构链。例如:
# ./certutil -A -n "GTE CyberTrust Root" -t "TCu,TCu,TCuw"
-d /var/opt/SUNWics5/alias -a -i /export/wspace/Certificates/CA_Certificate_1.txt
-f /etc/opt/SUNWics5/config/sslPasswordFile# ./certutil -A -n "Sesta TEST Root CA" -t "TCu,TCu,TCuw"
-d /var/opt/SUNWics5/alias -a -i /export/wspace/Certificates/CA_Certificate_2.txt
-f /etc/opt/SUNWics5/config/sslPasswordFile- 导入已签名的 SSL 服务器证书:
# ./certutil -A -n "hostname SSL Server Test Cert" -t "u,u,u"
-d /var/opt/SUNWics5/alias -a -i /export/wspace/Certificates/SSL_Server_Certificate.txt
-f /etc/opt/SUNWics5/config/sslPasswordFile- 列出证书数据库中的证书:
# ./certutil -L -d /var/opt/SUNWics5/alias
- 将 ics.conf 文件中的 SSL 服务器昵称配置为已签名的 SSL 服务器证书,例如:"hostname SSL Server Test Cert"。
注意:ics.conf 文件中的 service.http.calendarhostname 和 service.http.ssl.sourceurl 参数的主机名应与 SSL 证书中的主机名相匹配(如果您的系统具有多个别名)。例如:calendar.sesta.com
配置 ics.conf 文件中的 SSL 参数
要在 Calendar Server 上实现 SSL,必须设置 ics.conf 文件中的特定参数。如果
表 8-1 中列出的任意参数不在 ics.conf 文件中,请使用指定的值将它们添加到该文件中。由于当系统启动时(发出 start-cal 时),ics.conf 是只读的,因此只有重新启动 Calendar Server 后,这些新值才会生效。有关这些 SSL 参数的说明,请参阅SSL 配置。
注
通过设置以下参数,可以将 Calendar Server 配置为只加密 Calendar Server 登录和密码还是加密整个日历会话:service.http.ssl.securelogin、service.http.ssl.securesession。
如果要将登录和会话都进行加密,则请将这两个参数值都指定为 "yes"。
SSL 错误诊断首先,应定期备份证书数据库,以免发生了不可恢复的错误。如果遇到了 SSL 问题,请参考以下内容:
检查 cshttpd 进程
SSL 需要 Calendar Server cshttpd 进程才能运行。要确定 cshttpd 是否正在运行,请使用以下命令:
# ps -ef | grep cshttpd
验证证书
要列出证书数据库中的证书并检查其有效期,请使用以下命令:
# ./certutil -L -d /var/opt/SUNWics5/alias
查看 Calendar Server 日志文件
查看 Calendar Server 日志文件中记录的 SSL 错误。有关更多信息,请参见使用 Calendar Server 日志文件。
连接 SSL 端口
使用浏览器及以下 URL 连接 SSL 端口:
https://server-name:ssl-port-number
其中:
server-name 是运行 Calendar Server 的服务器的名称。
ssl-port-number 是由 ics.conf 文件中的 service.http.ssl.port 参数指定的 SSL 端口号。默认端口为 443。