プライマリ・コンテンツに移動
Oracle® Mobile Application Framework Oracle Mobile Application Frameworkのインストール
2.5.0.0.0
E94552-01
目次へ移動
目次

前

5 アプリケーションのMAF 2.5.0への移行

この章では、以前のリリースのMAFを使用して作成されたアプリケーションをMAF 2.5.0に移行する際に必要になる情報を説明します。

この章の内容は次のとおりです。

5.1 アプリケーションのMAF 2.5.0への移行

このリリースのMAFに移行するお客様は、アプリケーションに影響する可能性のある、このリリースおよび以前のリリースのMAF (たとえば、MAF 2.3.0)での次の変更に注意する必要がある場合があります。

  • このリリースのMAFでは、Oracle JDeveloper 12c (12.2.1.3.0)にMAF拡張機能をインストールする必要があります。「JDeveloperとのモバイル・アプリケーション・フレームワークのインストール」を参照してください。

  • MAFでは、MAFアプリケーションをビルドしてiOSプラットフォームにデプロイするためにXcode 9.xが必要になりました。MAF 2.5.0でのXcode 9.xの使用の説明に従って、インストールをXcode 9.xに更新してください。iOSデプロイメント・プロファイルに、iOSにデプロイするMAFアプリケーションのバージョンおよびビルド番号を指定できる「バージョン」および「ビルド」入力フィールドが含まれるようになりました。iOSアプリケーションのデプロイを参照してください。

  • AndroidにデプロイするMAFアプリケーションについては、次のことに注意してください。

    • MAFアプリケーションをビルドしてAndroidプラットフォームにデプロイするには、Android APIレベル26をインストールする必要があります。Androidプラットフォーム用の開発ツールの設定の説明に従って、MAFプリファレンスで指定したAndroid SDKの場所にAndroid SDKプラットフォームAPIレベル26をインストールしていることを確認してください。この変更の結果、MAFアプリケーションで外部アプリケーションのfile:// URLを共有できなくなり、DeviceFeaturesデータ・コントロールのdisplayFileメソッドを使用して外部ビューアに表示するファイルのディレクトリ場所に制限が適用されるようになりました。Oracle Mobile Application Frameworkでのモバイル・アプリケーションの開発のdisplayFileメソッドを使用してファイルの表示を可能にする方法を参照してください。

    • MAFに、AndroidプラットフォームにデプロイするMAFアプリケーションの記憶域権限を制御する新しいコア・プラグインの記憶域アクセス(maf-cordova-plugin-storage-access)が含まれるようになりました。MAFでは、デフォルトで記憶域アクセス・プラグインが有効になり、これは、AndroidデバイスにデプロイしたMAFアプリケーションが、ユーザーによって権限を付与されている場合はローカル記憶域にアクセスできることを意味します。MAFは、このリリースのMAFに移行したMAFアプリケーションの記憶域アクセス・プラグインを有効にします。移行したMAFアプリケーションの記憶域アクセスプラグインを無効にできます。Oracle Mobile Application Frameworkでのモバイル・アプリケーションの開発のMAFアプリケーションでのコア・プラグインの有効化を参照してください。

    • このリリースのMAFに移行するAndroidプラットフォーム上のMAFアプリケーションでは、デフォルトでMultidexのサポートが有効になります。使用するAndroidデプロイメント・プロファイルを変更して、Multidexのサポートを無効にできます。Oracle Mobile Application Frameworkでのモバイル・アプリケーションの開発のAndroidプラットフォームへのMAFアプリケーションのデプロイを参照してください。

  • MAFでは、MAFアプリケーションをユニバーサルWindowsプラットフォームにデプロイするために、標準のJDeveloperコンストラクトが使用されるようになりました。つまり、OJDeployを使用したコマンド行からのMAFアプリケーションのデプロイに説明されているように、アプリケーションをコマンドラインからデプロイできます。アプリケーションのデプロイ時に指定できるログ・レベルの数も増加しました。使用するログ・レベル(「最小」、「最小」など)をWindowsデプロイメント・プロファイルに構成します。デプロイメント・プロファイルでの作業を参照してください。

  • このリリースでは、MAFが使用するCordovaエンジンのバージョン(Android: 6.2.3、iOS: 4.5.0、Windows: 5.0.0)が更新されています。「Cordovaプラグインの旧リリースからMAF 2.5.0への移行」を参照してください。

  • MAFアプリケーションでは、以前はWebビュー・レイヤーで行われていたEL式の評価が、Java VMレイヤーで行われるようになりました。このリリースに移行したMAFアプリケーションでは、新しい動作(Java VMレイヤーでのEL式の評価)が使用されます。MAFアプリケーションにカスタム・コンポーネントが含まれている場合、MAFアプリケーションで使用されるカスタム・コンポーネントについて説明する/META-INF/amx-tag-libraries.xmlファイルの作成が必要になりました。カスタムUIコンポーネントの作成を参照してください。新しいMAFアプリケーションまたは移行済のMAFアプリケーションを構成して、Webビュー・レイヤーでEL式を評価できます。Java VMレイヤーでのEL式の評価を参照してください。

このリリースでの新機能の詳細は、『Oracle Mobile Application Frameworkでのモバイル・アプリケーションの開発』の「このガイドでのMAFリリース2.5.0の新機能」を参照してください。

このリリースのMAFでは新しいバージョンのJDeveloper (12.2.1.3.0)が使用されるため、このリリースのMAFを使用してJDeveloperで初めて開いたすべてのMAFアプリケーションで、アプリケーションの移行を要求するプロンプトが表示されます。

以前のリリースのMAFでは、移行するアプリケーションに影響する可能性のある、次の変更が行われました。
リリース 説明
MAF 2.4.2 Visual Studio 2015に加えて、Visual Studio 2017を使用して、MAFアプリケーションをユニバーサルWindowsプラットフォームにデプロイするために使用する開発環境をセットアップするようになりました。使用するVisual StudioのバージョンにWindows 10 SDKの10.0.10586.0と10.0.14393の両方のバージョンがインストールされていることを確認してください。「ユニバーサルWindowsプラットフォーム用の開発ツールの設定」を参照してください。
MAF 2.4.1

MAFアプリケーションをビルドしてiOSプラットフォームにデプロイするために、Xcode 8.3.xが必要になりました。また、『Oracle Mobile Application Framework Oracle Mobile Application Frameworkでのモバイル・アプリケーションの開発』のデバイスの署名およびエクスポート・オプションの設定に関する項の説明に示すように、「プリファレンス」ダイアログの「iOSプラットフォーム」ページの「メソッド」ドロップダウン・リストからエクスポート方法(非定型、App Store、開発、またはエンタープライズ)を選択する必要があります。MAF 2.5.0でのXcode 9.xの使用の説明に示すように、異なるバージョンのMAF用に2つの別個の開発環境を維持する場合、2つの別個のXcodeのインストールを維持できることにも注意してください。

