Enterprise Console用HTTPSサポート

自己署名キーストアファイルを使用する Enterprise Console では、組み込みの HTTPS がサポートされています。Enterprise Console は、新規インストールまたはアップグレード時の選択に基づいて、HTTP または HTTPS のいずれかをサポートします。HTTPS から HTTP に戻るか、またはその逆に元に戻すように、Enterprise Console をいつでも再設定することができます。

Enterprise Console の SSL と証明書について

Enterprise Console には HTTPS クライアント用として、標準的な証明書が含まれる Mozilla の最新のトラストストアである cacerts.jks がパッケージされています。Enterprise Console は、自己署名が含まれる keystore.jks ファイルを作成します。自己署名証明書はインストール時またはアップグレード時に cacerts.jks にインポートされます。

実稼働環境での使用においては、自己署名証明書をサードパーティの CA または独自の内部 CA により署名された証明書に置き換えることを推奨します。

このページでは以下について説明しています。

  • Enterprise Console のインストールまたはアップグレード時に HTTPS を有効にする方法
  • 証明書を署名済みのものに更新する方法
  • キーストアの認証情報のカスタマイズ方法
警告:

デフォルトのキーストアから既存のアーティファクトを初めてエクスポートし、それを独自のキーストアにインポートする場合を除いては、キーストアの内容をすべて置き換えることは推奨されません。

自己署名証明書をご自身で作成することも推奨しません。

セキュリティを実装する正確な手順は、通常、組織のセキュリティポリシーにより異なります。たとえば、組織のドメインに使用するワイルドカード証明書など、使用する署名付き証明書が組織にすでに存在する場合は、Enterprise Console の update-certificate コマンドを使用してキーストアにインポートできます。それ以外の場合は、証明書署名要求とともに新しい証明書を取得できます。

はじめに

Linuxマシンでは、Enterprise Consoleはcurlを使用してアプリケーションのURLの、レスポンスの状態を確認します。そのためSSLを動作させるためにはNSSパッケージの最新版が必要になります。

たとえば、次のコマンドでCentOSのNSSパッケージを最新版に更新できます。

yum update nss
注: 更新手順やNSSパッケージ名はご使用のLinuxオペレーティングシステムによって異なる場合があります。

Enterprise Consoleの新規インストール時におけるHTTPSの有効化

Enterprise Console のインストール時に HTTPS を有効にするには、優先する接続タイプとして HTTPS を選択します。

  1. 次の手順に従って、Enterprise Console をインストールNo Content found for /db/organizations/splunk/repositories/portal-production/content/documents/AppDynamics/on_premises/c_install_the_enterprise_console.ditaします。
    • GUIでのインストールの場合は、HTTPSのチェックボックスをクリックします。

      警告: このチェックボックスをオフにしている場合、インストール時のデフォルト設定はHTTPになります。

      Enterprise Consolによって自己署名証明書が作成され、HTTPS接続で使用されます。

    • サイレントインストールの場合、次のパラメータを使用してプラットフォーム管理者応答用 varfile を編集します。

      platformAdmin.useHttps$Boolean=true

      これにより HTTPS 接続が有効化されます。これはウィザードからインストールする場合に [Enable Https Connection] をオンにするのと同じになります。パラメータを false に設定すると HTTP が使用されます。

  2. オプション:Enterprise Console は自己署名証明書を作成し、それを HTTPS 接続に使用します。この自己署名証明書はサードパーティの CA が署名した証明書に置き換えることができます。「署名済み証明書への更新」を参照してください。
これでEnterprise ConsoleによりPlatformAdminApplication.yml(Dropwizard構成ファイル)でHTTPSプロトコルが構成され、HTTPは無効化されます。詳細については、「ドロップウィザード設定リファレンス」を参照してください。Enterprise Console HTTPS コネクタの構成例
サーバーで実行されているサービスに関する詳細情報を表示するには、次の手順を実行します。
type: simple
connector:
type: encrypted-https # encrypted-https は Enterprise Console でのカスタマイズされた HTTPS コネクタタイプであり、キーストアのパスワードは暗号化されています。
port: 9191 # 削除しないでください。代替は 8080
keyStorePath: /appdynamics/platform-admin/conf/keys/keystore.jks
keyStorePassword: s_-001-12-v/yKyIweuGQ=iLpBEDTqfP7vj++WP+MKEg==
trustStorePath: /appdynamics/platform-admin/conf/keys/cacerts.jks
trustStorePassword: s_-001-12-hdLwJEOZbns=kDmS/pLvq2A43iCWLJEcTg==
certAlias: ec-server # キーストアファイルの証明書エイリアス名を変更しないでください。
validateCerts: false
supportedProtocols: [TLSv1.2]
bindHost: 0.0.0.0
applicationContextPath: /
注: Enterprise Console では、構成ファイル内のプレーンテキストのパスワードはすべて暗号化されます。

