实现 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 目录,生成证书数据库 (cert8.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 {}; |