3.3. アプリケーションの Own 証明書の指定

3.3.1. HTTPS 用の Own 証明書のデプロイ

概要

HTTPS トランスポートを使用する場合、アプリケーションの証明書は XML 設定ファイルを使用してデプロイされます。

手順

HTTPS トランスポートのアプリケーション独自の証明書をデプロイするには、以下の手順を実行します。

  1. Java キーストア形式 CertName.jks で、アプリケーション証明書を取得します。Java キーストア形式で証明書を作成する方法は、「CA を使用した Java キーストアでの署名証明書の作成」 を参照してください。

    注記

    一部の HTTPS クライアント (Web ブラウザーなど) は URL 整合性チェック を実行します。これには、サーバーがデプロイされているホスト名に一致する証明書のアイデンティティーが必要です。詳しくは、「HTTPS 証明書の特別な要件」 を参照してください。

  2. 証明書のキーストア (CertName.jks) をデプロイメントホストの証明書ディレクトリー (例: X509Deploy/certs) にコピーします。

    certificates ディレクトリーは、管理者およびその他の特権ユーザーのみが書き込み可能となっているセキュアなディレクトリーである必要があります。

  3. 関連する XML 設定ファイルを編集して、証明書キーストア CertName.jks の場所を指定します。関連する HTTPS ポートの設定に sec:keyManagers 要素を含める必要があります。

    たとえば、以下のようにクライアントポートを設定できます。

    <http:conduit id="{Namespace}PortName.http-conduit">
      <http:tlsClientParameters>
        ...
        <sec:keyManagers keyPassword="CertPassword">
          <sec:keyStore type="JKS"
                        password="KeystorePassword"
                        file="certs/CertName.jks"/>
        </sec:keyManagers>
        ...
      </http:tlsClientParameters>
    </http:conduit>

    keyPassword 属性は証明書の秘密鍵を復号化するために必要なパスワード (CertPassword) を指定し、type 属性はトラストストアが JKS キーストア実装を使用することを指定し、password 属性は CertName.jks キーストアへのアクセスに必要なパスワード (KeystorePassword) を指定します。

    以下のようにサーバーポートを設定します。

    <http:destination id="{Namespace}PortName.http-destination">
      <http:tlsServerParameters secureSocketProtocol="TLSv1">
        ...
        <sec:keyManagers keyPassword="CertPassword">
          <sec:keyStore type="JKS"
                        password="KeystorePassword"
                        file="certs/CertName.jks"/>
        </sec:keyManagers>
        ...
      </http:tlsServerParameters>
    </http:destination>
    重要

    Poodle 脆弱性 (CVE-2014-3566) から保護するために、サーバー側で secureSocketProtocol を TLSv1 に設定する必要があります。

    警告

    アプリケーション証明書 (例: X509Deploy/certs/) を含むディレクトリーは、安全なディレクトリー (つまり、管理者のみが読み取り/書き込み可能) である必要があります。

    警告

    XML 設定ファイルが含まれるディレクトリーは、設定ファイルにプレーンテキストのパスワードが含まれるため、セキュアなディレクトリー (管理者がのみ読み取り/書き込み可能) である必要があります。