Enterprise Consoleのアップグレード時におけるHTTPSの有効化

バージョン4.4.3から4.5または4.5以降へのアップグレード時に、HTTPからHTTPSに切り替えることができます。既存のEnterprise Consoleインスタンスについては、Enterprise Consoleアプリケーションを再インストールすることでHTTPSを有効にすることもできます。

  1. 次の手順に従って、Enterprise Console をアップグレードします。
    1. プラットフォーム管理者応答用varfileを、以下のように変更します。
      platformAdmin.useHttps$Boolean=true
  2. アップグレードを完了させます。
  3. オプション:自己署名証明書は Enterprise Console によって作成され、SSL は新規インストールの場合と同様に構成されます。この自己署名証明書はサードパーティの CA が署名した証明書に置き換えることができます。「署名済み証明書への更新」を参照してください。
注:

HTTPSをサポートするEnterprise Consoleを今後リリースされるバージョンにアップグレードする際、Enterprise Consoleには以下のような決まりごとがあります。

  • 自己署名証明書を使用したアップグレード(Enterprise Console にインストールされた証明書):通常、Enterprise Console は、新しい自己署名証明書を使用して、新しい keystore.jks を再作成し、<EC_installationDir>/conf/keys フォルダ内で新しい自己署名証明書を使用して、cacerts.jks ファイルを更新します。
  • 署名付き証明書を使用したアップグレード:Enterprise Console は署名付き証明書を変更しないため、アップグレード前の状態のままとなります。注:プライベート IP/ホスト名から管理者応答用 varfile 内の serverHostName をパブリック IP に変更しないでください(前の Enterprise Console 新規インストールまたはアップグレードの serverHostName としてプライベート IP/ホスト名を使用した場合)。それ以降、Enterprise Console では、署名付き証明書がサポートされなくなります。この制限は、署名付き証明書を使用したアップグレードにのみ適用されます。
  • カスタマイズされたキーストア/トラストストアのパスとパスワードを使用したアップグレード:Enterprise Console は、.jks ファイルが <EC_installationDir>/conf/keys フォルダ内にある場合にのみ .jks ファイルをバックアップします。.jks ファイルを移動したりパスワードを変更したりした場合でも、Enterprise Console によって、アップグレード前の PlatformAdminApplicationl.yml 内のキーストア/トラストストアのパスおよびパスワードが復元されます。

    警告: .jksファイルを別の場所に移すとEnterprise Consoleによってファイルがバックアップされなくなるため、保存場所の変更は推奨されません。

SAN 展開での Enterprise Console の HTTPS の設定

AWS でサブジェクト代替名(SAN)用に導入された Enterprise Console の HTTPS を設定するには、san.cnf ファイルからキーを生成する必要があります。次の手順では、Enterprise Console の複数のホスト名とエイリアスを san.cnf ファイルに入力し、それを使用してキーを生成する方法について示します。

  1. SAN の san.cnf ファイルを作成します。次の例では、san.cnf ファイル、複数のドメイン名とエイリアスが [ alt_names ] で定義されています
    [ req ]
    default_bits       = 2048
    distinguished_name = req_distinguished_name
    req_extensions     = req_ext
    prompt             = no
    [req_distinguished_name]
    countryName           = IN
    stateOrProvinceName   = Karnataka
    localityName          = Bangalore
    organizationName      = Appdynamics
    commonName            = ECserver
    [ req_ext ]
    subjectAltName = @alt_names
    [alt_names]
    DNS.1   = ECserver.com
    DNS.2   = ECserver.secondary.com
    DNS.3   = ECserver.alias1.com
    DNS.4   = ECserver.alias2.com
    IP.1        = 10.10.10.10
    IP.2        = 10.10.10.9
  2. san.cnf ファイルを使用して、次の openssl コマンドで秘密鍵と CSR を生成します。
    openssl req -new -newkey rsa:2048 -nodes -out sslcert.csr -keyout private.key -config san.cnf
  3. CSR で SAN が正しいことを確認します
    openssl req -noout -text -in sslcert.csr | grep DNS
    openssl req -noout -text -in sslcert.csr | grep IP
  4. 認証局(CA)によって CSR に署名します
  5. Enterprise Console の証明書を更新します。
    ./platform-admin.sh update-certificate --private-key <privateKeyfile> --ssl-cert <sslCertFile> --ssl-chain <sslChainfile1> <sslChainfile2> <...>

