Sun WebServer のインストール

第 3 章 SSL の設定

SSL の条件の概要

この節では、安全ソケットレイヤ (SSL) を Web サイトで使用する際に必要となる各主要コンポーネントについて説明します。この節は、SSL を動作させるためには何が必要で、コンポーネント同士がどのように相互作用しているか、その概要を示します。SSL の設定手順については、「SSL の設定手順」を参照してください。

Web サイトで SSL を使用する前に、暗号化のための公開鍵、非公開鍵、および (クライアントに示す) X.509 証明書が必要になります。X.509 証明書には、Web サイトの識別情報 (識別名)、発行者の識別情報、Web サイトの公開鍵、および発行者のデジタル署名を含みます。公共の Web サイトは通常、VeriSign などの第三者による証明書発行局 (CA) が署名した証明書を取得します。クライアントも第三者による CA の公開鍵を持っていれば、サイトの識別情報が本物であると確信できます。


注 -

このドキュメントで使用している「資格」という用語は、鍵パッケージ (公開、非公開暗号化鍵) および関連証明書の総称です。


Sun WebServer には、CA を動作させるためのソフトウェアが付属しています。CA は、Web サイトの SSL 資格を作成することができます。他にも、Sun WebServer のインスタンスが使用する Web サイト資格をインストールするためのツール、第三者が署名した資格を取得するためのツール、第三者の証明書をインストールするためのツールがあります。

SSL を動作させるには、以下の作業を行わなければなりません。

root 証明書発行局 (ルート CA) の作成

Web サイトの資格を作成するには、ユーザーのサイト上でルート CA を作成する必要があります。ルート CA のユーザーは、ユーザー自身の資格を作成し、次にその資格を使用して鍵パッケージを作成しネットワーク上の Web サーバーの証明書に署名します。資格は、フェデレーテッドネーミングサービス (FNS) に格納して他のマシンから容易にアクセスできるようにしたり、またはルート CA マシン上のファイルにのみ格納してアクセスを制限したりできます。デフォルトでは資格は、/var/fn に格納されます。

(資格が作成される) ルート CA ホストは、Sun WebServer と同じマシンである必要はありません。むしろ、セキュリティ上の理由からルート CA の実行は、別のマシン上で行うか、ネットワークアクセスが全く行われないマシン上で行うことをお勧めします。


注 -

上記手順は自己署名による証明書の場合にのみ行う必要があり、第三者の証明書のみを使用する場合は行う必要はありません。


ルート CA ユーザー

ルート CA ホストでは、root (UID 0) を除く任意のユーザー名を使用してルート CA ユーザーになることができます。ルート CA ユーザーは、Web サイトの資格を作成できる唯一のユーザーです。ルート CA ユーザーは自分専用のパスワードで保護された資格を作成し、その資格下、自身が作成したすべての証明書に署名できます。

ルート CA 資格は、識別名 (DN) エントリにバインド (連結) されています。すべての資格は、識別名にバインド (連結) されています。ルート CA 識別名には、以下の属性を使用します。

 属性タイプ 略語 例
 一般名 cn cn=rootca
 Email アドレス em em=rootca@A.net
 シリアル番号 serial serial=no12345
 部署 ou ou=web
 組織名 o o=A.net
 所在地 l l=internet
 州名 st st=California
 国名 c c=US

識別名では属性の順序が重要です。識別名は最も固有性の高い属性で始まり、最も固有性の低い属性で終わらなければなりません。属性は、最も固有性の高いもの (一般名) から最も固有性の低いもの (国名) まで順に示されています。

すべての資格は、ルート CA ユーザーが所有するディレクトリに格納されます (第三者が読み取ることはできません)。ルート CA ユーザーの資格 (および各 Web サイトの資格) は、フェデレーテッドネーミングサービス (FNS) を介して取得することができます。

ルート CA ホスト

SSL または鍵パッケージを使用するすべてのコンピュータには、セキュリティツールパッケージをインストールする必要があります。以下の条件を満たすマシン ( ルート CA ホスト) が少なくとも 1 つ存在しなければなりません。

ルート CA は Web サイトの資格を作成し、このホストに格納します。

ルート CA ホスト上で Sun WebServer を動作させる必要はありません。Sun WebServer マシンは、ファイルを ルート CA ホストからコピーすることで、このマシンがホストしている Web サイトの資格にアクセスできます。