MAF 2.4.0
  • Gradleを使用して、MAFアプリケーションをビルドし、Androidプラットフォームにデプロイするようになりました。初めてMAFアプリケーションをAndroidにデプロイするときに、MAFはGradleをダウンロードしてインストールします。Gradleが正しくインストールされるよう、Gradleのプロキシ設定を構成する必要がある場合があります。『Oracle Mobile Application Frameworkでのモバイル・アプリケーションの開発』のGradleのプロキシ情報の構成に関する項を参照してください。

  • MAFが使用するCordovaエンジンのバージョン(Android: 6.0.0、iOS: 4.3.0、Windows: 4.4.3)が更新されました。そのため、「Cordovaプラグインの旧リリースからMAF 2.5.0への移行」の説明に従って、移行後のアプリケーションで使用するカスタムCordovaプラグインを更新する必要がある場合があります。

  • 以前のリリースで非推奨のAPIが削除されました。このリリースにアップグレードする前に、ビルド時に報告された非推奨の警告を確認し、サポート対象のAPIを使用するようにアプリケーションを変更してください。これを行わない場合、このリリースへのアップグレード後、移行後のアプリケーションがビルドに失敗する場合があります。MAFがサポートするAPIの詳細は、Oracle Mobile Application Framework Java APIリファレンスを参照してください。

  • AndroidプラットフォームにデプロイするMAFアプリケーションのHTTPSプロトコルがTLS 1.2にデフォルト設定されました。お薦めはしませんが、「MAFリリース2.4.0以上でのセキュリティの変更」の説明に従って、このデフォルトの動作を上書きできます。

MAF 2.3.3以降

MAFアプリケーションを開発してiOSプラットフォームにデプロイするためにXcode 8が必要になりました。また、iOS 10プラットフォーム上で稼働しているデバイスへのアプリケーションのデプロイメントもサポートしています。MAF 2.5.0でのXcode 9.xの使用を参照してください。

MAF 2.3.2以降
  • 移行したMAFアプリケーションのjava.securityファイルを、MAFで生成した新バージョンのファイルで置き換えます。MAFでは、元のファイルがjava.security.origというファイル名で保存されます。以前にこのファイルに対して変更を加えていた場合、その変更内容を新バージョンのjava.securityファイルにコピーする必要がある場合があります。

  • iOS 9以上で実行される移行済のアプリケーションを、WKWebViewを使用するように構成する機能が含まれました(iOSでWKWebViewを使用する場合のAMXコンテンツを含むアプリケーション機能の構成を参照)。

MAF 2.3.1以降

RESTサービスにオフラインの読取りおよび書込みサポートを提供するクライアント・データ・モデル機能が含まれました。以前にA-Team Mobile Persistence Accelerator (AMPA)拡張機能を使用して、これらの機能を持つアプリケーションを開発している場合は、「AMPAを使用して開発されたアプリケーションのMAF 2.5.0への移行」の説明に従って、このリリースのMAFにそのアプリケーションを移行できます。

MAF 2.3.0以降
  • 新しいバージョンのCordova (4.x)が使用されるようになりました。移行されたMAFアプリケーションでサード・パーティ製のCordovaプラグインを使用している場合は、そのプラグインにこのリリースのMAFで使用されるAndroidおよびiOSバージョンのCordovaとの互換性があることを確認してください。「Cordovaプラグインの旧リリースからMAF 2.5.0への移行」を参照してください。

  • RestServiceAdapterインタフェースが、新しいパッケージの場所(oracle.maf.api.dc.ws.rest)に格納されました。このインタフェースで指定される機能は変わりません。REST Webサービス・アダプタの作成の詳細は、『Oracle Mobile Application Frameworkでのモバイル・アプリケーションの開発』のWebサービスにアクセスするためのRestサービス・アダプタの作成に関する項を参照してください。

  • 以前のリリースで非推奨になった次の機能のサポートが削除されました。

    • Mobile-Social認証サーバー・タイプ。MAFでサポートされる、OAuthなどの別の認証タイプを使用することをお薦めします。

    • SOAP Webサービス。REST WebサービスとJSONオブジェクトを使用することをお薦めします。『Oracle Mobile Application Frameworkでのモバイル・アプリケーションの開発』のMAFアプリケーションでのWebサービスの使用に関する項を参照してください。

  • jQuery JavaScriptライブラリがバンドルされなくなりました(MAF 2.3.0以降)。これは、AMXページまたはコンポーネントで使用されなくなりました。jQuery JavaScriptライブラリを使用する必要があるお客様は、機能インクルードを使用して明示的にjQueryを含める必要があります。

  • ユニバーサルWindowsプラットフォーム(UWP)へのMAFアプリケーションのデプロイメントのサポートが導入されました(MAF 2.3.0以降)。移行後のMAFアプリケーションに、MAFアプリケーションが特定のプラットフォームで実行されている場合にのみ実行されるプラットフォーム固有のコードが含まれている場合、この新しくサポートされるプラットフォームでそのMAFアプリケーションを実行するには、UWP用のプラットフォーム固有コードを含めるようにMAFアプリケーションを修正してください。UWPへのMAFアプリケーションのデプロイの詳細は、『Oracle Mobile Application Frameworkでのモバイル・アプリケーションの開発』のユニバーサルWindowsプラットフォームへのMAFアプリケーションのデプロイに関する項を参照してください。

MAF 2.2.1

このリリースに移行するアプリケーションのアプリケーション・トランスポート・セキュリティ(ATS)がデフォルトで有効になりました。「MAFリリース2.2.1以上でのセキュリティの変更」を参照してください。移行対象のアプリケーションがURLスキームを使用して他のアプリケーションを起動する場合は、「カスタムURLスキームを使用して他のアプリケーションを起動するMAFアプリケーションの移行」の説明に従って移行対象アプリケーションを構成します。

MAF 2.1.0
  • 新しいバージョンのApache CordovaとJavaが使用されるようになりました。また、JDeveloperによるMAFアプリケーションへのCordovaプラグインの登録方法も変更されました。SSL用には、新しいCAルート証明書が含まれているcacertsファイルが提供されました。

    注意:

    MAF 2.1.0で作成されたアプリケーションまたは以前にMAF 2.1.0に移行したアプリケーションをMAF 2.3.0以上に移行する場合、MAFでは、JDK 8への移行、Cordovaプラグインの管理、および新しいcacertsファイルに必要な変更は事前に行われます。
  • 更新されたSQLiteデータベースおよびJDBCドライバが含まれました。移行対象のMAFアプリケーションで、SQLiteデータベースに接続するコードを確認し、必要に応じて移行してください。SQLiteデータベースへの接続方法の詳細は、『Oracle Mobile Application Frameworkでのモバイル・アプリケーションの開発』のローカルSQLiteデータベースの使用方法に関する項を参照してください。

5.2 MAF 2.5.0でのXcode 9.xの使用

MAF 2.5.0では、MAFアプリケーションを開発してiOSプラットフォームにデプロイするためにXcode 9.xが必要です。

XcodeおよびiOS SDKのインストールの説明に従って、Xcode 9.xをインストールするか、Xcode 9.xにアップグレードします。Xcode 9.xのインストールまたはアップグレードを行ったら、必ず起動してライセンス契約を受諾してください。これを行わないと、JDeveloperがMAFアプリケーションのiOSへのデプロイを試行する際にデプロイメント・エラーが発生することがあります。このインストールでは、Xcode 9.xはXcodeの以前のインストールを置き換えます。JDeveloperはアクティブなXcodeインストールを使用するようになったので、他の変更は必要ありません。それぞれ別個の開発環境を維持する場合、次に説明するように、Xcodeの2つのインスタンスをインストールできます。たとえば、MAF 2.5.0用にXcode 9.xをインストールし、MAF 2.4.2用にXcode 8.3.xをインストールします。

