HttpClient ヌードル上での SSL の手動設定

以下の手順に従います。
casso126jjp
以下の手順に従います。
  1. 証明書を管理します。
  2. クライアント証明書認証を設定します。
  3. server.conf ファイルを設定します。
証明書の管理
 
CA Access Gateway
では OpenSSL 暗号化ツールキットのネットワーク プロトコルおよび関連する暗号化標準を使用します。OpenSSL ツールキットには、キーおよび証明書を生成するための openssl コマンド ライン ツールが含まれます。openssl の実行可能イメージおよびサポート ライブラリは、
installation_home
\SSL\bin フォルダまたは対応する UNIX ディレクトリにあります。
以下の手順に従います。 
  1. 注意事項を確認します。
  2. 以下の
    いずれか
    の手順を使用して、秘密キーを生成します。
    • FIPS 専用モードでの秘密キーの生成
    • FIPS COMPAT モードでの秘密キーの生成
  3. 以下の手順のいずれかを実行します。
    • 証明書署名リクエストを生成して認証機関へサブミットし、認証機関から証明書をダウンロードしてインストールします。
    • 証明書署名リクエストを生成して自己署名します。
注意事項の確認
SSL を設定する前に、秘密キーおよびサーバ証明書に関する以下の情報を確認します。
  • サーバ証明書と秘密キーは連携して動作するため、対応する秘密キーを含むサーバ証明書を使用します。
  • サーバ証明書は認証機関(CA)によってデジタル署名する必要があります。社内デモ用に SSL を有効にする場合、サーバ証明書をユーザ自身の秘密キーで自己署名することができます。
  • SSL.conf ファイル内の SSLCertificateFile および SSLCertificateKeyFile ディレクティブは、対応する証明書およびキー ファイルを指している必要があります。
  • Apache の仮想ホスト機能を使用している場合、保護する各仮想ホストにはそれぞれの秘密キーおよびサーバ証明書が必要です。
秘密キーの生成
FIPS 専用モードでの秘密キーの生成
FIPS 専用モードでは、暗号化された秘密キーまたは暗号化されていない秘密キーを生成できます。
暗号化された秘密キーを生成するには、以下の手順を実行します。
  1. コマンド ライン ウィンドウを開きます。
  2. 以下のディレクトリに移動します。
    installation_home
    \SSL\bin
    installation_home
    CA SiteMinder® SPS のインストール先ディレクトリを定義します。
    デフォルト
    : (Windows) [32-bit] C:\Program Files\CA\secure-proxy
    デフォルト
    : (Windows) [64-bit] C:\CA\secure-proxy
    デフォルト
    : (UNIX/Linux) /opt/CA/secure-proxy
  3. 以下のコマンドを実行します。
    openssl genrsa -out unencryptedserver.key 1024
    openssl pkcs8 -in unencryptedserver.key -topk8 -out
    noodleclient
    .key -v1 PBE-SHA1-3DES
暗号化されていない秘密キーを生成するには、以下の手順を実行します。
  1. コマンド ライン ウィンドウを開きます。
  2. 以下のディレクトリに移動します。
    installation_home
    \SSL\bin
    installation_home
    CA SiteMinder® SPS のインストール先ディレクトリを定義します。
    デフォルト
    : (Windows) [32-bit] C:\Program Files\CA\secure-proxy
    デフォルト
    : (Windows) [64-bit] C:\CA\secure-proxy
    デフォルト
    : (UNIX/Linux) /opt/CA/secure-proxy
  3. 以下のコマンドを実行します。
    .\openssl genrsa -out ..\keys\server.key [
    numbits
    ]
    server
    サーバの完全修飾ドメイン名を指定します。
    (オプション)
    numbits
    生成する必要がある秘密キーのサイズ(ビット単位)を指定します。
    デフォルト
    : 1024
    範囲
    : 1024 ~ 2048
暗号化されていないサーバ秘密キーが生成されます。
FIPS COMPAT モードでの秘密キーの生成
FIPS COMPAT モードでは、暗号化された秘密キーまたは暗号化されていない秘密鍵を生成できます。
暗号化された秘密キーを生成するには、以下の手順を実行します。
  1. コマンド ライン ウィンドウを開きます。
  2. 以下のディレクトリに移動します。
    installation_home\SSL\bin
    installation_home
    CA SiteMinder® SPS のインストール先ディレクトリを定義します。
    デフォルト
    : (Windows) [32-bit] C:\Program Files\CA\secure-proxy
    デフォルト
    : (Windows) [64-bit] C:\CA\secure-proxy
    デフォルト
    : (UNIX/Linux) /opt/CA/secure-proxy
  3. 以下のコマンドを実行します。
    .\openssl genrsa -des3 -out ..\keys\
    noodleclient
    .key
    numbits
    server
    サーバの完全修飾ドメイン名を指定します。
    (オプション)
    numbits
    生成する必要がある秘密キーのサイズ(ビット単位)を指定します。
    デフォルト
    : 1024
    範囲
    : 1024 ~ 2048