フェデレーテッドネーミングサービス (FNS)

FNS は、SSL セキュリティツールが資格にアクセスするために使用するインターフェイスです。Sun WebServer セキュリティパッケージは、資格をファイルから格納したり検索する名前サービスコンテキストを作成します。

既存の FNS パッケージを削除し、Sun WebServer とともにバンドルされている SUNWfns パッケージをインストールします。

この手順は、Sun WebServer をインストールする前に行います。SUNWfns を削除せずにバンドルパッケージをインストールしてしまった場合は、 SSL を使用するホスト (ルート CA ホストを含む) 上ですぐにこの手順を実行してください。


注 -

Solaris 2.6 にバンドルされている SUNWfns パッケージは、SSL と一緒には動作しません。このパッケージを削除しても、データが失われることはありません。既存の FNS コンテキストは、新しい SUNWfns パッケージをインストールすれば格納されます。これら 2 つのパッケージはバージョン 11.6.0 ですが、pkginfo -l SUNWfns で表示される正式な VERSION は、11.6.0,REV=1998.02.08.15.10 です。


SSL 対応 Sun WebServer

Web サイトの SSL をサポートするには、Sun WebServer のインスタンスが必要です (このインスタンスでは、すべての SSL パッケージおよびライブラリが使用可能であり、SSL が使用される各 IP アドレスのポートで SSL が有効でなければなりません)。

ルート CA で作成した資格はサイトがホストされている Sun WebServer マシンにインストールしなければなりません。

Web サイトの固有 IP

ルート CA ユーザーは、Web サイトのホスト名および IP アドレスを使って Web サイトの資格を作成します。この資格は、固有のホスト名および IP アドレスに連結しなければなりません。したがって、SSL を有効にした各サイトの SSL ポートに対して固有の IP アドレスが存在しなければなりません。

証明書の署名

クライアントが Web サイト上の SSL を有効にしたポートに接続されると、このクライアントはサイトの資格を要求します。資格の確認は、信頼し得る CA (クライアントが公開鍵を受け取った CA) の署名によって行われます。

大半のクライアントはローカルのルート CA の公開鍵を持っていないため、VeriSign などよく知られた CA が署名したサイト資格を取得することをお勧めします。

SSL の設定手順

この節では、SSL を設定する手順の基本手順を示します。各手順は、さらに詳細な手順へと進みます。

SSL および CA を動作させるために必要な環境が不明の場合は、以下の手順を実行する前に 「SSL の条件の概要」を参照してください。

  1. 「ルート CA の設定」

  2. 「資格の作成」

  3. 「Web サイト上の SSL を有効にする」

  4. (任意) 「署名付き証明書の要求 」

ルート CA の設定

root 証明書 (CA) は、ネットワーク上の Web サイトの鍵パッケージおよび証明書を作成するために必要です。ルート CA ユーザーおよびルート CA マシンの役割が不明の場合は、「SSL の条件の概要」を参照してください。

ルート CA マシンを設定してから、次に Web サイトの資格を作成することができるルート CA を作成してください。

ルート CA のマシンを設定するには
  1. 資格を作成するための所定のパッケージがマシンにインストールされていることを確認します。

    SUNWhttp

    ルート CA を動作させるためのツールおよびスクリプトが格納されている

    SUNWfns

    最新のフェデレーテッドネーミングサービスファイル

    SUNWski

    SKI ライブラリ

    SUNWskica

    鍵パッケージおよび証明書を作成するための暗号化ソフトウェア

    SUNWskicw

    ルート CA のライセンスソフトウェア

    SUNWskimc

    SKI 1.0 ソフトウェア (CA マニュアルページパッケージ)

    SUNWskimu

    SKI 1.0 ソフトウェア (CA ユーザーマニュアルページパッケージ)

    SUNWssl

    SSL 1.0 ソフトウェア (グローバルバージョンライブラリ)

    SUNWskild

    SKI 1.0 ソフトウェアパッケージ (米国およびカナダのライブラリ)

    SUNWssld

    SSL 1.0 ソフトウェア (米国およびカナダのライブラリ)

    SSL のインストールを選択すると、これらのパッケージは Sun WebServer と一緒にインストールされます。

  2. Sun WebServer のインストール中に、セキュリティ鍵および証明書の作成に必要なプロセスが開始します。以下のプロセスが動作中であることを確認します。

    • /usr/lib/security/skiserv

    • /usr/lib/security/cryptorand

  3. ルート CA ユーザーとなるユーザーを選択または作成します。


    注 -

    このドキュメントではルート CA ユーザーを rootca としていますが、実際には /etc/passwd から任意の UNIX ユーザー名を選択することができます。


  4. rootca が所有しており資格の格納が可能なディレクトリを作成します。

    このディレクトリは、第三者による読み取りが可能であってはなりません。例 :


    # mkdir /var/SSL_CERTS
    # chmod 700 /var/SSL_CERTS
    # chown rootca /var/SSL_CERTS
    
