3.3. アプリケーションの Own 証明書の指定
3.3.1. HTTPS 用の Own 証明書のデプロイ
概要
HTTPS トランスポートを使用する場合、アプリケーションの証明書は XML 設定ファイルを使用してデプロイされます。
手順
HTTPS トランスポートのアプリケーション独自の証明書をデプロイするには、以下の手順を実行します。
Java キーストア形式 CertName
.jks
で、アプリケーション証明書を取得します。Java キーストア形式で証明書を作成する方法は、「CA を使用した Java キーストアでの署名証明書の作成」 を参照してください。注記一部の HTTPS クライアント (Web ブラウザーなど) は URL 整合性チェック を実行します。これには、サーバーがデプロイされているホスト名に一致する証明書のアイデンティティーが必要です。詳細は、「HTTPS 証明書の特別な要件」 を参照してください。
証明書のキーストア (CertName
.jks
) をデプロイメントホストの証明書ディレクトリー (例: X509Deploy/certs
) にコピーします。certificates ディレクトリーは、管理者およびその他の特権ユーザーのみが書き込み可能となっているセキュアなディレクトリーである必要があります。
関連する 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 設定ファイルが含まれるディレクトリーは、設定ファイルにプレーンテキストのパスワードが含まれるため、セキュアなディレクトリー (管理者がのみ読み取り/書き込み可能) である必要があります。