5.2.1 Xcode 9.xとXcode 8.3.xの個別インストールを維持する方法

Xcode 9.xおよびXcode 8.3.xの個別インストールを維持するには、次の手順を実行します。
  1. Xcode 8.3.x用の既存のXcode.appインストールの名前を変更し(たとえば、Xcode8.app)、システムを再起動してから次の手順に進みます。
  2. XcodeおよびiOS SDKのインストールの説明に従って、Xcode 9.xをApple社のApp Storeからインストールします。更新ではなく、Apple社のApp StoreからXcodeをインストールしてください。
  3. Xcode 9.xをインストールしたら、必ず起動してライセンス契約を受諾してください。
    インストールの後で、次のXcodeインストールがApplicationsの場所にあることを確認します。
    Xcode 9.x installation:
    /Applications/Xcode.app 
    
    Xcode 8.3.x installation:
    /Applications/Xcode8.app 
  4. Xcodeの2つのバージョンをインストールしてからは、どちらのXcodeインストールをアクティブにするかを常に手動で制御する必要があります。端末ウィンドウでxcode-selectコマンドを使用して、次の例に示すようにこの手順を実行します。
    //To make Xcode 9.x active: 
    sudo xcode-select -s /Applications/Xcode.app
    
    //To make Xcode 8.3.x active: 
    sudo xcode-select -s /Applications/Xcode8.app
    
    //To determine which instance of Xcode is currently active:
    xcode-select --print-path
    

5.3 Cordovaプラグインの旧リリースからMAF 2.5.0への移行

MAF 2.5.0以降では、新しいバージョンのCordovaが使用されます。各ターゲット・プラットフォームが使用するバージョンについては、maf-application.xmlファイルの概要エディタの、Cordovaエンジンのバージョンの項を参照してください。

移行を完了して、移行済のMAFアプリケーションで以前使用していたコアでないプラグインの使用を確実に継続できるようにするには、このリリースのMAFで、MAFアプリケーションが使用するプラグインのバージョンがサポートされていることを確認します。「Cordovaエンジンのバージョン」に、ご使用のリリースのMAFで使用されるバージョンが表示されます(図5-1を参照)。現在のMAFリリースで使用されるものよりも古いリリースのCordovaを使用してプラグインが作成されている場合は、新しいバージョンのプラグインを取得してください。MAFアプリケーションのmaf-plugins.xmlファイルがプラグインを正しく参照するように、プラグインへの相対パスを設定します。『Oracle Mobile Application Frameworkでのモバイル・アプリケーションの開発』のMAFアプリケーションへの追加のプラグインの登録に関する項を参照してください。maf-plugins.xmlファイルで、相対パスを使用してプラグインを正しく参照していない場合、maf-application.xmlファイルの概要エディタで必須入力フィールドのパス*が空になり、maf-plugins.xmlに検証失敗が表示されます(図5-1を参照)。

以前のリリースのMAF (MAF 2.1.0より前)を使用して開発されたMAFアプリケーションでは、maf-applicationファイルにプラグインが登録されていました。MAF 2.1.0以降のリリースでは、maf-plugins.xmlファイルにプラグインを登録します。アプリケーションの移行時に、JDeveloperでは、プラグインを使用している以前のリリースのアプリケーションに次の変更を加えます。

  • maf-application.xmlファイル内でプラグインを参照していたエントリをコメント・アウトします。たとえば、JDeveloperではエントリを次のようにコメント・アウトします。

    <!--<adfmf:cordovaPlugins>
        <adfmf:plugin fullyQualifiedName="BarcodeScanner"
                      implementationClass="com.phonegap.plugins.
                           barcodescanner.BarcodeScanner" platform="Android"
                                                           name="BarcodeScanner">
      .....
    </adfmf:cordovaPlugins>-->
    
  • 次の例に示すように、maf-plugins.xmlファイルにプラグインを登録します。

    <cordova-plugins>
        ...
        <cordova-plugin id="c3" pluginId="org.apache.cordova.barcodeScanner">
          <platform id="p3" name="ios" enabled="true"/>
          <platform id="p4" name="android" enabled="false"/>
        </cordova-plugin>
      </cordova-plugins>
    

図5-1 プラグインへのパスが指定されていないMAFアプリケーション

図5-1の説明が続きます
「図5-1 プラグインへのパスが指定されていないMAFアプリケーション」の説明

5.4 Java VMレイヤーでのEL式の評価

このリリースより前では、MAFによって、MAFアプリケーションのWebビュー・レイヤーでAMXファイル、ELおよびAMXノードの作成が処理されました。このリリースでは、MAFによってこれらのタスクが、作成した新しいMAFアプリケーションのJava VMレイヤーで実行されます。

このリリースに移行したMAFアプリケーションでは、これらのタスクもJava VMレイヤーで実行されます。このリリースに移行したMAFアプリケーションを確認する際、次のことに注意してください。

  • 多くのMAF JS APIが非推奨になりました。MAFでサポートされる最新のJS APIの詳細は、Oracle Mobile Application Framework JSDocリファレンスを参照してください。

  • カスタム・コンポーネントを含むMAFアプリケーションには、サポートするカスタム・コンポーネントおよびその属性を識別するために使用するXMLネームスペースのメタデータを示す/META-INF/amx-tag-libraries.xmlファイルを含むことが必要になりました。Oracle Mobile Application Frameworkでのモバイル・アプリケーションの開発のカスタムUIコンポーネントの作成を参照してください。

  • ELの作成および評価がJava VMレイヤーに移動したため、EL式をJavaScriptで評価せず、コンポーネント・タイプ・ハンドラから使用しないようにする必要があります。

新しいMAFアプリケーションおよび移行済のMAFアプリケーションを構成して、次の項の説明に従って、MAFがWebビュー・レイヤーでEL式を評価していたレガシー動作を使用できます。

EL評価をWebビュー・レイヤーに移動する方法

maf-config.xmlファイルの<amxTagHandling>プロパティの値をlegacyに設定して、EL評価をWebビュー・レイヤーに移動します。

EL評価をWebビュー・レイヤーに移動するには、次の手順を実行します。

  1. 「アプリケーション」ウィンドウで、「アプリケーション・リソース」パネルを展開します。

  2. 「アプリケーション・リソース」パネルで「ディスクリプタ」を展開し、「ADF META-INF」を展開します。

  3. 表示されたソース・エディタのmaf-config.xmlファイルをダブルクリックし、次のエントリを追加します。

    <adfmf-config xmlns="http://xmlns.oracle.com/adf/mf/config">
      ...
      <!-- Use the Java VM layer to handle AMX tags and node hierarchies -->
      <amxTagHandling>legacy</amxTagHandling>
    </adfmf-config>
    

    EL評価を処理するためにmaf-config.xmlファイルに追加できる他の有効な値には、webviewまたはlegacyがあります。これらにより、AMXタグおよびノード階層の処理でWebビュー・レイヤーの使用が強制されます。amxTagHandlingプロパティに値defaultを入力するか、値を何も入力しない場合、Webビュー・レイヤーでAMXタグおよびノード階層が処理されることを意味します。

    Java VMレイヤーでEL式を評価するデフォルトの動作をMAFアプリケーションで使用する場合は、<amxTagHandling>legacy</amxTagHandling>エントリを削除するか、<amxTagHandling>default</amxTagHandling>に設定します。

