重要:New Relic のサーバー証明書の更新によりJava Agentの動作に影響がある可能性があります。

所要時間:約 4分

この記事はImportant: Upcoming New Relic server certificate update may impact users of Java agent versions 6.1 to 6.4.2 の翻訳記事です。

New Relic では2021年04月07日(水) 02:00(JST)頃に *.newrelic.com. のサーバー証明書の更新を行います。

APM Java Agent v6.1.0 から v6.4.2 には、New Relic の SSL 証明書が同梱されていました。

この同梱された証明書を設定することで、OS や JRE/JDK のトラストストアが提供する SSL 証明書の代替として使用することができます。
この証明書は2021年4月に期限切れとなります。

エージェントがこの同梱された証明書を使用している場合は、エージェントがNew Relicへの安全な接続を確立できなくなるため影響を受けることになります。

テレメトリデータのダウンタイムを回避するために直ちに対策を講じることをお勧めします。現在使用しているエージェントのバージョンに応じて、以下の対応策ががあります。

Java Agent v6.1.0を利用中の場合

対応策1 

このバージョンのエージェントは、同梱された証明書をデフォルトで使用するためSSLハンドシェイクに失敗してしまいます。
デフォルト設定を修正した新しいバージョンのエージェント(v6.2.0以上)にアップグレードします。
この場合、use_private_ssl または ca_bundle_path 明示的に設定されていなければエージェントはデフォルトでJRE/JDKのトラストストアを使用します。

対応策2 

エージェントのアップグレードを行いたくない場合は、ca_bundle_path を明示的に設定してカスタムの証明書バンドルを指定し、デフォルトの動作をオーバーライドすることで、Java エージェントに同梱されている証明書の使用を回避することができます。
必要であれば、DigiCert Global Root CA 証明書をダウンロードし、エージェントが使用するように設定する事で安全な接続を確立することができます。

Java Agent v6.2.0~6.4.2を利用中の場合

use_private_ssl または ca_bundle_path を明示的に設定していなければエージェントはデフォルトでJRE/JDKのトラストストアを使用します。 この場合は特に対応は必要ありません。

対応策1

use_private_ssl の設定をしている場合は、設定を削除するか設定値をfalseにして、エージェントがデフォルトでJRE/JDKのトラストストアを使用するようにします。

対応策2

ca_bundle_path を明示的に設定してカスタムの証明書バンドルを指定し、デフォルトの動作をオーバーライドすることで、Java エージェントに同梱されている証明書の使用を回避することができます。
必要であれば、DigiCert Global Root CA 証明書をダウンロードし、エージェントが使用するように設定する事で安全な接続を確立することができます。

今後の対応

Java Agentの将来のバージョンでは、セキュリティ証明書を同梱しなくなるため、use_private_sslの設定が削除されます。

自分が影響を受けるか確認するには

[Query your data]からQuerybuilderを開き以下のNRQLを実行することで、利用中のAgentバージョンを確認することができます。

SELECT * FROM ApplicationAgentContext WHERE agent.language = 'java' SINCE 1 week ago LIMIT MAX

このクエリではエージェントのバージョンのみが表示されます。use_private_ssl およびca_bundle_pathの設定値については、newrelic.ymlをご確認ください。

各設定の詳細については

https://docs.newrelic.com/docs/using-new-relic/cross-product-functions/install-configure/networks/#tls をご確認ください。