問題
TLS 1.0 を無効にしても New Relic にデータが表示されない。TLS 1.0が無効になっているかどうかは、以下のレジストリキーを調べることで確認しました。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client
TLS 1.0は、 " Enabled"
が 0
および " DisabledByDefault"
が 1
に設定されている場合に無効になります。
また、この問題が原因でNew Relic Agentのログにエラーメッセージが表示されていることにも気づくかもしれません。
- 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 エージェントでは、少なくとも 1 つのバージョンの TLS が有効になっている必要があります。TLS 1.1/1.2の場合は、TLSを使用するように.NETが設定されていることも必要です。
重要
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)のベストプラクティス をご覧ください。