5.5 iOSでWKWebViewを使用する場合のAMXコンテンツを含むアプリケーション機能の構成

MAFアプリケーションをiOS デバイスにデプロイした場合、MAF 2.3.2のリリース以降のMAFを使用して作成した新しいMAFアプリケーションは、デフォルトでWKWebViewを使用してAMXコンテンツ・タイプをレンダリングします。今回のリリースのMAFに移行したMAFアプリケーションでは、このWebビューの使用を選択できます。

新しいWKWebViewでは、UIWebViewと比較すると、パフォーマンスが改善されています。

次の例は、移行済MAFアプリケーションにAMXコンテンツを含むアプリケーション機能を構成し、新しいWKWebViewを使用する方法を示します。UIWebViewの使用に戻すには、value属性をlegacyに設定します。WKWebViewを使用する、AMXコンテンツを含むアプリケーション機能ごとにmaf-features.xmlファイルでこれらのプロパティを構成します。

<adfmf:feature id="WKWebViewExample" name="WKWebViewExample">
      <adfmf:constraints>
          <adfmf:constraint property="device.os" operator="contains" value="iOS" id="c6"/>
      </adfmf:constraints>
    <adfmf:content id="WKWebViewExample.1">
      <adfmf:amx file="WKWebViewExample/home.amx"/>
    </adfmf:content>
    <adfmf:properties id="wkp1">
      <adfmf:property id="wkp1-1" name="iOSWebView" value="modern" />
      <!-- To revert to using UIWebView, set to legacy  -->
      <!-- name="iOSWebView" value="legacy"   -->
    </adfmf:properties>     
  </adfmf:feature>

このWebビューでは、JavaScript APIにアクセスするための仮想パス/~maf.device~/をサポートしているので、ローカルHTMLまたはリモートURLコンテンツ・タイプを使用するアプリケーション機能では、引き続きUIWebViewが使用されます。

iOSWebViewプロパティが不足しているかdefaultに設定されている場合は、AMXコンテンツにはWKWebViewが使用され、ローカルHTMLおよびリモートURLコンテンツ・タイプにはUIWebViewが使用されます。/~maf.device~/仮想パスを使用する必要がない場合、この値をmodernに設定すると、ローカルHTMLおよびリモートURLコンテンツ・タイプ用にWKWebViewを使用することを選択できます。

WKWebViewは、iOS 9+でのみ使用されます。UIWebViewは、常にiOS 8上で使用されます。

5.6 MAFリリース2.4.0以上でのセキュリティの変更

MAF 2.4.0以降、MAFは、AndroidプラットフォームにデプロイするMAFアプリケーションのHTTPSプロトコルをTLS 1.2にデフォルト設定します。

サポート対象のプラットフォームでは、TLS 1.1を使用するようにアプリケーションのJava VMレイヤーを構成する次の例に示すように、maf.propertiesファイルで代わりの値をJavaのコマンド行の引数に指定して、この動作を上書きできます。

//  Configure Java VM layer of the MAF app to use TLSv1.1
java.commandline.argument=-Dhttps.protocols=TLSv1.1

//  Configure the HTTPS cipher suite(s) that an application uses by 
//  providing a comma-separated list as a value
java.commandline.argument=-Dhttps.cipherSuites=TLS_RSA_WITH_AES_256_CBC_SHA

Androidのバージョンがレガシー・プロトコルをサポートしている場合、Androidの認証機構はmaf.propertiesファイルのプロパティを尊重します。たとえば、Android 7以降を実行しているデバイスは、TLS 1をサポートせず、RC4ベースの暗号化スイートを無効化します。

iOSおよびユニバーサルWindowsプラットフォームでは、maf.propertiesファイルでこれらのプロパティを指定しても、アプリケーションの認証機構は変更されません。これはプラットフォーム自体で管理されます。ただし、REST呼び出しなどのアプリケーション・コードはこれらのプロパティによる影響を受けることがあります。

アプリケーションのデフォルトのMAFの動作を維持することをお薦めします。そうしない場合、アプリケーションがセキュリティ上の危険にさらされることがあります。古いバージョンのSSLまたは非推奨の暗号化スイートを使用するサーバーでアプリケーションをテストする必要がある場合、ここでの説明に従って、デフォルトの動作を上書きしてください。

5.7 MAFリリース2.2.1以上でのセキュリティの変更

MAF 2.2.0以前からMAF 2.3.0以降にアプリケーションを移行する場合は、移行されたアプリケーションの構成を変更して、アプリケーションがこのリリースのMAFでサポートされる最新のセキュリティ標準に準拠するようにする必要があります。

MAF 2.2.1以降、iOS上のMAFアプリケーションからサーバーへのすべての接続では、TLS 1.2のHTTPSを使用することが必要です。非HTTPS接続およびTLS1.2未満のSSLバージョンを使用するすべてのMAFアプリケーションは、iOSでは実行できません。MAFは、Apple iOS の要件を満たすためにこの動作を行い、TLS 1.2のHTTPSの使用が必要なアプリケーション・トランスポート・セキュリティ(ATS)を使用します。次の説明に従って、ATSの使用を無効にすることもできます。

また、MAFアプリケーションは、Java 8のJVMによって実施されるデフォルトの動作に従って、最新のSSLバージョンと暗号化スイートを使用します。このような新しいバージョンを使用するためにサーバーのアップグレードをお薦めします。ただし、次の説明に従ってMAFアプリケーションを構成すると、古いSSLバージョンでサーバーを使用した際に発生する可能性があるSSLエラーを回避することができます。

iOSデバイス上のMAFアプリケーションでのアプリケーション・トランスポート・セキュリティの無効化

このリリースのMAFに移行するMAFアプリケーションでは、ATSがデフォルトで有効になります。MAFアプリケーションのATSを次のように無効化できます。

  1. JDeveloperで、「アプリケーション」「アプリケーション・プロパティ」「デプロイメント」を選択します。

  2. 「デプロイメント」ページで、iOSデプロイメント・プロファイルをダブルクリックします。

  3. 「iOSオプション」を選択します。

  4. 「アプリケーション・トランスポート・セキュリティの無効化」を選択して「OK」をクリックします。

    注意:

    ATSを無効にしないことをお薦めします。Appleでは、2017年1月1日からATSの使用を強制する予定です。ATSを無効にするMAFアプリケーションは、Apple App Storeによる公開を承認されません。

SSL構成の変更