ルート CA を作成するには
  1. ルート CA の識別名 (DN) エントリを決定します。

    詳細は、「ルート CA ユーザー」を参照してください。DNの例 : cn=rootca, o=A.net, st=California, c=US

  2. ルート CA マシンにルート CA ユーザーとしてログインします。

  3. create_rootcaを実行します。

    create_rootca/usr/bin で使用できない場合、このマシンには SUNWski パッケージがインストールされていません。

  4. ルート CA の DN を入力します。


    Enter Distinguished Name (e.g. "o=SUN, c=US") or q[uit]: 
    cn=rootca, o=A.net, st=California, c=US
    
  5. 資格を格納するディレクトリ名を入力します。


    Enter directory pathname under which the key package and certificate 
    will be stored, or q[uit].  Directory name ? /var/SSL_CERTS
    

    スクリプトは、ルート CA の公開鍵と非公開鍵を作成します。すべての鍵パッケージは、無断使用を防止するためにパスワード保護されます。

  6. ルート CA および鍵パッケージのパスワードを入力します。


    keypkg: Enter your NEW key package password:
    keypkg: Reenter your NEW key package password:
    
  7. 鍵パッケージをネーミングサービスにおいて使用可能にすることもできます。鍵パッケージをネーミングサービスに格納するには、マシンのルートパスワードが必要です。

    鍵パッケージは、必ずファイルに格納されます。鍵パッケージをネーミングサービスにおいて使用可能にすると、他のセキュリティツールは絶対パス名がなくても鍵を見つけることができます。

    これでルート CA が設定されました。次に、ルート CA で Web サイトの鍵パッケージおよび証明書を作成します。

    次の設定手順 「資格の作成」に進みます。

  8. 手順 7 を実行しない場合は、資格を FNS に保存し、その資格を手作業で格納します。


    # skistore -d dirname
    

    dirname は、手順 5 で指定したとおりです。

資格の作成

ルート CA は Web サイトの資格を作成し、ルート CA マシンに格納します。証明書は VeriSign など別の CA による署名でもかまいません。署名された資格は Sun WebServer マシンにインストールし、Web サイトで使用します。


注 -

このドキュメントで使用している「資格」という用語は、鍵パッケージ (公開、非公開暗号化鍵) および関連証明書の総称です。


