サンプル: フル AS2 メッセージ交換 (高度)

www.altova.com このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  AS2 との統合 >

サンプル: フル AS2 メッセージ交換 (高度)

このサンプルは、FlowForce Server 上で作動する 2つの AS2 パートナー間の暗号化、署名など、更に高度な AS2 メッセージの交換について説明しています。 このチュートリアルを開始する前に、基本をカバーしている前のチュートリアルを確認してください。次を参照してください: サンプル: フル AS2 メッセージの交換 (シンプル).

 

このサンプルは、 2つの AS2 パートナー間の複雑な通信のシナリオを表しています (RFC 4130 のセクション 2.4.2 に従い12の可能な順列の12番目の順列) 基本的には以下の点について説明されています:

 

送信者は暗号化された AS2 データを送信します。
送信者は署名済みの AS2 データを送信します。
送信者は受信者がメッセージへの応答内で MDN を返すことを必要とします。

 

前提

前のサンプルと同じ送信者と受信者が使用されます: Hermes (Linux 上の FlowForce Server) と Apollo (Windows 上の FlowForce Server)
Hermes は Apollo に暗号化済み、署名済みのメッセージをに送信し、署名済みの MDN が返されることを期待しています。
Apollo と Hermes は両者、ローカルのプライベートネットワーク上で作動しています。
受信側 AS2 サーバー (Apollo) は、認証されていないクライアントからの HTTP リクエストを受け入れます。 (すなわち、サービスに公的にアクセスすることができます)。

 

必要条件

