Calendar Server に SSL を実装するには、証明書データベースが必要です。証明書データベースには、CA (証明書発行局) と Calendar Server の証明書を定義する必要があります。ここでは、概念的な情報と、作業に関する情報を提供します。
証明書データベースを作成する前に、次のことを把握しておいてください。
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
例で使用するファイルとディレクトリ — この章で紹介する例は、次のファイルとディレクトリを使用します。
alias は、証明書データベースを格納したディレクトリです。次のディレクトリの中に alias ディレクトリを作成します。
/var/opt/SUNWics5
また、alias ディレクトリは定期的にバックアップしてください。
sslPasswordFile は、証明書データベースのパスワードを記録したテキストファイルです。これは certutil ユーティリティーが使用するファイルで、Calendar Server は使用しません。次のディレクトリに sslPasswordFile を作成します。
/etc/opt/SUNWics5/config
/etc/passwd には、乱数生成用のエントロピーが用意されています。つまり、このディレクトリは、乱数生成機能が真にランダムな結果を確実に生成するのに役立つ、有効で一意なシードを生成するために使用されます。
スーパーユーザー (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 オプションを付けてユーティリティーを実行することは避けてください。
デフォルトの自己署名ルート CA (証明書発行局) 証明書を生成します。次に例を示します。
# ./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 を実行するそれ以外のユーザーとグループの ID) に変更します。次に例を示します。
# find /var/opt/SUNWics5/alias -exec chown icsuser {}; # find /var/opt/SUNWics5/alias -exec chgrp icsgroup {}; |
次の手順で、証明書要求の生成、PKI (Public Key Infrastructure) の Web サイトへの要求の送信、証明書のインポートを行う方法について説明します。
スーパーユーザー (root) としてログインするか、スーパーユーザーになります。
bin ディレクトリに移動します。
# cd /opt/SUNWics5/cal/bin |
certutil を使用して、証明書発行局または PKI (Public Key Infrastructure) の Web サイトに適した証明書要求を作成します。次に例を示します。
# ./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” はサーバーホスト名です。
SSL Web サーバー用のテスト証明書を CA (証明書発行局) または PKI (Public Key Infrastructure) の 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
Calendar Server に SSL を実装するには、ics.conf ファイルの特定のパラメータを設定する必要があります。次の表に示されているパラメータのいずれかが ics.conf ファイルにない場合、指定した値とともにファイルに追加します。システムの起動時 (start-cal の実行時) は ics.conf が読み取り専用であるため、新しい値は Calendar Server が再起動されるまで反映されません。これらの SSL パラメータについては、「SSL の設定」を参照してください。
設定を変更する権限を持つ管理者としてログインします。
/etc/opt/SUNWics5/cal/config ディレクトリに移動します。
古い ics.conf ファイルをコピーして名前を変更し、保存します。
次の表に示すパラメータを 1 つ以上編集します。
パラメータ |
値 |
---|---|
encryption.rsa.nssslactivation |
“on” |
encryption.rsa.nssslpersonalityssl |
“SampleSSLServerCert” |
encryption.rsa.nsssltoken |
“internal” |
service.http.tmpdir |
“/var/opt/SUNWics5/tmp” |
service.http.uidir.path |
“html” |
service.http.ssl.cachedir |
“.” |
service.http.ssl.cachesize |
“10000” |
service.http.ssl.certdb.password |
" " (適切なパスワードを入力) |
service.http.ssl.certdb.path |
“/var/opt/SUNWics5/alias” |
service.http.ssl.port.enable |
“yes” |
service.http.ssl.port |
"443" (デフォルトの SSL ポート) 注 – HTTP のデフォルトポートであるポート "80" ではありません。 |
service.http.securesession |
"yes" (セッション全体を暗号化する) |
service.http.ssl.sourceurl |
“https”//localhost:port” (ローカルホスト名、および service.http.ssl.port の値を入力) |
service.http.ssl.ssl2.ciphers |
““ |
service.http.ssl.ssl2.sessiontimeout |
“0” |
service.http.ssl.ssl3.ciphers |
"rsa_red_40_md5, rsa_rc2_40_md5, rsa_des_sha, rsa_rc4_128_md5, rsa_3des_sha" |
service.http.ssl.ssl3.sessiontimeout |
“0” |
service.http.sslusessl |
“yes” |
ファイルを ics.conf として保存します。
変更を適用するために Calendar Server を再起動します。
cal_svr_base/SUNWics5/cal/sbin/start-cal