Web サイトの資格を作成するには
  1. 完全指定のドメイン名 (FQDN) を一般名 (cn) として使用し Web サイトの識別名エントリを決定します。

    証明書の識別名の詳細は、「ルート CA ユーザー」を参照してください。

  2. ルート CA ユーザーとしてルート CA マシンにログインします。

  3. 資格を格納するディレクトリを作成します。


    rootca % mkdir /var/SSL_CERTS/121.122.123.12/
    
  4. /usr/http/bin/setup_creds に適切なオプションを付けて実行します。

    有効なオプションは、次のとおりです。

    -d output_directory

    資格を格納するディレクトリを指定する。例 : /var/SSL_CERTS/121.122.123.12/

    -f trusted_file

    (任意。信用されている他の CA の証明書を追加するために設定時に使用) 。ルート CA 証明書が格納されているファイルの絶対パス名を指定する。例 : /export/skirca2/certs/skirca2.CERT

    -i IP_Address

    資格が作成される Web サイトの IP アドレスを指定する

    -r rootca

    (任意) ルート CA ユーザー名 (スクリプトを実行するために使用したユーザー名) を指定する。-r を省略した場合は、setup_creds がこのシステム上のルート CA ユーザーのユーザー名を要求してくる


    # /usr/http/bin/setup_creds -r rootca ¥ 
    -d /var/SSL_CERTS/121.122.123.12/ -i 121.122.123.12
    
  5. Web サイト名としてのみホスト名を入力します。次に、ドメイン名を入力するよう要求してきます。

    たとえば、Web サイトが www.V.com の場合は、「www」と入力します。


    Enter host name on which you run httpd server: (Hit return 
    to use localhost) www
    
  6. Web サイトのドメイン名を入力します。


    Enter domain name for your server (for example, eng.sun.com) V.com
    
  7. Web サイトの DN 属性を一般名 (cn) なしで入力します。


    Enter Distinguished Name Suffix for your server (eg: o=SUN, c=US) : 
    o="Company V", st=California, c=US
    
  8. この Web サイトの資格に対して新しいパスワードを入力します。

    各鍵パッケージは、パスワードを持っています (このパスワードは、ルート CA の資格のパスワードとは別のものでなければなりません)。


    Please provide the password to encrypt your server's private key. You will 
    need it when you install the certificates. Enter password: 
    Reenter password:          
    Using configuration file '/tmp/try/host_config
    skilogin: Enter your own key package password:
    
  9. サイトの鍵パッケージおよび証明書は、指定のディレクトリに作成、格納されます。

    証明書の位置は、output_directory/certs/IP_Address.cert です。この例では証明書の位置は、/var/SSL_CERTS/121.122.123.12/certs/121.122.123.12.cert です。

    証明書は、別の証明書の上に再インストールする場合に必要になります。

  10. Web サイトの資格を追加作成するには、手順 1 〜 9 を繰り返します。

これで「自己署名による」証明書が作成されました。接続ブラウザの信頼 CA リストにあなたのルート CA がある場合は、この証明書を使用して SSL 暗号化を行うことができます。この証明書は、SSL を使用する必要があるブラウザの更新が可能な組織内で便利です (たとえば、SSL で Sun WebServer 管理コンソールを保護する場合など)。しかし、インターネット上の大半のクライアントはあなたのルート CA を認識しません。したがって、公共 SSL サイトの第三者が署名した証明書が必要になります。資格を Sun WebServer マシンにインストールした後、「署名付き証明書の要求 」を参照してください。

「Web サイト上の SSL を有効にする」の手順に進んでください。

Web サイト上の SSL を有効にする

Web サイト上の SSL を有効にするには、SSL パッケージがインストールされていることの確認、Sun WebServer が動作しているマシンへの資格のインストール、Web サイトで使用可能な SSL 対応ポートの設定の 3 つの手順が必要になります。

サイト資格の作成

Sun WebServer マシン上にサイト資格をインストールするには
  1. サイトの資格が格納されているディレクトリを Sun WebServer マシンにコピーします。

    ルート CA マシンと Sun WebServer マシンが同じ場合は、この手順をとばして先に進みます。

    ディレクトリをフロッピィディスクまたは他の持ち運び可能な媒体に移すか、またはディレクトリを NFS を介して Sun WebServer と共用できます。

    どちらの場合も、setup_creds の出力に対して指定したディレクトリ、およびこのディレクトリのすべてのサブディレクトリをコピーします。ディレクトリには、以下のものが存在しなければなりません。

    • certs/IP_Address.CERT

    • keypkgs/IP_Address.KEYPKG

    IP_Address は、Web サイトで使用されるアドレスです。

  2. Sun WebServer マシンにルートでログインし /usr/http/bin/install_certs を実行します。

    資格のパス、Web サイトの IP アドレス、Sun WebServer プロセスのユーザーID (uid) を指定する必要があります。例 :


    # /usr/http/bin/install_certs -p /floppy/cert_floppy -i 121.122.123.12 0
    
  3. この Web サイトの鍵パッケージパスワードを入力します。

    このパスワードは、手順 8 で指定したパスワードです。


    /usr/bin/skilogin : Enter host key package password
    

    この時点で資格が Sun WebServer マシンに格納されます。SSL を使用する Web サイトを設定するには、次の手順に従います。

SSL 用 Web サイトの設定

SSL を使用する Web サイトの IP アドレスにポートを作成します。SSL の接続に使用されるデフォルトのポートは、443 です。

