SSL環境で利用する

✔ 概要

SSL環境でワークフローシステムを利用する場合、SSL用コネクタの有効化や証明書のインストールといった一般的な手順に加え、ワークフローシステム用の設定を追加する必要があります。本項では、SSL環境でワークフローシステムを利用する場合に必要な手順について説明します。

注意

  • 本設定は、パッケージ版で利用できます。
    クラウド版では利用できません。
  • 該当箇所に変更が適用されている場合は修正不要です。

ヒント

SSL(Secure Sockets Layer)とは
SSL(Secure Sockets Layer)は、インターネット上での通信を暗号化する技術です。
SSLを利用することで、ユーザーが利用するブラウザーとサーバー間の通信を暗号化し、第三者によるデータの盗聴やなりすまし、改ざんなどを防ぐことができます。

例として、以下の環境を前提とした手順を説明します。実際に利用する環境に合わせて置き換えて実施してください。

項目 内容
キーストアのファイル名 server.keystore
キーストアのパスワード password
CSRのファイル名 server.csr
ルート証明書エイリアス名 root
ルート証明書のファイル名 root.cer
中間CA証明書エイリアス名 middle
中間CA証明書のファイル名 middle.cer
サーバー証明書エイリアス名 webflow
サーバー証明書のファイル名 webflow.cer

注釈

  • SSL証明書の発行 および SSL証明書のインストール は、一般的な手順を例として説明します。すでに実施済みの環境の場合は、 ワークフローシステムの設定 より実施してください。

  • SSL証明書の発行 および SSL証明書のインストール の手順では、Javaのkeytoolというコマンドを使用します。
    コマンド実行前に以下ディレクトリに移動して実行してください。

    OS ディレクトリの移動
    Windows の場合

    以下のコマンドでディレクトリに移動します。

    >cd (CREATE_HOME)/Java/(jdk)/bin
    

    (CREATE_HOME)はワークフローシステムフォルダのパスに、(jdk)はご利用のjdkのバージョンと同じフォルダに読み替えてください。

    例)Cドライブ直下にインストールし、jdk1.8をご利用の場合

    C:/CREATE_HOME/Java/jdk1.8.0_91/bin
    Linux の場合

    以下のコマンドでディレクトリに移動します。

    >cd $(CREATE_HOME)/Java/(jdk)/bin
    

    (CREATE_HOME)はワークフローシステムフォルダのパスに、(jdk)はご利用のjdkのバージョンと同じフォルダに読み替えてください。

    例)「/usr/local」ディレクトリ直下にインストールし、jdk1.8をご利用の場合

    /usr/local/CREATE_HOME/Java/jdk1.8.0_91/bin

設定方法

SSL証明書の発行

キーストアファイルの作成

以下のコマンドを実行し、キーストアを作成します。

>keytool -genkeypair -alias webflow -keyalg RSA -keysize 2048 -keystore server.keystore -storepass password
姓名は何ですか。
  [Unknown]: (ドメイン名を入力。例:xxx.xxxxx.co.jp)
組織単位名は何ですか。
  [Unknown]: (組織単位を入力。例:XXXXX Group)
組織名は何ですか。
  [Unknown]: (組織名を入力。例:xxx XXX Inc)
都市名または地域名は何ですか。
  [Unknown]: (都市名または地域名を入力。例:XXXX)
都道府県名または州名は何ですか。
  [Unknown]: (都道府県名を入力。例:Tokyo)
この単位に該当する2文字の国コードは何ですか。
  [Unknown]: (2文字の国番号を入力。例:JP)
CN=xxx.xxxxx.co.jp, OU=XXXXX Group, O=xxx XXX Inc., L=XXXX, ST=Tokyo, C=JP でよろしいですか?
  [いいえ]:(「はい」を入力)

<webflow>の鍵パスワードを入力してください。
(キーストアのパスワードと同じ場合は RETURN を押してください):(RETURN[Enter]を入力)

CSR ファイルの作成

作成したキーストアを使用して、CSRを作成します。以下のコマンドを実行します。

>keytool -certreq -alias webflow -keystore server.keystore -storepass password -file server.csr

証明書発行機関への申請

作成したCSRを証明書発行機関に提出/申請し、SSL証明書を発行してください。

SSL証明書のインストール

証明書発行機関より提供/発行された証明書 をインストールします。それぞれ以下のコマンドを実行します。

ルート証明書のインストール

>keytool -import -alias root -keystore server.keystore -storepass password -file root.cer

