Show Menu
TOPICS×

Dispatcher での SSL の使用

Dispatcher とレンダーコンピューター間には次の SSL 接続を使用します。
SSL 証明書に関連する操作は、サードパーティ製品に固有です。Adobe Platinum Maintenance and Support 契約の対象ではありません。

Dispatcher が AEM に接続するときに SSL を使用する

Dispatcher が SSL 接続を使用して AEM または CQ レンダーインスタンスと通信するように設定します。
Dispatcher を設定する前に、SSL を使用するように AEM または CQ を設定してください。

SSL を使用するように Dispatcher を設定する

SSL 経由で AEM または CQ と接続するように Dispatcher を設定するには、 dispatcher.any ファイルに以下のプロパティが必要です。
  • HTTPS 要求を処理する仮想ホスト。
  • 仮想ホストの
    renders
    セクションに、HTTPS を使用する CQ または AEM インスタンスのホスト名およびポートを識別するアイテムを含めます。
  • renders
    アイテムには、
    secure
    というプロパティ(値:
    1
    )が含まれます。
注意:必要に応じて、HTTP 要求を処理するための別の仮想ホストを作成してください。
次のサンプルの dispatcher.any ファイルは、ホスト
localhost
、ポート
8443
で動作している CQ インスタンスに HTTPS を使用して接続するためのプロパティ値を示したものです。
/farms { /secure { /virtualhosts { # select this farm for all incoming HTTPS requestss "https://*" } /renders { /0001 { # hostname or IP of the render /hostname "localhost" # port of the render /port "8443" # connect via HTTPS /secure "1" } } # the rest of the properties are omitted } /non-secure { /virtualhosts { # select this farm for all incoming HTTP requests "https://*" } /renders { /0001 { # hostname or IP of the render /hostname "localhost" # port of the render /port "4503" } } # the rest of the properties are omitted }

Dispatcher と AEM 間の相互 SSL の設定

相互 SSL を使用するように、Dispatcher とレンダーコンピューター(一般的には AEM または CQ パブリッシュインスタンス)間の接続を設定します。
  • Dispatcher が SSL 経由でレンダーインスタンスに接続します。
  • レンダーインスタンスが Dispatcher の証明書の有効性を確認します。
  • ディスパッチャーは、レンダリングインスタンスの証明書のCAが信頼されていることを検証します。
  • (オプション)Dispatcher が、レンダーインスタンスの証明書がレンダーインスタンスのサーバーアドレスと一致することを確認します。
相互 SSL を設定するには、信頼済みの証明機関(CA)によって署名されている証明書が必要です。自己署名証明書では不十分です。証明書に署名するために、CA の機能を果たすことも、サードパーティ CA のサービスを利用することもできます。相互 SSL を設定するには、以下のアイテムが必要です。
  • レンダーインスタンスおよび Dispatcher 用の署名済み証明書
  • CA 証明書(CA の機能を果たしている場合)
  • CA、証明書および証明書要求を生成するための OpenSSL ライブラリ
相互 SSL を設定するには、以下の手順を実行します。
  1. 使用するプラットフォームに適した最新バージョンの Dispatcher を インストール します。SSL をサポートしている Dispatcher バイナリを使用してください(dispatcher-apache2.4-linux-x86-64-ssl10-4.1.7.tar のように、SSL がファイル名に含まれています)。
  2. Dispatcher およびレンダーインスタンス用に CA 署名済みの証明書を作成または取得 します。
  3. レンダーの証明書を格納したキーストアを作成 し、そのキーストアを使用するようにレンダーの HTTP サービスを設定します。

CA 署名済み証明書の作成または取得

パブリッシュインスタンスおよび Dispatcher を認証する、CA 署名済み証明書を作成または取得します。

CA の作成

CA の機能を果たしている場合は、 OpenSSL を使用して、サーバーとクライアントの証明書に署名する証明機関を作成します(OpenSSL ライブラリがインストールされている必要があります)。サードパーティ CA を利用する場合は、この手順を実行しないでください。
  1. ターミナルを開き、現在のディレクトリを CA.sh ファイルを含むディレクトリ(例:
    /usr/local/ssl/misc
    )に変更します。
  2. CA を作成するには、次のコマンドを入力し、指示に従って値を指定します。
    ./CA.sh -newca
    openssl.cnf ファイルのいくつかのプロパティによって、CA.sh スクリプトの動作が制御されます。CA を作成する前に、必要に応じてこのファイルを変更してください。

証明書の作成

OpenSSL を使用して証明書要求を作成し、サードパーティ CA に送信するか、自身の CA によって署名します。
証明書を作成する際、OpenSSL では Common Name プロパティを使用して証明書保持者を識別します。レンダーインスタンスの証明書については、パブリッシュインスタンスのホスト名と一致する場合にのみ Dispatcher が証明書を受け入れるように設定する場合は、インスタンスコンピューターのホスト名を Common Name として使用してください( DispatcherCheckPeerCN プロパティを参照)。
  1. ターミナルを開き、現在のディレクトリを OpenSSL ライブラリの CH.sh ファイルを含むディレクトリに変更します。
  2. 次のコマンドを入力し、指示に従って値を指定します。必要に応じて、発行インスタンスのホスト名を共通名として使用します。 ホスト名は、レンダーの IP アドレスに対して DNS 解決可能な名前です。
    ./CA.sh -newreq
    サードパーティ CA を利用する場合は、newreq.pem ファイルを署名する CA に送信します。CA の機能を果たしている場合は、手順 3 に進みます。
  3. 次のコマンドを入力し、CA の証明書を使用して証明書に署名します。
    ./CA.sh -sign
    newcert.pem と newkey.pem という 2 つのファイルが、CA 管理ファイルを含むディレクトリ内に作成されます。これらのファイルは、それぞれレンダーコンピューターの公開証明書と秘密鍵です。
  4. newcert.pem という名前を rendercert.pem に、newkey.pem という名前を renderkey.pem に変更します。
  5. 手順 2 および 3 を繰り返して、Dispatcher モジュール用の新しい証明書と公開鍵を作成します。必ず Dispatcher インスタンスに固有の Common Name を使用してください。
  6. newcert.pem という名前を dispcert.pem に、newkey.pem という名前を dispkey.pem に変更します。

レンダーコンピューター上の SSL の設定

rendercert.pem ファイルと renderkey.pem ファイルを使用して、レンダーインスタンス上の SSL を設定します。

レンダー証明書の JKS 形式への変換

以下のコマンドを使用して、PEM ファイルであるレンダー証明書を PKCS#12 ファイルに変換します。レンダー証明書に署名した CA の証明書も含めます。
  1. ターミナルウィンドウで、現在のディレクトリをレンダー証明書と秘密鍵のある場所に変更します。
  2. 次のコマンドを入力して、PEM ファイルであるレンダー証明書を PKCS#12 ファイルに変換します。レンダー証明書に署名した CA の証明書も含めます。
    openssl pkcs12 -export -in rendercert.pem -inkey renderkey.pem -certfile demoCA/cacert.pem -out rendercert.p12
  3. 次のコマンドを入力して、PKCS#12 ファイルを Java KeyStore(JKS)形式に変換します。
    keytool -importkeystore -srckeystore servercert.p12 -srcstoretype pkcs12 -destkeystore render.keystore
  4. Java Keystore は、デフォルトのエイリアスを使用して作成されます。必要に応じてエイリアスを変更してください。
    keytool -changealias -alias 1 -destalias jettyhttp -keystore render.keystore

CA 証明書のレンダーのトラストストアへの追加

CA の機能を果たしている場合は、CA 証明書をキーストアに読み込みます。次に、キーストアを信頼するように、レンダーインスタンスを実行している JVM を設定します。
  1. テキストエディターを使用して cacert.pem ファイルを開き、次の行より前のテキストをすべて削除します。
    -----BEGIN CERTIFICATE-----
  2. 次のコマンドを使用して、証明書をキーストアに読み込みます。
    keytool -import -keystore cacerts.keystore -alias myca -storepass password -file cacert.pem
  3. キーストアを信頼するように、レンダーインスタンスを実行している JVM を設定するには、次のシステムプロパティを使用します。
    -Djavax.net.ssl.trustStore=<location of cacerts.keystore>
    例えば、crx-quickstart/bin/quickstart スクリプトを使用してパブリッシュインスタンスを起動する場合は、CQ_JVM_OPTS プロパティを次のように変更します。
    CQ_JVM_OPTS='-server -Xmx2048m -XX:MaxPermSize=512M -Djavax.net.ssl.trustStore=/usr/lib/cq6.0/publish/ssl/cacerts.keystore'

レンダーインスタンスの設定

「パブリッシュインスタンスでの SSL の有効化」
​の説明に従ってレンダー証明書を使用し、SSL を使用するようにレンダーインスタンスの HTTP サービスを設定します。

Dispatcher モジュール用の SSL の設定

相互 SSL を使用するように Dispatcher を設定するには、Dispatcher 証明書を準備して、Web サーバーモジュールを設定します。

Dispatcher の統合証明書の作成

Dispatcher 証明書と暗号化されていない秘密鍵を組み合わせて、単一の PEM ファイルにします。テキストエディターまたは
cat
コマンドを使用して、以下のサンプルのようなファイルを作成します。
  1. ターミナルを開き、現在のディレクトリを dispkey.pem ファイルのある場所に変更します。
  2. 秘密鍵を復号化するには、次のコマンドを入力します。
    openssl rsa -in dispkey.pem -out dispkey_unencrypted.pem
  3. テキストエディターまたは
    cat
    コマンドを使用して、暗号化されていない秘密鍵と証明書を組み合わせ、次のサンプルのような単一のファイルにします。
    -----BEGIN RSA PRIVATE KEY----- MIICxjBABgkqhkiG9w0B... ...M2HWhDn5ywJsX -----END RSA PRIVATE KEY----- -----BEGIN CERTIFICATE----- MIIC3TCCAk... ...roZAs= -----END CERTIFICATE-----

Dispatcher 用に使用する証明書の指定

以下のプロパティを(
httpd.conf
の) Dispatcher モジュールの設定 に追加します。
  • DispatcherCertificateFile
    :公開証明書と暗号化されていない秘密鍵を含む、Dispatcher の統合証明書ファイルへのパス。このファイルは、SSL サーバーが Dispatcher のクライアント証明書を要求する場合に使用します。
  • DispatcherCACertificateFile
    :SSL サーバーが提示する CA がルート証明機関によって信頼されていない場合に使用する、CA 証明書ファイルへのパス。
  • DispatcherCheckPeerCN
    :リモートサーバー証明書のホスト名チェックを有効(
    On
    )にするか無効(
    Off
    )にするか。
以下のコードは設定のサンプルです。
<IfModule disp_apache2.c> DispatcherConfig conf/dispatcher.any DispatcherLog logs/dispatcher.log DispatcherLogLevel 3 DispatcherNoServerHeader 0 DispatcherDeclineRoot 0 DispatcherUseProcessedURL 0 DispatcherPassError 0 DispatcherCertificateFile disp_unified.pem DispatcherCACertificateFile cacert.pem DispatcherCheckPeerCN On </IfModule>