Sun logo      上一个      目录      索引      下一个     

Sun ONE Calendar Server 6.0 管理员指南

第 9 章
在 Calendar Server 中使用 SSL

Sun 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 的 SSL

Calendar Server SSL 配置是“独立的”配置,不需要授权的管理员。

要配置 Calendar Server 的 SSL,请执行以下操作:

 

创建 SSL 证书数据库

实现 Calendar Server 的 SSL 需要证书数据库。证书数据库必须定义 Calendar Server 的认证机构 (CA) 和证书。

Mozilla 工具

本发行版包含以下 Mozilla 工具:

这些工具可从以下目录中获得:

/opt/SUNWics5/cal/bin

 

库路径变量

使用 Mozilla 工具之前,需要正确设置 LD_LIBRARY_PATH 变量。例如:

setenv LD_LIBRARY_PATH /opt/SUNWics5/cal/lib

示例文件和目录

本章中的示例使用以下文件和目录:

 

创建证书数据库

  1. 以超级用户 (root) 身份登录或转为超级用户。
  2. /etc/opt/SUNWics5/config/sslPasswordFile 中指定 certutil 的证书数据库密码。例如:
  3. # echo "password" > /etc/opt/SUNWics5/config/sslPasswordFile

    其中,password 是您的特定密码。

  4. 创建证书数据库的 alias 目录。例如:
  5. # cd /var/opt/SUNWics5
    # mkdir alias

  6. 转到 bin 目录,创建证书数据库 (cert7.db) 和密钥数据库 (key3.db)。例如:
  7. # cd /opt/SUNWics5/cal/bin
    # ./certutil -N -d /var/opt/SUNWics5/alias
    -f /etc/opt/SUNWics5/config/sslPasswordFile

  8. 生成默认的自签名根认证机构证书。例如:
  9. # ./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

  10. 生成主机的证书。例如:
  11. # ./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 是服务器主机名。

  12. 验证证书。例如:
  13. # ./certutil -V -u V -n SampleRootCA -d /var/opt/SUNWics5/alias
    # ./certutil -V -u V -n SampleSSLServerCert -d /var/opt/SUNWics5/alias

  14. 列出证书。例如:
  15. # ./certutil -L -d /var/opt/SUNWics5/alias
    # ./certutil -L -n SampleSSLServerCert -d /var/opt/SUNWics5/alias

  16. 使用 modutil 列出可用的安全模块 (secmod.db)。例如:
  17. # ./modutil -list -dbdir /var/opt/SUNWics5/alias

  18. 将 alias 文件的属主更改为 icsusericsgroup(或将要运行 Calendar Server 的用户和组标识)。例如:
  19. # find /var/opt/SUNWics5/alias -exec chown icsuser {} \;
    # find /var/opt/SUNWics5/alias -exec chgrp icsgroup {} \;

 

从根认证机构 (CA) 请求并导入证书

以下步骤将生成认证请求,将请求提交给公钥基础设施 (PKI) Web 站点,然后导入证书。

从根认证机构请求并导入证书

  1. 以超级用户 (root) 身份登录或转为超级用户。
  2. 转到 bin 目录:
  3. # cd /opt/SUNWics5/cal/bin

  4. 以认证机构或公钥基础设施 (PKI) Web 站点为基础,使用 certutil 生成认证请求。例如:
  5. # ./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 为主机名。

  6. 从认证机构或公钥基础设施 (PKI) Web 站点为 SSL Web 服务器请求一个测试证书。将 hostnameCert.req 文件的内容复制并粘贴到认证请求中。
  7. 系统将通知您证书何时签名并可用。

  8. 将认证机构证书链和 SSL 服务器证书复制到文本文件中。
  9. 将认证机构证书链导入证书数据库以建立机构链。例如:
  10. # ./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

  11. 导入已签名的 SSL 服务器证书:
  12. # ./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

  13. 列出证书数据库中的证书:
  14. # ./certutil -L -d /var/opt/SUNWics5/alias

  15. ics.conf 文件中的 SSL 服务器昵称配置为已签名的 SSL 服务器证书,例如:"hostname SSL Server Test Cert"。
  16. 注意ics.conf 文件中的 service.http.calendarhostnameservice.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 配置

代码示例 9-1  Calendar Server 的 SSL 配置参数

 

service.http.ssl.cachedir = "."
service.http.ssl.cachesize = "10000"
service.http.ssl.certdb.password = "password"
service.http.ssl.certdb.path = "/var/opt/SUNWics5/alias"
service.http.ssl.port.enable = "yes"
service.http.ssl.port = "443"
service.http.ssl.securelogin = "yes"
service.http.ssl.securesession = "yes"

! 将 localhost 设置为您的本地主机的名称。

! 将端口号(默认端口为 443)设置为您所使用的 SSL 端口。

service.http.ssl.sourceurl = "https://localhost:443"

service.http.ssl.ssl2.ciphers = ""
service.http.ssl.ssl2.sessiontimeout = "0"
service.http.ssl.ssl3.ciphers = "rsa_rc4_40_md5,rsa_rc2_40_md5,rsa_des_sha,rsa_rc4_128_md5,rsa_3des_sha"
service.http.ssl.ssl3.sessiontimeout = "0"
service.http.ssl.usessl = "yes"
encryption.rsa.nssslactivation = "on"
encryption.rsa.nssslpersonalityssl = "SampleSSLServerCert"
encryption.rsa.nsssltoken = "internal"
service.http.tmpdir = "/var/opt/SUNWics5/tmp"
service.http.uidir.path = "html"

 


注意

没有为 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。



上一个      目录      索引      下一个     


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