第2章 管理インターフェイスとアプリケーションの双方向 SSL/TLS の有効化
SSL/TLS、または Transport Layer Security (TLS) は、ネットワークを介して通信する 2 つのエンティティー間のデータ転送を保護するために使用される証明書ベースのセキュリティープロトコルです。サーバーが信頼できるクライアントとのみ接続するようにする場合は、双方向 SSL/TLS を使用します。
双方向 SSL/TLS は、次のセキュリティー機能を提供します。
- 認証
- 一方向 SSL/TLS の場合、サーバーは証明書をクライアントに提示してサーバー自体を認証します。双方向 SSL/TLS の場合は、クライアントもサーバーに証明書を提示し、サーバーがクライアントを認証します。したがって、双方向 SSL/TLS は相互認証とも呼ばれます。
- 機密性
- クライアントとサーバー間で転送されるデータは暗号化されます。
- データの整合性
-
TLS プロトコルは、メッセージ認証コード (MAC) の計算に使用されるセキュアなハッシュ関数でデータインテグリティーを提供します。SSL コンテキストリソースの
cipher-suite-filter属性とcipher-suite-names属性を使用して、接続に特定のアルゴリズムとハッシュ関数を適用できます。
詳細は、server-ssl-context 属性 を参照してください。
双方向 SSL/TLS を使用して、JBoss EAP 管理インターフェイスとデプロイされたアプリケーションの両方を保護できます。
双方向 SSL/TLS で管理インターフェイスを保護するには、次の手順を使用します。
- クライアントの認証局 (CA) から証明書を取得します。または、非実稼働環境では、クライアント証明書の生成 の手順に従って、自己署名証明書を生成できます。
- クライアント証明書のトラストストアとトラストマネージャーを設定します。
- 双方向 SSL/TLS のサーバー証明書を設定します。
- SSL/TLS で JBoss EAP 管理インターフェイスをセキュアにするための SSL コンテキストを設定します。
双方向 SSL/TLS を使用して JBoss EAP にデプロイされたアプリケーションを保護するには、次の手順を使用します。
- クライアントの認証局 (CA) から証明書を取得します。または、非実稼働環境では、クライアント証明書の生成 の手順に従って、自己署名証明書を生成できます。
- クライアント証明書のトラストストアとトラストマネージャーを設定します。
- 双方向 SSL/TLS 用サーバー証明書の設定
- SSL/TLS を使用して JBoss EAP にデプロイされたアプリケーションを保護するための SSL コンテキストを設定します。
Elytron における証明書失効チェックの設定 の手順に従って、証明書失効チェックを設定できます。
2.1. クライアント証明書の生成 リンクのコピーリンクがクリップボードにコピーされました!
双方向 SSL/TLS 設定のテストと開発を目的として、CLI で keytool コマンドを使用し、自己署名クライアント証明書を生成します。
実稼働環境では自己署名証明書を使用しないでください。認証局 (CA) が署名した証明書のみ使用してください。
手順
クライアント証明書を生成します。
構文
keytool -genkeypair -alias <keystore_alias> -keyalg <algorithm> -keysize <key_size> -validity <validity_in_days> -keystore <keystore_name> -dname "<distinguished_name>" -keypass <private_key_password> -storepass <keystore_password>
$ keytool -genkeypair -alias <keystore_alias> -keyalg <algorithm> -keysize <key_size> -validity <validity_in_days> -keystore <keystore_name> -dname "<distinguished_name>" -keypass <private_key_password> -storepass <keystore_password>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
keytool -genkeypair -alias exampleClientKeyStore -keyalg RSA -keysize 2048 -validity 365 -keystore exampleclient.keystore.pkcs12 -dname "CN=client" -keypass secret -storepass secret
$ keytool -genkeypair -alias exampleClientKeyStore -keyalg RSA -keysize 2048 -validity 365 -keystore exampleclient.keystore.pkcs12 -dname "CN=client" -keypass secret -storepass secretCopy to Clipboard Copied! Toggle word wrap Toggle overflow クライアント証明書をファイルにエクスポートします。
構文
keytool -exportcert -keystore <keystore_name> -alias <keystore_alias> -keypass <private_key_password> -storepass <keystore_password> -file <file_path>
$ keytool -exportcert -keystore <keystore_name> -alias <keystore_alias> -keypass <private_key_password> -storepass <keystore_password> -file <file_path>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
keytool -exportcert -keystore exampleclient.keystore.pkcs12 -alias exampleClientKeyStore -keypass secret -storepass secret -file EAP_HOME/standalone/configuration/client.cer Certificate stored in file <EAP_HOME/standalone/configuration/client.cer>
$ keytool -exportcert -keystore exampleclient.keystore.pkcs12 -alias exampleClientKeyStore -keypass secret -storepass secret -file EAP_HOME/standalone/configuration/client.cer Certificate stored in file <EAP_HOME/standalone/configuration/client.cer>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
生成されたクライアント証明書を使用して、サーバーのトラストストアとトラストマネージャーをサーバーに設定できるようになりました。詳細は、クライアント証明書用のトラストストアとトラストマネージャーの設定 を参照してください。