暗号化されていない秘密キーを生成するには、以下の手順を実行します。
  1. コマンド ライン ウィンドウを開きます。
  2. 以下のディレクトリに移動します。
    installation_home
    \SSL\bin
    installation_home
    CA SiteMinder® SPS のインストール先ディレクトリを定義します。
    デフォルト
    : (Windows) [32-bit] C:\Program Files\CA\secure-proxy
    デフォルト
    : (Windows) [64-bit] C:\CA\secure-proxy
    デフォルト
    : (UNIX/Linux) /opt/CA/secure-proxy
  3. 以下のコマンドを実行します。
    .\openssl genrsa -out ..\keys\server.key [
    numbits
    ]
    server
    サーバの完全修飾ドメイン名を指定します。
    (オプション)
    numbits
    生成する必要がある秘密キーのサイズ(ビット単位)を指定します。
    デフォルト
    : 1024
    範囲
    : 1024 ~ 2048
暗号化されていないサーバ秘密キーが生成されます。
証明書署名リクエストの生成およびサブミット
秘密キーを使用して証明書リクエストまたは証明書署名リクエストを生成し、証明書に署名するために、それを認証機関にサブミットします。
以下の手順に従います。
  1. コマンド ライン ウィンドウを開きます。
  2. 以下のコマンドを実行します。
    .\openssl req -config .\openssl.cnf -new -key ..\keys\server.key -out ..\keys\server.csr
  3. 画面の指示に従って値を入力します。
    システムは、証明書ファイル名とリクエスト番号を含む証明書リクエストを生成します。
  4. (オプション)後で参照するためにファイル名と証明書署名リクエストを記録しておきます。
  5. 証明書署名リクエストを認証機関にサブミットします。
認証機関からの証明書のダウンロードおよびインストール
署名付き証明書を認証機関からダウンロードします。
以下の手順に従います。
  1. 証明書リクエストを発行した
    CA Access Gateway
    ホストにログインします。
  2. httpd-ssl conf ファイルを開きます。
    デフォルト パス
    installation_home
    \httpd\conf\extra\httpd-ssl.conf
  3. サーバ キーおよび証明書のディレクティブが正しいことを確認します。
  4. SSLPassPhraseDialog 変数の値をカスタムに設定します。
  5. SSLCustomPropertiesFile 変数の値を \httpd\conf\spsapachessl.properties に設定します。
  6. RootCA への参照が設定されていることを確認します。
  7. RootCA または自己署名証明書を ca-bundle.cert に追加するには、以下の手順に従います。
    1. メモ帳で証明書を開き、BEGIN から END までの行をコピーします。
    2. メモ帳で ca-bundle.cert を開き、証明書の行を末尾に貼り付けます。
  8. 変更を保存します。
自己署名証明書の生成
自己署名証明書を生成するには、以下の手順を実行します。
  1. コマンド ライン ウィンドウを開きます。
  2. 以下のコマンドを実行します。
    openssl req -new -x509 -key server.key -out server.crt -days 365 -config openssl.cnf
  3. 出力ファイルを以下の場所に置きます。
installation_home
\SSL\certs
クライアント証明書認証の設定
CA Access Gateway
とバックエンド サーバの間の安全な SSL 接続に対して、クライアント証明書認証を確立します。クライアント証明書認証を有効にすると、
CA Access Gateway
は、バックエンド サーバのリソースをリクエストする場合に、自分自身を認証するためにクライアント証明書を使用します。
前提条件
クライアント証明書認証を有効にするために、
CA Access Gateway
を設定する前に、以下のタスクが完了していることを確認します。
  • ライアント証明書認証が、ユーザ リクエストの転送先の Web サーバで有効である。
  • クライアント証明書が、
    CA Access Gateway
    のインストール時にインストールされた openssl.exe ユーティリティを使って、pkcs8 規格の
    CA Access Gateway
    に対して生成されている。
  • 既存のクライアント証明書を使用する場合は、pkcs8 DER 形式に変換されている。
  • CA Access Gateway
    クライアント証明書の公開証明書およびルート証明書が、
    installation_path
    \SSL\Clientcert\certs に格納されている。
  • 設定済み Web サーバの公開証明書が、
    installation_path
    \SSL\certs\ca-bundle.cert に格納されている。
  • CA Access Gateway
    クライアント証明書の公開証明書が、設定済み Web サーバの信頼されたストアに格納されている。