キーストアの認証情報のカスタマイズ方法

キーストアの証明書をカスタマイズできます。カスタマイズしたキーストア/トラストストアのパスワードは、Enterprise Console で保持されます。

警告: カスタマイズしたファイルのバックアップを維持するには、<EC_installationDir>/conf/keys ディレクトリにそのファイルを置きます。<EC_installationDir>/conf/keys 以外の場所にファイルを保存すると、バックアップされない場合があるため、推奨されません。

Enterprise Console のキーストアコンテンツを変更する場合は、change-keystore-password コマンドを再実行して暗号化しなおす必要があります。再暗号化した後は Enterprise Console の再起動が必要になります。詳細については、「コントローラ Secure Credential Store」を参照してください。

暗号化されたパスワードの取得

.jks ファイルのパスワードを更新できます。更新する場合は、PlatformAdminApplication.yml ファイル内のパスワードも更新する必要があります。

警告: PlatformAdminApplication.yml ファイルの supportedProtocols は変更しないでください。

暗号化されたパスワードを取得する場合、次のようにします。

注:

- ステップ 4 で使用するために生成されたパスワードをメモしておきます。

- Enterprise Console で動作する keystore.jks ファイルの場合、storepasskeypass を同じにする必要があります。

  1. Enterprise Console CLI を使用して新しいパスワードを暗号化します。

    ./platform-admin.sh encrypt -t '<plain_text_password>'
  2. 手順 1 の <plain_text_password> を使用して、keystore.jks のストアパスを変更します。

    keytool -storepasswd -keystore keystore.jks
  3. 手順 1 の <plain_text_password> を使用して、keystore.jksec-server keypass を変更します。

    keytool -keypasswd -alias ec-server -keystore keystore.jks
  4. 暗号化されたパスワードを使用して、キー "keyStorePassword" の Enterprise Console Dropwizard 確認 yml ファイル(PlatformAdminApplication.yml)を更新します。

  5. Enterprise Consoleを再起動します。

署名済み証明書への更新

Enterprise Console で作成されたビルトイン自己署名証明書は、適切な認証局が発行する CA 署名証明書に更新できます。

警告: Java キーストアの既存の公開鍵を再利用して CSR リクエストを生成するには、署名済み証明書を手作業でインポートする必要があります。詳細については、「証明書の作成と CSR の生成」の手順 6 ~ 9 を参照してください。

ほとんどのLinuxディストリビューションにはOpenSSLが付属しています。Windows を使用している場合、または Linux ディストリビューションに OpenSSL が付属していない場合は、OpenSSL の Web サイトから詳細情報を入手してください。

  1. 署名済み証明書を取得します。
    1. CSRリクエストを作成します。
      // 一部の CA では、秘密キーを含め、すべてが作成されます。次の keytool コマンドを使用して、既存の keystore.jks から csr リクエストを作成できます。
      keytool -certreq -alias ec-server -keystore keystore.jks -file AppDynamics.csr

      または

      //次の openssl コマンドを使用して、独自の秘密キーと CSR リクエストを作成することもできます。
      openssl req -new -newkey rsa:2048 -nodes -out <name of csr request file>.csr -keyout <name of private key>.key -subj "/C=<custom>/ST=<custom>/L=<custom>/O=<custom>/OU=<custom>/CN=<hostname>"
    2. コマンド(この例ではAppDynamics.csr)で生成された証明書署名リクエストファイルを、選択した認証局に提出します。準備ができ次第、CA は署名済み証明書と信頼チェーンに必要なルート証明書および中間証明書を発行します。認証局からの返信には、必要に応じて証明書をインポートするための特別な指示が含まれている場合があります。証明書がCAからテキスト形式で提供される場合は、その内容をコピーしてテキストファイルに貼り付けます。
  2. Enterprise Console の証明書を更新する以下の CLI コマンドを実行します。
    ./platform-admin.sh update-certificate --private-key <privateKeyfile> --ssl-cert <sslCertFile> --ssl-chain <sslChainfile1> <sslChainfile2> ...
    警告:

    このコマンドを実行する際のポイントについては、以下の情報を参考にしてください。

    • privateKeyfilesslCertFilessl-chain ファイルには、ファイル形式に関する制限はありません。.pkey.text など、どのような形式のファイルであっても読み取りできる限りは正常に機能します。
    • privateKeyfile のファイルコンテンツは PKCS8 形式に準拠している必要があります。
    • sslCertFile は、使用する SSL 証明書ファイルです。
    • ssl-chain ファイルは、中間証明書などの追加の証明書です。ファイルを追加するパラメータはオプションですが、任意の数だけパラメータを追加することができます。
    このコマンドにより、構成 yml ファイル内のキーストアとトラストストア内の証明書が更新されます。
  3. Enterprise Console を再起動して新しい SSL 構成を適用します。

