Apache Web Server 上での SSL の手動設定
smsps では OpenSSL 暗号化ツールキットを使用します。このツールキットには SSL v2/v3 およびトランスポート レイヤ セキュリティ(TLS v1)ネットワーク プロトコル、および関連する暗号化標準が実装されています。OpenSSL ツールキットには、キーおよび証明書を生成するための openssl コマンド ライン ツールが含まれます。openssl の実行可能イメージおよびサポート ライブラリは、installation_home\SSL\bin フォルダまたは対応する UNIX ディレクトリにあります。
casso126jjp
証明書の管理
CA Access Gateway
では OpenSSL 暗号化ツールキットを使用します。このツールキットには SSL v2/v3 およびトランスポート レイヤ セキュリティ(TLS v1)ネットワーク プロトコル、および関連する暗号化標準が実装されています。OpenSSL ツールキットには、キーおよび証明書を生成するための openssl コマンド ライン ツールが含まれます。openssl の実行可能イメージおよびサポート ライブラリは、installation_home\SSL\bin フォルダまたは対応する UNIX ディレクトリにあります。以下の手順に従います。
- 注意事項を確認します。
- 以下のいずれかの手順を使用して、秘密キーを生成します。
- FIPS 専用モード用の秘密キーを生成します。
- FIPS COMPAT モード用の秘密キーを生成します。
- 以下の手順のいずれかを実行します。
- 証明書署名リクエストを生成して認証機関へサブミットし、認証機関から証明書をダウンロードしてインストールします。
- 自己署名公開証明書を生成します。
- SSL を有効にします。
注意事項の確認
SSL を設定する前に、秘密キーおよびサーバ証明書に関する以下の情報を確認します。
- サーバ証明書と秘密キーは連携して動作するため、サーバ証明書を対応する秘密キーと共に使用します。
- サーバ証明書は認証機関(CA)によってデジタル署名する必要があります。社内デモ用に SSL を有効にする場合、サーバ証明書をユーザ自身の秘密キーで自己署名することができます。
- SSL.conf ファイル内の SSLCertificateFile および SSLCertificateKeyFile ディレクティブは、対応する証明書およびキー ファイルを指している必要があります。
- Apache の仮想ホスト機能を使用している場合、保護する各仮想ホストにはそれぞれの秘密キーおよびサーバ証明書が必要です。
秘密キーの生成
SSL ではキーを使用し、メッセージを暗号化および復号化します。キーはペアで提供されます(公開キー 1 つと秘密キー 1 つ)。
キーでは、さまざまな暗号化アルゴリズムおよびキー交換メソッドを使用します。証明書で使用する秘密キーを生成するには、一般的に、DES (Data Encryption Standard)暗号化アルゴリズムを含む RSA キー交換メソッドが使用されます。キー出力ファイルは、暗号化された ASCII PEM 形式です。
FIPS 専用モード用の秘密キーの生成
PKCS#8 形式では、互換性がある暗号化およびハッシュ アルゴリズムを使用して、ファイルを暗号化します。必要な強力な暗号化では、3DES 署名および SHA1 ハッシュを使用します。
暗号化された秘密キーを生成するには、以下の手順を実行します。
- コマンド ライン ウィンドウを開きます。
- 以下のディレクトリに移動します。installation_home\SSL\bininstallation_homeCA SiteMinder® SPS のインストール先ディレクトリを定義します。デフォルト: (Windows) [32-bit] C:\Program Files\CA\secure-proxyデフォルト: (Windows) [64-bit] C:\CA\secure-proxyデフォルト: (UNIX/Linux) /opt/CA/secure-proxy
- 以下のコマンドを実行して、暗号化されていないキーを生成します。openssl genrsa -out unencryptedserver.keynumbits(オプション) numbits生成する必要がある秘密キーのサイズ(ビット単位)を指定します。デフォルト: 1024範囲: 1024 ~ 2048
- 以下のコマンドを実行して、生成されたキーを暗号化し、ファイルを保護するためのパスフレーズを入力します。
openssl pkcs8 -in unencryptedserver.key -topk8 -outserver.key -v1 PBE-SHA1-3DES
server
サーバの完全修飾ドメイン名を指定します。
暗号化されていない秘密キーを生成するには、以下の手順を実行します。
- コマンド ライン ウィンドウを開きます。
- 以下のディレクトリに移動します。installation_home\SSL\bininstallation_homeCA SiteMinder® SPS のインストール先ディレクトリを定義します。デフォルト: (Windows) [32-bit] C:\Program Files\CA\secure-proxyデフォルト: (Windows) [64-bit] C:\CA\secure-proxyデフォルト: (UNIX/Linux) /opt/CA/secure-proxy
- 以下のコマンドを実行します。openssl genrsa -out ..\keys\server.keynumbitsserverサーバの完全修飾ドメイン名を指定します。(オプション) numbits生成する必要がある秘密キーのサイズ(ビット単位)を指定します。デフォルト: 1024範囲: 1024 ~ 2048
暗号化されていないサーバ秘密キーが生成されます。
FIPS COMPAT モードでの秘密キーの生成
これは、互換性がある暗号化およびハッシュ アルゴリズムを使用して、ファイルを暗号化します。必要な強力な暗号化では、3DES 署名および MD5 ハッシュを使用します。
暗号化された秘密キーを生成するには、以下の手順を実行します。
- コマンド ライン ウィンドウを開きます。
- 以下のディレクトリに移動します。installation_home\SSL\bininstallation_homeCA SiteMinder® SPS のインストール先ディレクトリを定義します。デフォルト: (Windows) [32-bit] C:\Program Files\CA\secure-proxyデフォルト: (Windows) [64-bit] C:\CA\secure-proxyデフォルト: (UNIX/Linux) /opt/CA/secure-proxy
- 以下のコマンドを実行し、ファイルを保護するパスフレーズを入力します。openssl genrsa -des3 -out ..\keys\server.key [numbits]serverサーバの完全修飾ドメイン名を指定します。(オプション)numbits生成する必要がある秘密キーのサイズ(ビット単位)を指定します。デフォルト: 1024範囲: 1024 ~ 2048
暗号化されていない秘密キーを生成するには、以下の手順を実行します。
- コマンド ライン ウィンドウを開きます。
- 以下のディレクトリに移動します。installation_home\SSL\bininstallation_homeCA SiteMinder® SPS のインストール先ディレクトリを定義します。デフォルト: (Windows) [32-bit] C:\Program Files\CA\secure-proxyデフォルト: (Windows) [64-bit] C:\CA\secure-proxyデフォルト: (UNIX/Linux) /opt/CA/secure-proxy
- 以下のコマンドを実行します。openssl genrsa -out ..\keys\server.key [numbits]serverサーバの完全修飾ドメイン名を指定します。(オプション)numbits生成する必要がある秘密キーのサイズ(ビット単位)を指定します。デフォルト: 1024範囲: 1024 ~ 2048
証明書署名リクエストの生成およびサブミット
秘密キーを使用して証明書リクエストまたは証明書署名リクエストを生成し、証明書に署名するために、それを認証機関にサブミットします。
以下の手順に従います。
- コマンド ライン ウィンドウを開きます。
- 以下のコマンドを実行します。openssl req -config .\openssl.cnf -new -key ..\keys\server.key -out ..\keys\server.csr
- 画面の指示に従って値を入力します。システムは、証明書ファイル名とリクエスト番号を含む証明書リクエストを生成します。
- (オプション)後で参照するためにファイル名と証明書署名リクエストを記録しておきます。
- 証明書署名リクエストを認証機関にサブミットします。
認証機関からの証明書のダウンロードおよびインストール
署名付き証明書を認証機関からダウンロードします。
以下の手順に従います。
- 証明書リクエストを発行したCA Access Gatewayホストにログインします。
- httpd-ssl conf ファイルを開きます。デフォルト パス:installation_home\httpd\conf\extra\httpd-ssl.conf
- サーバ キーおよび証明書のディレクティブが正しいことを確認します。
- SSLPassPhraseDialog 変数の値をカスタムに設定します。
- SSLCustomPropertiesFile 変数の値を \httpd\conf\spsapachessl.properties に設定します。
- RootCA への参照が設定されていることを確認します。
- RootCA または自己署名証明書を ca-bundle.cert に追加するには、以下の手順に従います。
- メモ帳で証明書を開き、BEGIN から END までの行をコピーします。
- メモ帳で ca-bundle.cert を開き、証明書の行を末尾に貼り付けます。
- 変更を保存します。
自己署名証明書の生成
自己署名証明書を生成するには、以下の手順を実行します。
- コマンド ライン ウィンドウを開きます。
- 以下のコマンドを実行します。openssl req -new -x509 -key server.key -out server.crt -days 365 -config openssl.cnf
- 出力ファイルを以下の場所に置きます。
installation_home\SSL\certs
SSL の有効化
暗号化された秘密キー、または暗号化されていない秘密キーに対して SSL を有効化することができます。
Windows 上の暗号化されていない秘密キーに対して SSL を有効化
Windows 上の暗号化されていない秘密キーに対して SSL を有効化するには、spsapachessl.properties ファイルを生成します。
以下の手順に従います。
- 管理者権限を使用してコマンドライン ウィンドウを開きます。
- 以下のディレクトリに移動します。textinstallation_home\httpd\bin
- 以下のスクリプト ファイルを実行します。textconfigssl.bat -enable注: 上書きの警告が表示される場合は、既存の spsapachessl.properties ファイルに上書きすることを確認します。SSL が設定されます。
UNIX 上の暗号化されていない秘密キーに対して SSL を有効化
UNIX 上の暗号化されていない秘密キーに対して SSL を有効化するには、以下の場所にある spsapachessl.properties を編集します。
installation_home
/httpd/conf/spsapachessl.properties以下の手順に従います。
- テキスト エディタで spsapachessl.properties ファイルを開きます。
- 以下の行を追加するか編集します。
- 以下のいずれかのタスクを実行します。
- ファイル内に「apache.ssl.enabled=」が存在する場合は、その行を以下の値に設定します。textapache.ssl.enabled=Y
- ファイル内に「apache.ssl.enabled=」が存在しない場合は、以下の行を追加します。textapache.ssl.enabled=Y
- 変更を保存します。
暗号化された秘密キーに対して SSL を有効化
暗号化された秘密キーに対して SSL を有効化するには、spsapachessl.properties ファイルを生成します。
以下の手順に従います。
- 管理者権限を使用してコマンドライン ウィンドウを開きます。
- 以下のディレクトリに移動します。Windowstextinstallation_home\httpd\binUNIXtextinstallation_home/httpd/bin
- 以下のスクリプトを実行します。Windowstextconfigssl.bat -enablepassphraseUNIXtextconfigssl.shpassphrase注: パスフレーズ値は、サーバ キーのパスフレーズ値に一致する必要があります。上書きの警告が表示される場合は、既存の spsapachessl.properties ファイルに上書きすることを確認します。UNIX では、パス フレーズで特殊文字を使用する場合は、一重引用符で特殊文字を指定します。パスフレーズは暗号化され、spsapachessl.properties ファイルに格納されます。
- セキュア プロキシ サービスを再起動します。
仮想ホストに対する SSL の有効化
Apache サーバは仮想ホストをサポートします。仮想ホストは単一の Apache バイナリから実行される複数の Web ホストです。Apache の仮想ホストは名前ベースまたは IP ベースとすることができます。名前ベースの仮想ホストは単一の IP アドレスを共有できます。これに対し、IP ベースの仮想ホストの場合、仮想ホストごとに異なる IP アドレスが必要です。
SSL プロトコルを使用する Apache の仮想ホスト:
- プロトコルの制限により IP ベースである必要があります。
- セキュリティで保護された(HTTPS)リクエストと、セキュリティで保護されていない(HTTP)リクエストの両方に対して、Apache 設定ファイル内に仮想ホスト コンテナが設定されている必要があります。
セキュリティで保護された(HTTPS)仮想ホストの例を以下に示します。
<VirtualHost 10.0.0.1:443> DocumentRoot ".../htdocs/site1" ServerName www.site1.net ServerAdmin [email protected] ErrorLog logs/covalent_error_log_site1 TransferLog logs/... SSLEngine on SSLCertificateFile /www.site1.net.cert SSLCertificateKeyFile /www.site1.net.key CustomLog logs/cipher_log_site1 \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" </VirtualHost>