TLS 1.2未満のSSLバージョン、非推奨の暗号化スイートまたは非推奨の暗号化アルゴリズムを使用するユーザーには、「invalid cipher suite」「close notify」「TLS error」などのSSLエラーが表示されます。Java 8では、最新のSSLバージョンと暗号化スイートの使用が実施されます。セキュアでないSSLバージョンの使用はデフォルトで無効化されています。新しいSSLバージョンを使用するためにサーバーの更新をお薦めします。これができない場合は、前述したSSLエラーを回避するために次の構成を使用します。

  1. 使用するSSLバージョンを含むようにmaf.propertiesファイルを更新します。たとえば、TLS 1を使用するには次のエントリをmaf.propertiesファイルに追加します。

    java.commandline.argument=-Dhttps.protocols=TLSv1

  2. アプリケーションで必要なすべての暗号化スイートのリストを指定してmaf.propertiesファイルを更新します。Javaでサポートされる暗号化スイートのリストは、このページの暗号化スイートに関する項を参照してください。

    たとえば、SSL_RSA_WITH_RC4_128_MD5を有効にするには、次を追加します。

    java.commandline.argument=-D SSL_RSA_WITH_RC4_128_MD5

  3. 非推奨のアルゴリズムを有効化するようにjava.securityファイルを更新します。既存のMAFアプリケーションにこのファイルを含めることはできないため、新しい空のMAFアプリケーションを作成し、新しいMAFアプリケーションの/resources/securityに作成されたjava.securityファイルを、既存のアプリケーションの同じディレクトリにコピーします。

    たとえば、RC4アルゴリズムは、java.securityファイルの次のエントリに基づいてデフォルトで無効になっています。

    jdk.tls.disabledAlgorithms=SSLv3, RC4, DH keySize < 768

    RC4アルゴリズムを必要とする暗号化スイート(SSL_RSA_WITH_RC4_128_MD5など)を使用すると、実行時にSSL接続を確立する際にエラーがスローされます。これを回避するため、java.securityエントリを次のように変更してRC4アルゴリズムを有効にします。

    jdk.tls.disabledAlgorithms=SSLv3, DH keySize < 768

5.8 AMPAを使用して開発されたアプリケーションのMAF 2.5.0への移行

A-Team Mobile Persistence Accelerator (AMPA)拡張機能および以前のリリースのMAFを使用して開発されたアプリケーションをこのリリースのMAFに移行する方法について説明します。

MAF 2.3.1以降には、MAFのクライアント・データ・モデル機能の一部として、永続性およびデータ同期化フレームワークであるAMPAが組み込まれています。アプリケーション開発者は、MAFクライアント・データ・モデルのデザインタイムおよびランタイム機能を使用して新しいMAFアプリケーションを開発して、アプリケーションのデータ・モデルを生成し、エンド・ユーザーのデバイスで永続化するデータ・オブジェクトを決定し、生成されたクライアント・データ・モデルのサービス・オブジェクトから作成されるデータ・コントロールから完全なユーザー・インタフェースを生成できます。『Oracle Mobile Application Frameworkでのモバイル・アプリケーションの開発』のMAFアプリケーションでのクライアント・データ・モデルの作成に関する項を参照してください。

次のタスクを実行することで、AMPA拡張機能および以前のリリースのMAFを使用して開発されたアプリケーションをこのリリースのMAFに移行できます。

  • persistence-mapping.xmlファイルでネームスペースを変更する

  • maf-application.xmlファイルでライフサイクル・リスナーを変更する

  • MAFクライアント・データ・モデルのパッケージ名を使用するようにAMPAクラスのパッケージ名を変更する

persistence-mapping.xmlファイルでネームスペースを変更する

次の例に示すように、MAFクライアント・データ・モデル値を使用するようにpersistence-mapping.xmlファイルでネームスペースを変更します。

<mobileObjectPersistence xmlns="http://xmlns.oracle.com/adf/mf/amx/cdm/persistenceMapping" ...  

persistence-mapping.xmlファイルは、移行したアプリケーションのApplicationControllerプロジェクトの次のディレクトリにあります。

/ApplicationController/src/META-INF

maf-application.xmlファイルでライフサイクル・リスナーを変更する

maf-application.xmlファイルでlistener-class属性の値を、oracle.ateam.sample.mobile.lifecycle.InitDBLifeCycleListenerから次の例に示すMAFクライアント・データ・モデル値に変更します。

<adfmf:application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:adfmf="http://xmlns.oracle.com/adf/mf"
	   ...
	   listener-class="oracle.maf.impl.cdm.lifecycle.InitDBLifeCycleListener">

maf-application.xmlファイルは、移行したアプリケーションの次のディレクトリにあります。

./.adf/META-INF/maf-application.xml

MAFクライアント・データ・モデルのパッケージ名にAMPAパッケージ名を変更する

移行したアプリケーションでのJavaクラスのパッケージ名を、MAFクライアント・データ・モデルで使用されるパッケージ名に変更します。AMPAパッケージとMAFクライアント・データ・モデル・パッケージとの対応は次のとおりです。

oracle.ateam.sample.mobile                 ----->  oracle.maf.impl.cdm
oracle.ateam.sample.mobile.v2.security     ----->  oracle.maf.impl.cdm.security
oracle.ateam.sample.mobile.v2.persistence  ----->  oracle.maf.impl.cdm.persistence

たとえば、このリリースのMAFに移行するAMPAアプリケーションにoracle.ateam.sample.mobile.mcs.analytics.AnalyticsEventをインポートするJavaクラスが含まれている場合、移行したアプリケーションでそのJavaクラスをoracle.maf.impl.cdm.mcs.analytics.AnalyticsEventをインポートするように変更します。

注意:

oracle.maf.impl.cdmパッケージのクラスはMAFクライアント・データ・モデルの内部クラスで、変更される可能性があります。これらのクラスは、MAFの以降のリリースでリファクタされる可能性がありますが、現時点では、これらのクラスを拡張しないことをお薦めします。

oracle.maf.api.cdm...パッケージのすべてのクラスは、拡張できる公開クラスです。たとえば、このリリースのMAFに移行するAMPAアプリケーションにoracle.ateam.sample.mobile.mcs.storage.StorageObjectをインポートするJavaクラスが含まれている場合、そのJavaクラスをoracle.maf.api.cdm.mcs.storage.StorageObjectをインポートするように変更します。

次のリストに、oracle.maf.api.cdmパッケージの公開クラスを示します。

controller.bean.ConnectivityBean
exception.RestCallException
mcs.storage.StorageObject
mcs.storage.StorageObjectService
persistence.cache.EntityCache
persistence.db.BindParamInfo
persistence.manager.DBPersistenceManager
persistence.manager.MCSPersistenceManager
persistence.manager.RestJSONPersistenceManager
persistence.manager.RestXMLPersistenceManager
persistence.metadata.AttributeMapping
persistence.metadata.AttributeMappingDirect
persistence.metadata.AttributeMappingOneToMany
persistence.metadata.AttributeMappingOneToOne
persistence.metadata.ClassMappingDescriptor
persistence.model.Entity
persistence.service.DataSynchAction
persistence.service.DataSynchService
persistence.service.ValueHolderInterface
persistence.util.EntityUtils