ここでの説明は、Sun WebServer 管理コンソールが使用されていることを前提にしています。ポートの設定は、Web サイトのサーバーインスタンスの構成ファイル (たとえば /etc/http/sws_server.httpd.conf など) を編集することでも行えます。構成ファイルを編集する場合は、httpd.conf(4) のマニュアルページを参照してください。

SSL 用に Web サイトを設定するには
  1. Sun WebServer 管理コンソールに接続し、ログインします。

    接続については、第 2 章「管理サーバーの設定」 を参照してください。

  2. Web サイトをホストしているサーバーインスタンスをサーバーリストから探します。構成ページが表示されていない場合は、「+」をクリックしてフォルダを展開します。

  3. Web サイトの IP アドレスがわからない場合は、Web サイトページを選択します。

    Web サイトで使用される IP アドレス (1 つまたは複数) が、リストに表示されます。


    注 -

    同一の IP アドレスを複数の Web サイトで使用してはなりません。SSL 証明書は、固有の IP アドレスとホスト名からなる組み合わせと、密接に結びついています。


  4. 「IP/ ポート」ページをクリックしてポートを Web サイトの IP アドレスに追加します。

    ネットワーク接続リストが右側に表示され、このリストにサーバーインスタンスが使用するすべての IP アドレスおよびポートが表示されます。

  5. 「追加」をクリックして、Web サイトの IP アドレスとポート 443 を指定してネットワーク接続を作成します。

    ネットワーク接続ダイアログが開きます。

  6. IP アドレスフィールドに Web サイトの IP アドレスを入力します。ポートフィールドに、SSL をアクティブにしたいポート (通常、443) を入力します。タイムアウト、および「HTTP 1.0 Keepalive を使用可能にする」かどうかを設定します。

    タイムアウトおよび「HTTP 1.0 Keep-alive を許可」が不明な場合は、「ダイアログのヘルプ」をクリックします。タイムアウトを 300 秒に設定し、HTTP 1.0 Keep-alive を使用可能にすれば、十分なパフォーマンスが得られます。

  7. 「SSL を有効化」ボックスをクリックします。

  8. 個人用の有効な証明書を取得しているクライアントからのみ接続を受け付けたい場合は、「クライアント証明書の要求」ボックスをクリックします。

    このフィールドの詳細については、「ダイアログのヘルプ」をクリックしてください。

  9. 有効にしたい暗号群を設定します。

    サーバーは、共通暗号群を使用するためにクライアントとネゴシエーションを行います。クライアントとサーバーが複数の共通暗号群を持っている場合は、最強の暗号群が使用されます。

    米国/カナダの暗号化ソフトウェアを使用しており、特定セットを明示的に指定する必要がないのであれば、128 ビットと 40 ビットの両方を使用することをお勧めします。

    グローバル暗号化ソフトウェアを使用している場合は、40 ビットの暗号群のみを使用できます。「40 ビット」ボックスをクリックします。

  10. 「了解」をクリックして変更を保存し、次に「サーバー」->「IP/ ポートを保存」を選択します。

  11. SSL をサーバーインスタンスのデフォルトサイトに設定する場合は、これ以降の手順をとばします。

    サーバー上のデフォルトサイトは、そのサーバーに対して定義されているすべての接続終端を待機します。したがって、新しい SSL 接続を Web サイトに追加する必要はありません。

  12. サーバーリストから Web サイトページを選択し、Web サイトを選択します。「サーバー」->「Web サイトを編集」を選択します。

    「Edit Web Site」ダイアログで、接続リストから SSL が有効なネットワーク接続を選択します。接続は、IP_Address:Port という形式で表示されます。

  13. >」をクリックして接続をサイト接続リストに移動します。


    注 -

    この手順 13 は、デフォルトのサイトには適用されません (デフォルトのサイトは自動的にサーバーのすべての接続終端を待機するからです)。サーバーインスタンスのデフォルトサイトを設定する場合は、手順 12 から 15 までをとばします。


  14. 「保存」をクリックして Web サイトの変更を確認します。

  15. 「サーバー」->「保存」」を選択して変更内容を保存します。

    次の設定手順 「署名付き証明書の要求 」に進みます。

署名付き証明書の要求

