cfhttpタグによるhttpsリクエストで使用するプロトコルを変更する

ColdFusion 11 や 10 で<cfhttp>タグによるHTTPSリクエストの際、接続先のサービス側のセキュリティ向上により、接続に失敗する(するようになった)場合があります。

この背景には古いバージョンのプロトコルでの仕様上の脆弱性が確認されたことにより、接続先側で古いSSLv3やTLS1.0、1.1 プロトコルでの接続を無効にした事などが背景にあげられます。

接続先のサービスに合わせて、ColdFusion 11 や 10 で <cfhttp>タグのHTTPS呼び出しを行う際に新しいTLSプロトコルで行うためには、現在使用しているJavaのバージョンを確認して、場合によってはJavaの変更や設定等を行う必要があります。

現在使用しているJavaのバージョンは、ColdFusion Administratorにログインして、画面右上の「システム情報(i アイコン)」を開くと確認できます。


▲ 上記は、Java 1.8.0_60 の 64bit 版の Server JRE を使用している例です

 

※参考) ColdFusion 11, 10が同梱・サポートする Java バージョンは下記となります

  • ColdFusion 11
    • 初期インストーラーはJava1.7を同梱
    • Update 3以降でJava1.8をサポート
    • 2015年1月以降に提供される新しいインストーラーはJava1.8を同梱
  • ColdFusion 10
    • 初期インストーラーはJava1.6を同梱
    • Windows用の新しいインストーラーはJava1.7を同梱
    • Update 14以降でJava1.8までサポート

 

JavaがサポートするTLSプロトコルのバージョンに関しては、下記のメーカーのブログの情報が参考になります。
https://blogs.oracle.com/java-platform-group/entry/diagnosing_tls_ssl_and_https

上記の情報を参考に、使用している Java のバージョンそれぞれに応じて下記の対応を検討して下さい

  1. ColdFusion 10がサポートするJava1.6は、サポートするプロトコルが古いTLS1.0かSSLv3しかサポートしていません。従ってJava1.6を使用して新しいTLSプロトコルで接続する事はできないため、新しいJavaに変更する必要があります。
    • Java 1.8に変更する場合は 3. を、Java 1.7に変更する場合は 2.を参考下さい
  2. Java1.7ではTLS1.2までサポートされていますが、デフォルトのTLSプロトコルがTLS1.0となるため、デフォルトの状態では新しいプロトコルでSSL接続ができません。
    対応としてはシステムプロパティ「https.protocols」を設定するか、<CFHTTP>の実行前に以下のようなコードを記述します(*注1)。TLS 1.1等、別のプロトコルも必要な場合は、"TLSv1.1,TLSv1.2"のようにコンマで区切って指定して下さい
    • システムプロパティを設定する場合は、ColdFusion Administratorにログインし、[サーバーの設定]-[Java と JVM]の『JVM引数』に「-Dhttps.protocols=TLSv1.2」を追加します(設定後ColdFusionを再起動して下さい)
    • <CFHTTP>の実行前に、以下のようなプログラムを指定することでも同様の動作が可能のようです。

      <cfset sys = createObject("java", "java.lang.System")>
      <cfset sys.setProperty("https.protocols", "TLSv1.2")>
      (一旦プログラムを実行するとColdFusionを再起動されるまで設定が維持されるようです)

    (*注1)システムプロパティ及びプログラムによる方法のいずれもColdFusion 11か ColdFusion 10 Update 18以降(2015年11月リリース)のみ動作します。それ以前のColdFusion 10 Update 17以前や旧バージョン(ColdFusion9などは)上記の対応を行ってもプロトコルを変更する事ができません。
  3. Java1.8はTLS1.2までをサポートし、デフォルトのTLSプロトコルもTLS1.2となりますので、2.のような設定等は不要でデフォルトで動作します。
    • ColdFusion 10は Update 14以降でJava1.8をサポートします。また、Java1.7が同梱された初期のColdFusion 11をインストールされている環境でも Update 3以降を適用することでJava1.8を利用することができます。

 

その他、ColdFusionが利用するJavaを変更する場合などは、下記のFAQもご参照下さい

 

【注意】
ColdFusion9やそれ以前のバージョンは、2.のような設定・プログラムによるプロトコルの変更は対応しておらず、Java1.8のサポートもされていません。既にサポート(コアサポート)が終了しているバージョンのため、今後、セキュリティを含めたパッチ・アップデータの提供も行われず、本件の対応も行われません。本問題に該当されるColdFusion 9以前のユーザーはColdFusionのバージョンアップをご検討下さい。

 


記事公開日:2015年12月17日
最終更新日:2015年12月17日

 


x

Sample Modal Window

This is just a sample…

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent suscipit iaculis libero sed tristique. Quisque mollis dolor non tellus placerat vitae sodales lectus porta. Curabitur ut suscipit tellus. Maecenas rhoncus, ante vitae vehicula vestibulum, metus sapien dapibus tellus, et mattis dolor neque vitae nisl. Nullam eleifend ultrices ipsum eget pretium. Curabitur semper metus ut ante adipiscing nec volutpat sem rutrum. Nullam a nisi lacus, non interdum ante. Vivamus ante augue, commodo vel egestas sed, pharetra nec dui. Quisque sed tellus felis. Donec ipsum mauris, sagittis eu accumsan in, aliquam non ipsum.

Vestibulum tempor nunc nec felis scelerisque eget elementum erat dignissim. Ut vel ipsum mollis orci venenatis luctus. Aenean vehicula quam vel quam porttitor ac iaculis elit pulvinar. Proin consequat, ipsum eu venenatis semper, justo turpis posuere tortor, ac placerat metus nisl et lectus. Nulla cursus dui id nunc ullamcorper sed semper nisl lobortis. Aliquam erat volutpat. Phasellus arcu ante, imperdiet in ornare sed, laoreet eu massa.