日本語

FAQ: ArcGIS Engine Java Interops で TLS 1.2 を有効にするにはどうすればよいですか?

質問

ArcGIS Engine Java Interops で TLS 1.2 を有効にするにはどうすればよいですか?

答え

ArcGIS Engine は、Java interops を提供しています。開発者はこれを使用して、Engine の基本となる GIS 処理機能を利用した Java アプリケーションを作成できます。 対策が必要かどうかは、使用している Java のバージョンによって異なります。

注意:
ArcGIS Engine の各リリース バージョンのサポートの状況については、Esri サポート サイトの製品ライフ サイクルのページをご参照ください。

ArcGIS Engine バージョン 10.4 ~ 10.7: 
これらのバージョンは Java 8 が付属しており、すぐに使用できます。Java 8 Engine アプリケーションで TLS 1.2 を使用するために作業は必要ありません。

ArcGIS Engine バージョン 10.2.1 ~ 10.3.1: 
これらのバージョンは Java 7 が付属しており、Java アプリケーションが TLS 1.2 サービスに直接アクセスする場合は、TLS 1.2 を有効にする必要があります。
Java 7 を使用して、これらの古いバージョンの ArcGIS Engine を引き続き実行する場合、2 つのオプションがあります。

  • オプション 1 (推奨) - Java 8 をサポートする新しいバージョンの ArcGIS Engine にアップグレードします。
  • オプション 2 - 次の手順を実行して、Java 7 アプリケーションで TLS 1.2 へのアクセスを有効化します。

Java 7 は、デフォルトで TLS 1.2 のセキュリティが有効化されていませんが、有効化する方法はあります。 Java 7 上で動作する ArcGIS Engine アプリケーションで TLS 1.2 のセキュリティを利用するには、セキュリティ保護されたサービスに接続しようとする前に、アプリケーションの起動フェーズに次のコード行を追加します。

try {
              SSLContext ctx = SSLContext.getInstance("TLSv1.2");
              ctx.init(null, null, null);
              SSLContext.setDefault(ctx);
       } catch (Exception e) {
             System.out.println(e.getMessage());
 }

Java 7 上で動作する ArcGIS Engine アプリケーションで TLS 1.2 を有効にしても問題は発生しないはずですが、これは常に必要であるわけではありません。 たとえば、マップ ドキュメント (*.mxd) を通じてセキュリティ保護されたサービスに接続し、MapBean コンポーネントを使用して視覚化されるアプリケーションは動作するはずです。このシナリオでは、Java の接続プロトコルは使用されません。

Related Information