第三者の CA によって署名された Web サイトの証明書を取得することは、サイト識別情報に関して独立した監査役の確認を取得することと同等です。クライアントが信頼する CA が資格に「デジタル署名」していない限り、クライアントは、サイトが本当に安全だとは信頼できません。

Sun WebServer は現在、第三者による CA として VeriSign のみをサポートしています。Sun WebServer に付属しているツールを使用すると、証明書および証明書の署名要求 (CSR) を公共の Web サイトから VeriSign に送信できます。

署名付き Web サイト証明書を要求するには
  1. ローカルのルート CA は資格を作成し、それを Sun WebServer マシンに格納しなければなりません。

    詳細は、「資格の作成」および 「Web サイト上の SSL を有効にする」を参照してください。

  2. スーパーユーザーとして (root) Sun WebServer マシンにログインします。

  3. send_request ユーティリティを実行して、CA に送信する証明書を作成します。

    コマンド行で、証明書に署名してもらいたいサイトの IP アドレスを指定しなければなりません。移動可能な証明書は、-o を使って別のディレクトリ (このディレクトリはすでに存在していなければなりません) を指定しない限り、/tmp 中のファイルに格納されます。


    # mkdir /var/SSL_CERTS/requests
    # /usr/http/bin/send_request -o /var/SSL_CERTS/requests 121.122.123.12
    
  4. Web サイトの鍵パッケージパスワードを入力します。

    このパスワードは、 ルート CA の鍵パッケージパスワードではありません。このパスワードは、setup_creds を実行したときに作成したパスワードです。

  5. 証明書の署名要求が指定ディレクトリに格納されるか、または cert.request という名前のファイル中の /tmp に格納されます。

    このファイルの内容は、Web サイトから VeriSign に送信できます。

  6. CA の手順に従って、署名された証明書を要求する必要があります。ある時点で、作成された証明書ファイルを CA に与える必要があります。

    VeriSign 証明書を要求するには、http://www.verisign.com/idcenter/new/ にアクセスします。Sun Microsystems のサーバーソフトウェアのサーバー証明書を要求する必要があります。

  7. CA が署名済み証明書を送信したら、それをファイルに保存します。

    たとえば、応答を /tmp/121.122.123.12.cert に保存します。


    注意 - 注意 -

    CA からの証明書は、資格を格納するためにルート CA が使用するディレクトリに保存してはなりません。


  8. ルートで /usr/http/bin/install_external を実行して、署名済み証明書を SSL に対して使用可能にします。

クライアント認証を有効にする

クライアントがデジタル ID を持っている場合、クライアントの接続を認証する方法として SSL を使用できます。Sun WebServer は現在、VeriSign の個人用デジタル ID をサポートしています。VeriSign は、鍵および保護の強度に基づいて、以下に示す 3 つのレベルの個人用デジタル ID を提供しています。

SSL Web サイトの設定では、クライアント認証の要求、およびどのレベル (1 つまたは複数) の個人用 ID を受け付けるかを定義できます。

SSL 用にクライアント認証を要求するには
  1. Sun WebServer 管理コンソールにログインし、SSL が導入済の Web サイトがホストされているサーバーの「 IP/ ポート」のリストを表示します。

  2. この Web サイトで使用される SSL が導入済の接続を選択し、「編集」をクリックします。

    「ネットワーク接続を追加 / 編集」ダイアログが開きます。

  3. ダイアログボックスで、「クライアント証明書の要求」ボックスをクリックし、次に「了解」をクリックします。

  4. 「サーバー」->「IP/ ポートの保存」を選択して設定を保存します。

  5. コマンド行に戻り、スーパーユーザーになります。

  6. コマンドの構文は、次のとおりです。

    setup_client_auth -e | -d -i IP_Address Signer

    -e フラグは署名者が署名した証明書を持っているクライアントへのアクセスを可能にし、-d フラグは当該アクセスを不可にします。IP_Address は、SSL 導入済の Web サイトの IP アドレスです。

    Signer は、Class1、Class2、Class3 という 3 つの VeriSign クラスのどれかになることができます。

    setup_client_auth を複数回実行し、複数の署名者を使用可能、または使用不可能にします。使用可能になった CA は、Web サイトの信頼された鍵リストに追加されます。