中間証明書のインストール

>keytool -import -alias middle -keystore server.keystore -storepass password -file middle.cer

サーバー証明書のインストール

>keytool -import -alias webflow -keystore server.keystore -storepass password -file webflow.cer

ワークフローシステムの設定

ワークフローシステムを停止し、各設定ファイルを変更します。

ワークフローシステムの停止

server.xmlの設定

server.xmlを編集して保存します。

注意

server.xmlは、編集前に必ずバックアップを作成してください。

変更するファイル [インストールディレクトリ]\Tomcat\conf\server.xml
例)C:\CREATE_HOME\Tomcat\conf\server.xml
変更内容

以下の内容を変更します。
変更後のタグ・値がすでに指定されている場合は変更は不要です。

  • SSL用コネクタ<Connector port="8443"…/>タグのコメント化(<!– –>)を解除し、SSL用コネクタを有効化します。

  • SSL用コネクタ<Connector port="8443"…/>タグにuseBodyEncodingForURI属性(設定値:true)を追加します。

    useBodyEncodingForURI="true"

  • SSL用コネクタ<Connector port="8443"…/>タグのsslProtocol属性(設定値:TLS)を追加します。

    sslProtocol="TLS"

  • SSL用コネクタ<Connector port="8443"…/>タグにkeystoreFile属性(設定値:キーストアファイル配置パス)とkeystorePass(設定値:キーストアファイルパスワード)属性を設定します。

    keystoreFile="キーストアファイル配置パス" keystorePass="キーストアファイルパスワード"

  • SSL用コネクタ<Connector port="8443"…/>タグのciphers属性を追加し、以下を設定します。
    ciphers 属性の値は改行を含めず 1 行で記述してください。

    ciphers="TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_EMPTY_RENEGOTIATION_INFO_SCSV"

◇変更前

<!--
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
           maxThreads="150" SSLEnabled="true" scheme="https" secure="true"

           executor="tomcatThreadPool" maxSwallowSize="-1" />
-->

◇変更後 (V5.4.0以降のバージョン)

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
           maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
           clientAuth="false" sslProtocol="TLS"
           useBodyEncodingForURI="true" executor="tomcatThreadPool" maxSwallowSize="-1"
           keystoreFile="(例:./server.keystore)" keystorePass="(例:password)"
           ciphers="TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_EMPTY_RENEGOTIATION_INFO_SCSV"
           maxParameterCount="10000">
           <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />

◇変更後 (V5.4.0より前のバージョン)

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
           maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
           clientAuth="false" sslProtocol="TLS"
           useBodyEncodingForURI="true" executor="tomcatThreadPool" maxSwallowSize="-1"
           keystoreFile="(例:./server.keystore)" keystorePass="(例:password)"
           ciphers="TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_EMPTY_RENEGOTIATION_INFO_SCSV" />

axis2.xml の変更

axis2.xmlを編集して保存します。

注意

axis2.xmlは、編集前に必ずバックアップを作成してください。

変更するファイル [インストールディレクトリ]\Tomcat\webapps\XFV20\WEB-INF\conf\axis2.xml
例)C:\CREATE_HOME\Tomcat\webapps\XFV20\WEB-INF\conf\axis2.xml
変更内容

以下の内容を変更します。

  • httpsのみ許可する場合

    <transportReceiver>タグのname属性を"http"から"https"に変更します。

    ◇変更前

    <transportReceiver name="http" class="org.apache.axis2.transport.http.AxisServletListener"/>
    

    ◇変更後

    <transportReceiver name= "https" class="org.apache.axis2.transport.http.AxisServletListener"/>
    
  • http/https両方を許可する場合

    <transportReceiver>タグをそれぞれに用意し、使用するポートを<parameter>タグで指定します。

    ◇変更前

    <transportReceiver name="http" class="org.apache.axis2.transport.http.AxisServletListener"/>
    

    ◇変更後

    <transportReceiver name="http" class="org.apache.axis2.transport.http.AxisServletListener">
        <parameter name="port">8080</parameter>
    </transportReceiver>
    <transportReceiver name="https" class="org.apache.axis2.transport.http.AxisServletListener">
        <parameter name="port">8443</parameter>
    </transportReceiver>
    

ワークフローシステムの起動

動作確認

複数の端末/ブラウザから、ワークフローシステムを表示できるかご確認ください。
同様にフォームマネージャー、オプション製品も正常に利用できることをご確認ください。