SSL エンドポイントと証明書の設定

CloudHub 2.0 ではロードバランサーを手動で管理する必要はありませんが、各非公開スペースには少なくとも 1 つの証明書が関連付けられている必要があります。クライアントにサービスを提供するロードバランサー用の SSL エンドポイントを設定するには、ロードバランサー用の証明書と非公開鍵のペアを指定します。

各ロードバランサーには、複数の独立した SSL エンドポイントを設定でき、各エンドポイントはサーバー証明書の一般名によって識別されます。

始める前に

SSL エンドポイントを関連付けるには、次のファイルが必要です。

  • 暗号化されている、PEM (Privacy-Enhanced Mail) でエンコードされた証明書ファイル。

  • PEM 証明書の非公開鍵が含まれるファイル。

openssl コマンドを使用した証明書ファイルと非公開鍵の作成

openssl​ を使用して、暗号化されている、PEM でエンコードされた証明書ファイルと非公開鍵の両方を作成できます。

たとえば、自己署名証明書と対応する非公開鍵を作成するには、次の手順を実行します。

  1. 次のように入力します。

    openssl req -newkey rsa:2048 -keyout example-com-private-key.pem -x509 -days 3000 -out example-com-crt.pem -passout pass:examplePassword
  2. 証明書の情報の入力を促されたら、入力します。

    このコマンドは 2 つの ​.pem​ ファイルを作成します。

    example-com-crt.pem
    example-com-private.pem

    これらの ​.pem​ ファイルを Runtime Manager でアップロードするか、または SSL エンドポイントをロードバランサーに追加するときにコマンドラインで渡します。

-config​ オプションを使用して、証明書情報の設定ファイルを ​openssl​ コマンドに渡すこともできます。

たとえば、​example-com.cfg​ という名前のこの証明書設定ファイルには、​app1.example.com​ と ​app2.example.com​ という Mule アプリケーションのいくつかの SAN (サブジェクト代替名) が含まれている DNS ドメイン ​example.com​ が定義されています。

[ req ]
default_bits       = 2048
distinguished_name = req_distinguished_name
req_extensions     = req_ext
prompt = no
[ req_distinguished_name ]
countryName                 = US
stateOrProvinceName         = California
localityName               = San Francisco
organizationName           = MuleSoft
commonName                 = example.com

[ req_ext ]
subjectAltName = @alt_names
[alt_names]
DNS.1   = app1.example.com
DNS.2   = app2.example.com

次のコマンドを実行します。

openssl req -newkey rsa:2048 -nodes -keyout example-com-private.pem -x509 -days 3000 -out example-com-crt.pem -config example-com.cfg

ワイルドカード証明書の作成

サブドメイン要求をサポートするワイルドカード証明書を作成することができます。たとえば、​example.com​ へのサブドメイン要求をサポートすることで、​app1.example.com​ や ​app2.example.com​、さらにこれから作成されるサブドメイン名を含めることができます。

サブドメイン名を ​example.com​ にマップするワイルドカード証明書を作成するには、次の手順を実行します。

  1. 次の設定を含むファイルを作成します。

    [ req ]
    default_bits       = 2048
    distinguished_name = req_distinguished_name
    prompt = no
    [ req_distinguished_name ]
    countryName                 = US
    stateOrProvinceName         = California
    localityName               = San Francisco
    organizationName           = MuleSoft
    commonName                 = *.example.com
  2. 証明書設定ファイルを ​openssl​ コマンドに渡します。

    openssl req -newkey rsa:2048 -nodes -keyout example-com-private.pem -x509 -days 3000 -out example-com-crt.pem -config example-com.cfg
  3. openssl​ を使用して非公開鍵を復号化します。

    openssl rsa -in example-com-private.pem -out example-com-private-decrypted.pem

本番用の証明書の設定

通常、本番環境で使用する証明書は、有効な認証機関 (CA) によって署名されています。 各 SSL エンドポイントには、複数の CA 証明書と CRL (証明書失効リスト) を設定できます。暗号化されている、PEM でエンコードされた 1 つのファイルでこれらの各証明書を指定する必要があります。独立した CA 証明書では順序は重要ではありませんが、信頼チェーンの証明書は連結されている必要があります。