FlowForce Server Advanced Edition がインストールされている必要があり、 Apollo と Hermes マシン上でライセンスが供与されている必要があります。
Apollo と Hermes サーバー上で、 FlowForce Web 管理者インターフェイスが構成されているホストとポート上で作動している必要があります。 (例えば、 http://apollo:8082http://hermes:8082、「apollo」 と 「hermes」 がそれぞれ対応するホスト名であることが前提です)。  次も参照してください: ネットワーク設定の定義

 

Apollo の資格情報のセットアップ

この構成ステップでは、 以下が行われます:

 

1.Apollo  は公開証明書と秘密キーを生成し、両方を FlowForce Server にインポートします。
2.Apollo は公開証明書 (秘密キー無しに) を Hermes に送信します。
3.Hermes は Apollo の公開証明書を FlowForce Server にインポートします。

 

上記が必要な理由:

 

Apollo にメッセージを送信する前に、 Hermes は Apollo の公開キーを暗号化する必要があります。 Hermes からのメッセージを受信すると、 Apollo は自身の秘密気ーを使用して暗号化を解除します。
Hermes によりリクエストされている MDN を送信する前に、Apollo は自身の秘密キーを使用して署名します。署名済みの MDN を受け取ると、Hermes は、署名を検証するために Apollo の公開証明書が必要になります。

 

このサンプルのスコープのために、Cygwin (https://cygwin.com/) 内に含まれる OpenSSL library (https://www.openssl.org/)を使用して自身により署名された証明書を作成します。現実のシナリオでは、他のツールを使用してを生成、または、既に所属機関で使用することのできる証明書を使用します。

 

Apollo のために自身で署名された証明書を生成するには、Cygwin ターミナルを開き、以下を入力します:

 

openssl req -x509 -newkey rsa:2048 -keyout apollo_private.pem -out apollo_public.pem -days 365

 

パスフェーズを入力するようにプロンプトされると、秘密キーを暗号化するパスワードを入力し、記憶しておいてください。 FlowForce Server に証明書をインポートする際にこのパスワードが必要になります。 すべてのウィザードステップに従い、すべての必要とされるフィールド(「Country」、 「State or Province Name」、 「Locality Name」、 「Organization Name」、 「Department Name」、「Common Name」、 および 「Email」 など)に記入します。

ff_as2_ex2-01

ウィザードが完了すると、コマンドは、以下の2つのファイルを Cygwin のホームディレクトリ内に生成します apollo_private.pemapollo_public.pem (例えば、  Cygwin を C:\cygwin64 にインストールしている場合 C:\cygwin64\home\<user>\ が作成されます)。このペアはに単一のファイルとして FlowForce Server にアップロードすることができ、公開証明書を秘密キーファイルにコピーするために次の追加コマンドを実行します:

 

cat apollo_public.pem >> apollo_private.pem

 

Apollo マシン上で、FlowForce Server にログオンし、構成 メニューをクリックし、 作成 > 証明書の作成 をクリックします。

 

証明書名と詳細を入力し、 参照をクリックして、前に作成された apollo_private.pem ファイルを選択します。 このステップで以前に作成されたパスワードを入力します。 「保存」をクリックします。

ff_as2_ex2-02

公開+秘密証明書ペアは Apollo の FlowForce Server にインポートされます。 アイコン ff_ic_certificate_pk と詳細テキストは、この証明書ファイルが以下を含んでいることに注意してください:

ff_as2_ex2-03

Hermes に公開キーを送信するには、apollo_public.pem ファイルを Hermes マシンにコピーします。次に、  Hermes マシン上で FlowForce Server  にログオンし、上と同じステップに従い、インポートします (今回は秘密キーはファイル内に存在しないため、パスワードが必要になります)。

ff_as2_ex2-04

アイコン ff_ic_certificate と詳細テキストは、この証明書ファイルには(秘密キーを持たない)公開証明書のみが含まれていることを示していることに注意してください。

ff_as2_ex2-05

 

Hermes の証明書のセットアップ

この構成ステップでは、 以下が行われます:

 

1.Hermes は公開証明書と秘密キーを生成し、 FlowForce Server にインポートします。
2.Hermes は(秘密キー使用せずに)公開証明書  を Apollo に送信します。
3.Apollo は Hermes の公開証明書を FlowForce Server にインポートします。

 

上記が必要な理由:

 

Apollo にメッセージを送信する前に、 Hermes は自身の秘密キーを使用して署名します。
Hermes からのメッセージを受信すると、 Apollo は Hermes の公開証明書を使用してメッセージの署名を検証します。

 

最初に、Apollo のためのステップと同じステップで Hermes の公開証明書と秘密キーを作成します。 ファイル名を置き換えてください:

 

openssl req -x509 -newkey rsa:2048 -keyout hermes_private.pem -out hermes_public.pem -days 365

 

更に、 「Organization name」、「Common Name」 などは Hermes の物である必要があります:

ff_as2_ex2-06

次に、コマンドを使用して両方のファイルを1つのファイルに結合します:

 

cat hermes_public.pem >> hermes_private.pem

 

次に、 Hermes マシン上で hermes_private.pem を FlowForce Server にインポートします:

ff_as2_ex2-07

次に、hermes_public.pem を Apollo マシンにコピーし、FlowForce Server にインポートします:

ff_as2_ex2-08

 

Hermes 上で AS2 暗号化、署名、および、 MDN 署名検証を有効化する方法

Hermes マシン上で、APOLLO パートナー設定を以下のとおり編集します:

ff_as2_ex2-09

 

Apollo 上で AS2 暗号化、署名、および、 MDN 署名検証を有効化する方法

Apollo マシン上で、 HERMES パートナー設定を以下のとおり編集します:

ff_as2_ex2-10

 

MDN の処理

上記の必要条件に従い、 Hermes は Apollo に AS2 伝送の MDN を認めるを送信するようにリクエストします。 as2-success 式関数。を使用して、受信される MDN (成功、失敗) の状態を計算することができます。これを達成するには、 Hermes マシン上で FlowForce にログオンし、サンプル: フル AS2 メッセージの交換 (シンプル) 内で作成された 「send-as2」 ジョブを開きます。次に、ジョブを下記のとおり変更します:

ff_as2_ex2-11

以下の点に注意してください:

 

「AS2 MDN」 最初の実行ステップの結果が宣言されました。最初の実行ステップの結果が宣言されました (次を参照してください: 「このステップの結果を割り当てる」)。
実行が次のステップを続行する必要があるため、「エラー時に中断」 チェックボックスはクリアされます。
2番目の実行ステップは、 /system/compute 関数を呼び出します。 この関数は、as2-success 関数を使用してブール式を計算します。後者は最初の実行ステップにより返された MDN を引数として取ります。

 

AS2 メッセージの送信

Hermes から Apollo に暗号化され、署名済みの AS2 メッセージを送信する準備ができました。Hermes マシン上で .edi ファイルを以前に構成された ディレクトリ /home/altova/as2/outgoing にコピーします。ディレクトリポーリング間隔が開始され (デフォルトでは、60 秒)、Apollo のマシン上でトリガーが実行され、ジョブは AS2 サービスにファイルを送信します。 Apollo のマシン上のディレクトリ C:\as2\incoming には Hermes により送信されたメッセージが含まれているはずです。例:

ff_as2_ex2-12

ジョブの実行の失敗、または、成功を確認するには、 システムのログをチェックします (Hermes のマシンだけではなく、 Apollo マシンのマシンでこの操作を行ってください)。 詳細に関しては、次を参照してください: ジョブのログの確認

 

ログには、この伝承に関連して発生した可能性のあるエラーに関する情報が含まれています。 例えば、 Hermes が暗号化されていないデータを送信し、 Apollo が暗号化されたデータを期待する場合、ジョブは失敗し、関連するメッセージがログされます。


(C) 2019 Altova GmbH