前述のリストの公開クラスについてAMPAでのパッケージ名を確認し、MAFクライアント・データ・モデルでのパッケージ名を使用するように変更するために、Javaリファレンス・ドキュメントでAMPAフレームワークを参照してください。MAFの公開クラスの詳細は、Oracle Mobile Application Framework Java APIリファレンスを参照してください。

MAFクライアント・データ・モデルに実装されている、その他の変更については、前述のリファレンス・ドキュメントも参照してください。このドキュメントにはAMPAも含まれています。たとえば、AMPAと拡張クラス参照定数(SQL_SELECT_KEYWORDなど)を使用して開発されたアプリケーションでDBPersistenceManagerを拡張した場合は、これらの定数がDBPersistenceManagerのMAFクライアント・データ・モデルの実装で提供されなくなるため、拡張クラスで独自の定数を指定する必要があります。

移行したアプリケーションおよびpageDefinition.xmlファイルで、AMPAパッケージ名を使用してJavaマネージドBeanを参照するすべてのJavaクラスに対し前述の変更を行います。

前述の変更の他に、移行するアプリケーションがサポートされているクラスおよびメソッドを使用していることを確認してください。たとえば、AMPAの最新リリースではoracle.ateam.sample.mobile.util.MCSManagerが非推奨になっています。このリリースのMAFに移行し、AMPA非推奨のMCSManagerを使用するすべてのアプリケーションを、oracle.maf.api.cdm.persistence.manager.MCSPersistenceManagerを使用するように変更する必要があります。

5.9 カスタムURLスキームを使用して他のアプリケーションを起動するMAFアプリケーションの移行

MAF 2.2.2以降に移行するアプリケーションが、カスタムURLスキームを使用して別のアプリケーションを起動する場合は、maf-application.xmlファイルの概要エディタの「セキュリティ」ページで「許可されるスキーム」リストにスキームを追加します。

この変更点は、アプリケーションが他のアプリケーションの起動に使用するURLスキームを宣言するというiOS 9の要件に対応しています。「セキュリティ」ページの許可されるスキーム・セクションの「追加」アイコンをクリックして、カスタムURLスキームを追加します。

図5-2 MAFアプリケーションが別のアプリケーションの起動に使用するカスタムURLスキームの登録

図5-2の説明が続きます
「図5-2 MAFアプリケーションが別のアプリケーションの起動に使用するカスタムURLスキームの登録」の説明

5.10 MAF 2.5.0のJDK 8への移行

MAF 2.1.0以降で作成するMAFアプリケーションは、JDK 8を使用します。以前のバージョンのJavaを使用してコンパイルされたMAFアプリケーションを移行する場合、MAF 2.1.0以降ではJDK 8が必要なことと、Java SE Embedded 8 Compact2プロファイルを使用してアプリケーションがコンパイルされることに注意してください。

MAF 2.1.0より前のリリースから移行したアプリケーションを初めて開くときに、JDeveloperでは次の変更が行われます。

  • JVMの起動パラメータを指定する構成ファイルの名前をcvm.propertiesからmaf.propertiesに変更します。maf.propertiesファイルの詳細は、『Oracle Mobile Application Frameworkでのモバイル・アプリケーションの開発』のJavaコードおよびJavaScriptのデバッグを有効にする方法に関する項を参照してください。

  • アプリケーションのJavaソース・ファイルに記載された次のimport文のインスタンスを置き換えます(存在する場合)。

    com.sun.util.logging
    

    次に置き換えます。

    java.util.logging
    
  • アプリケーションのlogging.propertiesファイルに記載された次のエントリを置き換えます。

    .handlers=com.sun.util.logging.ConsoleHandler
    .formatter=com.sun.util.logging.SimpleFormatter
    

    次に置き換えます。

    .handlers=java.util.logging.ConsoleHandler
    .formatter=java.util.logging.SimpleFormatter
    

    logging.propertiesファイルの詳細は、『Oracle Mobile Application Frameworkでのモバイル・アプリケーションの開発』のプロパティ・ファイルを使用したロギングの構成方法に関する項を参照してください。

5.11 Androidの戻るボタンを使用してMAFアプリケーションをナビゲートするときのレガシー動作の維持

MAF 2.2.0では、このリリースを使用して作成されたMAFアプリケーションがAndroidシステムの戻るボタンの使用に応答する方法が変更されました。前のリリースで作成し、MAF 2.2.0以降に移行したMAFアプリケーションでは、新しい動作が使用されます。

図は、エンド・ユーザーが3つのアプリケーション機能(Customer、SalesおよびBilling)間でBillingアプリケーション機能のBilling Page 3ページにナビゲートした場合のMAFアプリケーションのナビゲーション・フローを示します。

図5-3 MAFアプリケーションのアプリケーション機能とページ間のナビゲーション・フロー

図5-3の説明が続きます
「図5-3 MAFアプリケーションのアプリケーション機能とページ間のナビゲーション・フロー」の説明

リリースMAF 2.2.0より前では、エンド・ユーザーがAndroidシステムの戻るボタンをタップした場合のMAFアプリケーションのデフォルト動作は次のとおりでした。

  • Billing Page 3はSalesアプリケーション機能にナビゲートする

  • Salesアプリケーション機能はCustomersアプリケーション機能にナビゲートする

  • CustomerアプリケーションはMAFアプリケーションを終了する

MAF 2.2.0以降では、エンド・ユーザーがAndroidシステムの戻るボタンをタップした場合のMAFアプリケーションのデフォルト動作は次のとおりです。

  • 「Billing Page 3」は「Billing Page 2」にナビゲート

  • 「Billing Page 2」は「Billing Page 1」にナビゲート

  • 「Billing Page 1」はMAFアプリケーションを休止

『Oracle Mobile Application Frameworkでのモバイル・アプリケーションの開発』のAndroidの戻るボタンを使用したMAFアプリケーションのナビゲートに関する項の説明に従って、エンド・ユーザーがAndroidシステムの戻るボタンをタップした場合のMAFアプリケーションの動作をカスタマイズできます。

「Androidの戻るボタンの使用に対してMAF 2.2.0より前のアプリケーションの動作を維持する方法」の説明に従ってmaf-config.xmlでプロパティを設定することで、MAF 2.2.0より前のアプリケーションの動作(アプリケーション機能間のナビゲート)を示すようにMAFアプリケーションを構成することもできます。

5.11.1 Androidの戻るボタンの使用に対してMAF 2.2.0より前のアプリケーションの動作を維持する方法

maf-config.xmlファイルのlegacyBack要素を構成して、エンド・ユーザーがAndroidの戻るボタンをタップしたときにMAFアプリケーションがMAF 2.2.0より前の動作を示すようにすることができます。

Androidの戻るボタンの使用に対してMAF 2.2.0より前のアプリケーションの動作を維持する手順:
  1. 「アプリケーション」ウィンドウで、maf-config.xmlファイルをダブルクリックします。
    デフォルトでは、これは、「アプリケーション・リソース」ペインの「ディスクリプタ」および「ADF META-INF」ノードの下にあります。
  2. maf-config.xmlファイルで、例5-1に示すようにlegacyBack要素の値をtrueに設定します。

例5-1 Androidの戻るボタンの使用に対してMAF 2.2.0より前のアプリケーションの動作を維持するためのlegacyBack要素

