Sun ONE Calendar Server 6.0 管理员指南 |
第 9 章
在 Calendar Server 中使用 SSLSun ONE Calendar Server 6.0 支持使用安全套接字层 (SSL) 协议加密在日历客户端最终用户和 Calendar Server 之间传输的数据。要支持 SSL,Calendar Server 需使用 Netscape 安全服务 (NSS) 的 SSL 库,Sun ONE Messaging Server 也使用该库。
可以在 ics.conf 文件中配置 Calendar Server,只对 Caleder Server 登录和密码进行加密,或加密整个日历会话。
本章介绍以下主题:
配置 Calendar Server 的 SSLCalendar 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/bin
库路径变量
使用 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 -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 文件中的特定参数。本节包括以下内容:
SSL 配置参数
代码示例 9-1 显示了 SSL 配置参数。如果任一参数不在 ics.conf 文件中,请将其添加到该文件中。设置这些参数后,重新启动 Calendar Server 以使这些值生效。有关这些 SSL 参数的说明,请参阅 SSL 配置。
注意 没有为 Calendar Server 启用远程管理。请勿更改 service.admin.port 参数,因为该参数已被设置为 Calendar Server 所需的值。否则,csadmind 进程可能无法正常运行。
加密 Calendar Server 登录或整个日历会话
通过设置以下参数,可以将 Calendar Server 配置为只加密 Calendar Server 登录和密码,或加密整个日历会话:
SSL 错误诊断首先,应定期备份证书数据库,以免发生了不可恢复的错误。如果遇到了 SSL 问题,请参考以下内容:
检查 cshttpd 进程
SSL 需要具有 Calendar Server cshttpd 进程才能运行。要确定 cshttpd 是否正在运行,请在 Solaris 系统上使用以下命令:
# ps -ef | grep cshttpd
验证证书
要列出证书数据库中的证书并检查其有效期,请在 Solaris 系统上使用以下命令:
# ./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。