クライアント証明書認証の有効化
クライアント証明書認証を有効にするために、
CA Access Gateway
を設定します。
以下の手順に従います。
  1. 以下の手順を実行して、
    CA Access Gateway
    クライアント証明書の秘密キーのパスワードを暗号化します。
    1. コマンド プロンプトを開きます。
    2. 以下の場所に移動します。
      installation_path
      \SSL\bin location
    3. 以下のコマンドを実行します。
      Windows
      EncryptUtil.bat <SPSCertificatePrivateKey_Password>
       
      UNIX
      EncryptUtil.sh <SPSCertificatePrivateKey_Password>
      暗号化されたパスワードが表示されます。
  2. sslparams セクションで以下の手順に従うことにより、server.conf ファイル内のクライアント証明書認証詳細を設定します。
    1. CA Access Gateway
      クライアント証明書のキー ファイル名を、ClientKeyFile に pkcs8 形式で入力します。
    2. ClientPassPhrase の手順 1 で生成した、暗号化されたパスワードを入力します。
    クライアント証明書認証は、server.conf ファイルで設定されます。
  3. 設定済み Web サーバへクライアント リクエストを転送するには、proxyrules.xml ファイルを設定します。
  4. CA Access Gateway
    を再起動します。
    クライアント証明書認証は、
    CA Access Gateway
    およびバックエンド サーバの間で有効になります。
server.conf ファイルの設定
server.conf ファイル内の <sslparams> セクションには、CA SiteMinder® SPS と送信先サーバの間の Secure Sockets Layer (SSL)通信を有効にするために必要な設定が記述されています。
以下の手順に従います。
  1. server.conf ファイルを開き、<sslparams> セクションに移動します。
  2. 以下のパラメータを設定します。
    • バージョン
      サポートされる SSL バージョンを決定します。 複数のバージョンを指定する場合は、カンマでバージョンを区切ります。
    • ciphers
      有効または無効にできる暗号の一覧を指定します。暗号が有効な場合、リストの前に + 記号が付きます。暗号が無効な場合、リストの前に - 記号が付きます。複数の暗号を指定する場合は、各エントリをカンマで区切ります。
    • cacertpath
      信頼できる証明機関情報を格納するディレクトリ パスを指定します。このパスは、SPS のインストール パスに対する相対パスになります。
      CA Access Gateway
      のインストール中に設定ウィザードを実行すると、この値が設定されます。この値は変更しないでください。
    • cacertfilename
      証明書の認証機関バンドルが含まれるファイルの完全修飾パス名を指定します。このファイルは、.cer または .cert のファイル拡張子を持ち、PEM でエンコードされている必要があります。また、認証機関(CA)バンドルへのフル パスを含む必要があります。
      CA Access Gateway
      のインストール中に設定ウィザードを実行すると、この値が設定されます。
    • ClientKeyFile
      CA Access Gateway
      クライアントの証明書キーのファイル名を、DER でエンコードされ、パスワードが暗号化された pkcs8 形式で指定します。このファイルは、以下の場所に置かれていることを確認します。
      installation_path
      /SSL/clientcert/key 
    • ClientPassPhrase
      EncryptUtil ツールを使用して、
      CA Access Gateway
      クライアント証明書キー ファイルからキーを抽出するパスフレーズを指定します。
    • maxcachetime
      SSL セッション ID が
      CA Access Gateway
      HTTPS クライアントによる再利用のためにキャッシュされる期間(秒単位)を指定します。HTTPS 接続を介してファイルをリクエストすると、SSL ハンドシェイクが発生し、SSL セッション ID が作成されます。この SSL セッション ID はユーザ セッションを識別するために
      CA Access Gateway
      およびバックエンド サーバによって使用されます。HTTPS 接続がユーザに対して終了した場合、
      CA Access Gateway
      は SSL セッション ID を、このパラメータによって指定された最大期間キャッシュします。
      同じユーザがバックエンド サーバへの新しい HTTPS 接続をリクエストする場合、ユーザは応答を高速化するため、キャッシュされている SSL セッション ID を送信できます。この場合、ユーザが提供した SSL セッション ID は、キャッシュされている SSL セッション ID と比較されます。キャッシュの SSL セッション ID が使用可能な場合、新しい HTTPS 接続の確立が高速化されます。
      デフォルト
      : 120000 ミリ秒
      注:
      SSL 通信を有効にする前に、
      CA Access Gateway
      をインストールするために使用された JDK のロケーションに Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy ファイルがインストールされたことを確認します。
  3. 変更を保存します。