<?xml version="1.0" encoding="UTF-8" ?> 
<adfmf-config xmlns="http://xmlns.oracle.com/adf/mf/config">   
   ...   
   <legacyBack>true</legacyBack> 
</adfmf-config>

5.12 MAF 2.5.0の新しいSSL用cacertsファイルへの移行

MAF 2.1.0は、MAFアプリケーションで使用する新しいcacertsファイルを提供しました。エンド・ユーザーのインストール用に公開するアプリケーションにパッケージ化されたcacertsファイルに、エンド・ユーザーがMAFアプリケーションの使用時に接続するHTTPSサーバーと同じCAルート証明書が含まれていることを確認します。

MAFアプリケーションのcacertsファイルにない証明書がHTTPSサーバーに含まれている場合、MAFアプリケーションのcacertsファイルに新しい証明書をインポートする必要があります。同様に、HTTPSサーバーにない証明書がMAFアプリケーションで使用されている場合、MAFアプリケーションが接続するHTTPSサーバーのシステム管理者は、新しい証明書をインポートする必要があります。

JDK 8のkeytoolユーティリティを使用すると、MAFアプリケーションのcacertsファイル内の証明書を表示および管理できます。次の例は、JDK 8のkeytoolユーティリティを使用してcacertsファイル内の証明書リストを表示する方法を示しています。

JDK8install/bin/keytool -list -v -keystore dirPathToCacertsFile/cacerts –storepass changeit | grep "Issuer:"

JDK 8のkeytoolユーティリティを使用して証明書を管理する方法の詳細は、http://docs.oracle.com/javase/8/docs/technotes/tools/#securityを参照してください。たとえば、Windowsでkeytoolユーティリティを使用する場合は、http://docs.oracle.com/javase/8/docs/technotes/tools/windows/keytool.htmlを参照してください。UNIXベースのオペレーティング・システムの場合は、http://docs.oracle.com/javase/8/docs/technotes/tools/unix/keytool.htmlを参照してください。

cacertsファイルについて、およびSSLを使用してMAFアプリケーションを保護する方法の詳細は、『Oracle Mobile Application Frameworkでのモバイル・アプリケーションの開発』のSSLのサポートに関する項を参照してください。

例5-2に、MAF 2.1.0のcacertsファイルに含まれているCAルート証明書の発行者を示します。このファイル内の証明書を管理してMAFアプリケーションの使用環境の要件を満たすには、前述のJDK 8のkeytoolユーティリティを使用します。

例5-2 MAF 2.1.0用cacertsファイル内のCAルート証明書の発行者