SSL使用の確認

Enterprise Console GUIにログインしてHTTPSサポートが機能しているかをテストできます。

構成が正常に動作していることを確認するには、ブラウザを使用してデフォルトのセキュアポートであるポート9191を介してEnterprise Consoleに接続します。

https://<hosthame>:9191

Enterprise Console のインストール時に使用したホスト名を指定します。デフォルトポートは9191です。このポートは、どこからでもアクセスできるよう、ファイアウォールのルールから除外する必要があります。詳細については、「ポート設定」を参照してください。

Enterprise Consoleのエントリページが正常にブラウザにロードされることを確認してください。

警告: ご使用のブラウザによっては、接続確認のためにこれ以外の手順が必要になる場合があります。たとえばChromeで自己署名証明書を使用する場合は、先に進むためにクリック操作が必要になります。Firefoxでは、セキュリティの例外を追加しないと続行できません。

Enterprise Console CLI でコマンドを実行して、構成が有効になっているかを確認することもできます。

期限切れの証明書

証明書の期限が切れていても Enterprise Console の CLI は動作しますが、期限切れを知らせる警告が表示されます。

期限切れの証明書によるアップグレードへの影響はありません。証明書の有効期限が切れていることを知らずにEnterprise Consoleをアップグレードしたとしても、プロセスは正常に終了します。

Enterprise Console の自己署名証明書はコンソールアプリケーションを再インストールすることで更新できます。独自の自己署名証明書を使用する場合は、CA から新しい証明書を取得し、署名付き証明書への更新から CLI コマンドを実行できます。

Enterprise Console設定のHTTPへの切り戻し

Enterprise Consoleアプリケーションを再インストールすれば、HTTPSのサポートをフォールバックしてHTTPに切り替えることができます。

  1. 次の手順に従って、Enterprise Console をアップグレードします。
    1. プラットフォーム管理者応答用varfileを、以下のように変更します。
      platformAdmin.useHttps$Boolean=false
  2. アップグレードを完了させます。
Enterprise Console は、<EC_installationDir>/conf/keys 内にあるすべての自己署名証明書または署名付き証明書をバックアップします。ただし、keystore.jkstruststore.jks を任意の場所に手動で移動した場合は、カスタマイズした証明書と SSL 関連ファイルを、アップグレード前にご自身でバックアップする必要があります。

SSL に関するよくある問題のトラブルシューティング

このセクションでは、Enterprise ConsoleのSSLに関するよくある問題をいくつか紹介しています。トラブルシューティングを始める前に、CLI コマンドを実行しているセクションの platform-admin.sh の -Djavax.net.debug=ssl を有効にしておくと問題解決に役立つ場合があります。

Enterprise Console CLIに関する問題

Enterprise Console のインストールまたはアップグレードが正常に完了したにもかかわらず CLI が動作しない場合、CLI はインストーラの varfile に入力した serverHostName が有効な値であることを確認するように促します。エラーメッセージには、「Hostname %s not verified」と表示されます。

拡張フィールドがない証明書に関する問題

拡張子フィールドのない証明書(特に、無料の署名付き証明書)は機能しません。KeyUsage エラーが発生します。適格な CA 認証局からの署名付き証明書のみを使用する必要があります。

Enterprise Consoleの再起動に関する問題

Linux マシンの NSS パッケージは最新版に更新する必要があります。最新の状態になっていない場合、Enterprise Consoleが再起動できない場合があります。詳しくは、「はじめに」を参照してください。