問題
TLS 1.0 を無効にしても New Relic にデータが表示されない。TLS 1.0が無効になっているかどうかは、以下のレジストリキーを調べることで確認しました。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client
"Enabled"
が0
に設定され、 "DisabledByDefault"
が1
に設定されている場合、TLS 1.0 は無効になります。
また、この問題が原因で、New Relic エージェントのログにエラー メッセージが記録されていることに気付いたかもしれません。例えば:
- NewRelic ERROR: Unable to connect to the New Relic service at collector.newrelic.com:443 : System.Net.WebException:The request was aborted: Could not create SSL/TLS secure channel.
- NewRelic ERROR: Unable to connect to the New Relic service at collector.newrelic.com:443 : System.Net.WebException:The underlying connection was closed: An unexpected error occurred on a send. ---> System.IO.IOException:Received an unexpected EOF or 0 bytes from the transport stream.
- NewRelic ERROR: Unable to connect to the New Relic service at collector.newrelic.com:443 : System.Net.WebException:The underlying connection was closed: An unexpected error occurred on a receive. ---> System.ComponentModel.Win32Exception:The client and server cannot communicate, because they do not possess a common algorithm.
解決
New Relic .NET エージェントには、TLS 1.2 以上の最小バージョンが必要です。TLS 1.2 の場合、それを使用するように .NET を構成する必要もあります。
.NET エージェント バージョン 10.6.0 以降、起動時に、エージェントは構成された TLS バージョンを INFO レベルでログに記録します。
重要
TLS バージョンをデフォルトとして設定すると、アプリケーションと New Relic エージェントの両方で使用されます。それぞれに異なる TLS バージョンを使用することはできません。
特定のTLSバージョンのプロトコルを有効にするには
原因
外部からの HTTP リクエストに特定のバージョンの TLS を必要とする場合は、アプリケーションとサーバーが正しく設定されていることを確認する必要があります。正しく設定されていないと、New Relic .NET エージェントが New Relic に接続できなくなる可能性があります。
New Relic の .NET エージェントは、外部の HTTP リクエストを行うための .NET で利用可能な標準クラスを使用して New Relic サーバーと通信します。.NET エージェントのコードはアプリケーションのコードと一緒に実行されるため、New Relic サーバーとの通信に使用されるセキュリティプロトコルは、アプリケーションの環境と構成に依存します。
お使いの.NET Frameworkのバージョンに応じて、システムやアプリケーションのTLS設定を正しく構成するための詳細については、 Microsoftのドキュメント(TLS)のベストプラクティス をご覧ください。