Issuer: CN=DigiCert Assured ID Root CA, OU=www.digicert.com, O=DigiCert Inc, C=US
Issuer: CN=TC TrustCenter Class 2 CA II, OU=TC TrustCenter Class 2 CA, O=TC TrustCenter GmbH, C=DE
Issuer: EMAILADDRESS=premium-server@thawte.com, CN=Thawte Premium Server CA, OU=Certification Services Division, O=Thawte Consulting cc, L=Cape Town, ST=Western Cape, C=ZA
Issuer: CN=SwissSign Platinum CA - G2, O=SwissSign AG, C=CH
Issuer: CN=SwissSign Silver CA - G2, O=SwissSign AG, C=CH
Issuer: EMAILADDRESS=server-certs@thawte.com, CN=Thawte Server CA, OU=Certification Services Division, O=Thawte Consulting cc, L=Cape Town, ST=Western Cape, C=ZA
Issuer: CN=Equifax Secure eBusiness CA-1, O=Equifax Secure Inc., C=US
Issuer: CN=SecureTrust CA, O=SecureTrust Corporation, C=US
Issuer: CN=UTN-USERFirst-Client Authentication and Email, OU=http://www.usertrust.com, O=The USERTRUST Network, L=Salt Lake City, ST=UT, C=US
Issuer: EMAILADDRESS=personal-freemail@thawte.com, CN=Thawte Personal Freemail CA, OU=Certification Services Division, O=Thawte Consulting, L=Cape Town, ST=Western Cape, C=ZA
Issuer: CN=AffirmTrust Networking, O=AffirmTrust, C=US
Issuer: CN=Entrust Root Certification Authority, OU="(c) 2006 Entrust, Inc.", OU=www.entrust.net/CPS is incorporated by reference, O="Entrust, Inc.", C=US
Issuer: CN=UTN-USERFirst-Hardware, OU=http://www.usertrust.com, O=The USERTRUST Network, L=Salt Lake City, ST=UT, C=US
Issuer: CN=Certum CA, O=Unizeto Sp. z o.o., C=PL
Issuer: CN=AddTrust Class 1 CA Root, OU=AddTrust TTP Network, O=AddTrust AB, C=SE
Issuer: CN=Entrust Root Certification Authority - G2, OU="(c) 2009 Entrust, Inc. - for authorized use only", OU=See www.entrust.net/legal-terms, O="Entrust, Inc.", C=US
Issuer: OU=Equifax Secure Certificate Authority, O=Equifax, C=US
Issuer: CN=QuoVadis Root CA 3, O=QuoVadis Limited, C=BM
Issuer: CN=QuoVadis Root CA 2, O=QuoVadis Limited, C=BM
Issuer: CN=DigiCert High Assurance EV Root CA, OU=www.digicert.com, O=DigiCert Inc, C=US
Issuer: EMAILADDRESS=info@valicert.com, CN=http://www.valicert.com/, OU=ValiCert Class 1 Policy Validation Authority, O="ValiCert, Inc.", L=ValiCert Validation Network
Issuer: CN=Equifax Secure Global eBusiness CA-1, O=Equifax Secure Inc., C=US
Issuer: CN=GeoTrust Universal CA, O=GeoTrust Inc., C=US
Issuer: OU=Class 3 Public Primary Certification Authority, O="VeriSign, Inc.", C=US
Issuer: CN=thawte Primary Root CA - G3, OU="(c) 2008 thawte, Inc. - For authorized use only", OU=Certification Services Division, O="thawte, Inc.", C=US
Issuer: CN=thawte Primary Root CA - G2, OU="(c) 2007 thawte, Inc. - For authorized use only", O="thawte, Inc.", C=US
Issuer: CN=Deutsche Telekom Root CA 2, OU=T-TeleSec Trust Center, O=Deutsche Telekom AG, C=DE
Issuer: CN=Buypass Class 3 Root CA, O=Buypass AS-983163327, C=NO
Issuer: CN=UTN-USERFirst-Object, OU=http://www.usertrust.com, O=The USERTRUST Network, L=Salt Lake City, ST=UT, C=US
Issuer: CN=GeoTrust Primary Certification Authority, O=GeoTrust Inc., C=US
Issuer: CN=Buypass Class 2 Root CA, O=Buypass AS-983163327, C=NO
Issuer: CN=Baltimore CyberTrust Code Signing Root, OU=CyberTrust, O=Baltimore, C=IE
Issuer: OU=Class 1 Public Primary Certification Authority, O="VeriSign, Inc.", C=US
Issuer: CN=Baltimore CyberTrust Root, OU=CyberTrust, O=Baltimore, C=IE
Issuer: OU=Starfield Class 2 Certification Authority, O="Starfield Technologies, Inc.", C=US
Issuer: CN=Chambers of Commerce Root, OU=http://www.chambersign.org, O=AC Camerfirma SA CIF A82743287, C=EU
Issuer: CN=T-TeleSec GlobalRoot Class 3, OU=T-Systems Trust Center, O=T-Systems Enterprise Services GmbH, C=DE
Issuer: CN=VeriSign Class 3 Public Primary Certification Authority - G5, OU="(c) 2006 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US
Issuer: CN=T-TeleSec GlobalRoot Class 2, OU=T-Systems Trust Center, O=T-Systems Enterprise Services GmbH, C=DE
Issuer: CN=TC TrustCenter Universal CA I, OU=TC TrustCenter Universal CA, O=TC TrustCenter GmbH, C=DE
Issuer: CN=VeriSign Class 3 Public Primary Certification Authority - G4, OU="(c) 2007 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US
Issuer: CN=VeriSign Class 3 Public Primary Certification Authority - G3, OU="(c) 1999 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US
Issuer: CN=XRamp Global Certification Authority, O=XRamp Security Services Inc, OU=www.xrampsecurity.com, C=US
Issuer: CN=Class 3P Primary CA, O=Certplus, C=FR
Issuer: CN=Certum Trusted Network CA, OU=Certum Certification Authority, O=Unizeto Technologies S.A., C=PL
Issuer: OU=VeriSign Trust Network, OU="(c) 1998 VeriSign, Inc. - For authorized use only", OU=Class 3 Public Primary Certification Authority - G2, O="VeriSign, Inc.", C=US
Issuer: CN=GlobalSign, O=GlobalSign, OU=GlobalSign Root CA - R3
Issuer: CN=UTN - DATACorp SGC, OU=http://www.usertrust.com, O=The USERTRUST Network, L=Salt Lake City, ST=UT, C=US
Issuer: OU=Security Communication RootCA2, O="SECOM Trust Systems CO.,LTD.", C=JP
Issuer: CN=GTE CyberTrust Global Root, OU="GTE CyberTrust Solutions, Inc.", O=GTE Corporation, C=US
Issuer: OU=Security Communication RootCA1, O=SECOM Trust.net, C=JP
Issuer: CN=AffirmTrust Commercial, O=AffirmTrust, C=US
Issuer: CN=TC TrustCenter Class 4 CA II, OU=TC TrustCenter Class 4 CA, O=TC TrustCenter GmbH, C=DE
Issuer: CN=VeriSign Universal Root Certification Authority, OU="(c) 2008 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US
Issuer: CN=GlobalSign, O=GlobalSign, OU=GlobalSign Root CA - R2
Issuer: CN=Class 2 Primary CA, O=Certplus, C=FR
Issuer: CN=DigiCert Global Root CA, OU=www.digicert.com, O=DigiCert Inc, C=US
Issuer: CN=GlobalSign Root CA, OU=Root CA, O=GlobalSign nv-sa, C=BE
Issuer: CN=thawte Primary Root CA, OU="(c) 2006 thawte, Inc. - For authorized use only", OU=Certification Services Division, O="thawte, Inc.", C=US
Issuer: CN=Starfield Root Certificate Authority - G2, O="Starfield Technologies, Inc.", L=Scottsdale, ST=Arizona, C=US
Issuer: CN=GeoTrust Global CA, O=GeoTrust Inc., C=US
Issuer: CN=Sonera Class2 CA, O=Sonera, C=FI
Issuer: CN=Thawte Timestamping CA, OU=Thawte Certification, O=Thawte, L=Durbanville, ST=Western Cape, C=ZA
Issuer: CN=Sonera Class1 CA, O=Sonera, C=FI
Issuer: CN=QuoVadis Root Certification Authority, OU=Root Certification Authority, O=QuoVadis Limited, C=BM
Issuer: CN=AffirmTrust Premium ECC, O=AffirmTrust, C=US
Issuer: CN=Starfield Services Root Certificate Authority - G2, O="Starfield Technologies, Inc.", L=Scottsdale, ST=Arizona, C=US
Issuer: EMAILADDRESS=info@valicert.com, CN=http://www.valicert.com/, OU=ValiCert Class 2 Policy Validation Authority, O="ValiCert, Inc.", L=ValiCert Validation Network
Issuer: CN=AAA Certificate Services, O=Comodo CA Limited, L=Salford, ST=Greater Manchester, C=GB
Issuer: CN=America Online Root Certification Authority 2, O=America Online Inc., C=US
Issuer: CN=AddTrust Qualified CA Root, OU=AddTrust TTP Network, O=AddTrust AB, C=SE
Issuer: CN=KEYNECTIS ROOT CA, OU=ROOT, O=KEYNECTIS, C=FR
Issuer: CN=America Online Root Certification Authority 1, O=America Online Inc., C=US
Issuer: CN=VeriSign Class 2 Public Primary Certification Authority - G3, OU="(c) 1999 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US
Issuer: CN=AddTrust External CA Root, OU=AddTrust External TTP Network, O=AddTrust AB, C=SE
Issuer: OU=VeriSign Trust Network, OU="(c) 1998 VeriSign, Inc. - For authorized use only", OU=Class 2 Public Primary Certification Authority - G2, O="VeriSign, Inc.", C=US
Issuer: CN=GeoTrust Primary Certification Authority - G3, OU=(c) 2008 GeoTrust Inc. - For authorized use only, O=GeoTrust Inc., C=US
Issuer: CN=GeoTrust Primary Certification Authority - G2, OU=(c) 2007 GeoTrust Inc. - For authorized use only, O=GeoTrust Inc., C=US
Issuer: CN=SwissSign Gold CA - G2, O=SwissSign AG, C=CH
Issuer: CN=Entrust.net Certification Authority (2048), OU=(c) 1999 Entrust.net Limited, OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.), O=Entrust.net
Issuer: OU=ePKI Root Certification Authority, O="Chunghwa Telecom Co., Ltd.", C=TW
Issuer: CN=Global Chambersign Root - 2008, O=AC Camerfirma S.A., SERIALNUMBER=A82743287, L=Madrid (see current address at www.camerfirma.com/address), C=EU
Issuer: CN=Chambers of Commerce Root - 2008, O=AC Camerfirma S.A., SERIALNUMBER=A82743287, L=Madrid (see current address at www.camerfirma.com/address), C=EU
Issuer: OU=Go Daddy Class 2 Certification Authority, O="The Go Daddy Group, Inc.", C=US
Issuer: CN=AffirmTrust Premium, O=AffirmTrust, C=US
Issuer: CN=VeriSign Class 1 Public Primary Certification Authority - G3, OU="(c) 1999 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US
Issuer: OU=Security Communication EV RootCA1, O="SECOM Trust Systems CO.,LTD.", C=JP
Issuer: OU=VeriSign Trust Network, OU="(c) 1998 VeriSign, Inc. - For authorized use only", OU=Class 1 Public Primary Certification Authority - G2, O="VeriSign, Inc.", C=US
Issuer: CN=Go Daddy Root Certificate Authority - G2, O="GoDaddy.com, Inc.", L=Scottsdale, ST=Arizona, C=US