OpenAS2導入・設定ガイド

OpenAS2 導入・設定ガイド

はじめに

本書は、OpenAS2サーバーの導入から運用までを網羅した技術ガイドです。OpenAS2は、企業間の安全なEDI(電子データ交換)ドキュメント伝送を実現するオープンソースのAS2(Applicability Statement 2)サーバー実装です。

AS2プロトコルはHTTP/HTTPSを基盤とし、データ暗号化、デジタル署名、メッセージ確認機能を提供します。ここでは、バージョン3.11.0に基づいた設定手順を詳述します。

主な機能

  • HTTP/HTTPSプロトコル対応
  • データ暗号化とデジタル署名
  • MDN(Message Disposition Notification)確認
  • ディレクトリポーリングによる自動送信
  • 柔軟なパートナー設定
  • 詳細なログ記録と監視機能

システム要件

ハードウェア要件

  • CPU: デュアルコア2GHz以上
  • メモリ: 最小2GB、推奨4GB以上
  • ディスク容量: 最小1GBの空き領域

ソフトウェア要件

  • Javaランタイム環境 (JRE) 11以降
  • Windows/Linux/Unix OS
  • ネットワーク接続(パートナーとの通信に必要)

インストール手順

1. 基本インストール

  1. インストールパックの展開
OpenAS2Server-3.11.0.zipを目的ディレクトリに展開
例: C:\OpenAS2Server-3.11.0

  1. ディレクトリ構成の説明
OpenAS2Server-3.11.0/
├── bin/           # 実行可能ファイルとスクリプト
├── config/        # 設定ファイル
├── data/          # データディレクトリ(受信・送信ファイル)
├── lib/           # 依存ライブラリ
├── logs/          # ログファイル
└── resources/     # リソースファイル

2. サービスの起動

Windowsシステム:

cd bin
start-openas2.bat

Linux/Unixシステム:

cd bin
./start-openas2.sh

3. インストールの確認

  • ログファイル logs/log-YYYYMMDD.txt を確認
  • サービスが正常起動し、エラーがないことを確認
  • デフォルトHTTPポート: 10080
  • デフォルトHTTPSポート: 10443

設定ファイルの詳細

1. config.xml - メイン設定ファイル

主な設定項目の説明:

証明書設定

<certificates>
    <certificate classname="org.openas2.cert.PKCS12CertificateFactory"
                 filename="%home%/mycompany.p12" 
                 password="securePass123" 
                 interval="300000"/>
</certificates>

HTTP/HTTPS受信モジュール

<module classname="org.openas2.processor.receiver.AS2ReceiverModule" 
        port="10080" 
        errordir="%home%/data/inbox/error" 
        errorformat="sender.as2_id, header.message-id, $date.yyyy-MM-dd-HH-mm-ss$"/>

ディレクトリポーリングモジュール

<module classname="org.openas2.processor.sender.AS2DirectoryPollingModule" 
        outboxdir="%home%/data/toPartnerCorp" 
        errordir="%home%/data/toPartnerCorp/error" 
        sentdir="%home%/data/mycompany-PartnerCorp/sent" 
        interval="10000">
    <defaults>
        <attribute name="sender.as2_id" value="mycompany"/>
        <attribute name="receiver.as2_id" value="PartnerCorp"/>
    </defaults>
</module>

2. partnerships.xml - パートナー設定

パートナー定義

<partner name="PartnerCorp" 
         as2_id="PartnerCorp" 
         x509_alias="PartnerCorp" 
         email="partner@partnercorp.com"/>

パートナーシップ設定

<partnership name="mycompany-to-PartnerCorp">
    <sender name="mycompany"/>
    <receiver name="PartnerCorp"/>
    <attribute name="protocol.as2" value=""/>
    <attribute name="content_transfer_encoding" value="binary"/>
    <attribute name="subject" value="AS2 Message from mycompany to PartnerCorp"/>
    <attribute name="as2_url" value="https://partner.example.com:10443/as2"/>
    <attribute name="as2_mdn_to" value="https://myserver.example.com:10443/as2"/>
    <attribute name="encrypt" value="aes256"/>
    <attribute name="sign" value="sha256"/>
    <attribute name="as2_mdn_options" value="signed-receipt-protocol=optional,pkcs7-signature; signed-receipt-micalg=optional,sha256"/>
</partnership>

3. messages.xml - メッセージ形式設定

メッセージの形式と保存ルールを定義:

<messages>
    <format classname="org.openas2.message.AS2Message" 
            messageid="$rand.0987654321abcdefghijklmnopqrstuvwxyz$-$date.ddMMyyyyHHmmssZ$@$msg.sender.as2_id$_$msg.receiver.as2_id$"/>
</messages>

パートナー管理

1. 新規パートナーの追加

ステップ1: partnerships.xmlにパートナーを追加

<partner name="NewPartner" 
         as2_id="NewPartner" 
         x509_alias="NewPartner" 
         email="newpartner@newpartner.com"/>

ステップ2: パートナーシップを設定

<partnership name="mycompany-to-NewPartner">
    <sender name="mycompany"/>
    <receiver name="NewPartner"/>
    <!-- その他設定属性 -->
</partnership>

ステップ3: ディレクトリ構造の作成

data/
├── outbox/NewPartner/          # 送信ファイルディレクトリ
├── mycompany-NewPartner/
│   ├── sent/                   # 送信済みファイルアーカイブ
│   └── mdn/                    # MDNレシート保存
└── inbox/NewPartner/           # 受信ファイルディレクトリ

2. 証明書の設定

パートナーの公開鍵証明書のインポート:

cd bin
./import_public_cert.sh NewPartner /path/to/newpartner_public.cer

自社の鍵ペアの生成:

cd bin
./gen_p12_key_par.sh mycompany securePassword

ファイル転送

1. ファイルの送信

方法1: outboxディレクトリの使用(推奨)

  1. 送信するファイルを data/outbox/PartnerName/ ディレクトリに配置
  2. システムが自動的にファイルを検出して送信
  3. 送信成功後、ファイルは対応するsentディレクトリに移動

方法2: 専用ポーリングディレクトリの使用

  1. ファイルを設定されたポーリングディレクトリ(例: data/toPartnerCorp/)に配置
  2. システムが設定された間隔でファイルを検出して送信
  3. 成功時はsentディレクトリに移動、失敗時はerrorディレクトリに移動

2. ファイルの受信

  1. 自動受信: パートナーから送信されたファイルは自動的に data/inbox/PartnerName/ ディレクトリに保存
  2. MDN確認: システムが自動的にMDNレシートを送信してファイル受信を確認
  3. エラー処理: 受信に失敗したファイルは data/inbox/error/ ディレクトリに保存

3. ファイル処理フロー

送信フロー:
ファイルをoutboxに配置 → システム検出 → 暗号化・署名 → HTTP/HTTPS送信 → MDN受信 → sentディレクトリに移動

受信フロー:
HTTPリクエスト受信 → 署名検証 → 復号 → inboxに保存 → MDN確認送信

証明書管理

1. 証明書の種類

  • 秘密鍵証明書: 署名と復号に使用(.p12形式)
  • 公開鍵証明書: 検証と暗号化に使用(.cer形式)
  • SSL証明書: HTTPS通信に使用(.jks形式)

2. 証明書操作

証明書情報の確認

keytool -list -keystore config/as2_certs.p12 -storetype PKCS12

パートナー証明書のインポート

cd bin
./import_public_cert.sh PartnerAlias /path/to/partner_cert.cer

公開鍵証明書のエクスポート

keytool -export -alias mycompany -keystore config/as2_certs.p12 -storetype PKCS12 -file mycompany_public.cer

3. 証明書設定の確認

partnerships.xmlのx509_aliasが証明書ストアのエイリアスと一致していることを確認:

<partner name="PartnerCorp" x509_alias="PartnerCorp"/>

監視とログ

1. ログファイル

  • メインログ: logs/log-YYYYMMDD.txt
  • エラーログ: メインログに含まれる、ERRORレベルのメッセージ
  • デバッグログ: 設定により詳細なデバッグ情報を有効化可能

2. 主要なログ情報

送信成功

INFO [AS2SenderModule] Message sent successfully to PartnerCorp
INFO [MDNSenderModule] MDN received from PartnerCorp

送信失敗

ERROR [AS2SenderModule] Failed to send message to PartnerCorp: Connection timeout
ERROR [AS2DirectoryPollingModule] File moved to error directory

受信成功

INFO [AS2ReceiverModule] Message received from NewPartner
INFO [AS2ReceiverModule] File saved to inbox/NewPartner/

3. 監視のポイント

  • errorディレクトリの失敗ファイルを確認
  • ログのERRORとWARNメッセージを監視
  • MDNレシートの受信状況を確認
  • 証明書の有効期限を確認

トラブルシューティング

1. 一般的な問題

接続タイムアウト

症状: Connection timeoutエラー 解決策:

  • ネットワーク接続を確認
  • パートナーURLが正しいか確認
  • ファイアウォール設定を確認

証明書エラー

症状: Certificate validation failed 解決策:

  • 証明書が期限切れでないか確認
  • 証明書エイリアス設定を確認
  • 証明書形式が正しいか確認

ファイルが送信されない

症状: ファイルをoutboxに配置しても処理されない 解決策:

  • ディレクトリポーリング設定を確認
  • パートナーシップ設定を確認
  • ログのエラーメッセージを確認

2. デバッグ手順

  1. 詳細ログの有効化
<logger name="org.openas2" level="DEBUG"/>

  1. 設定ファイル構文の確認
  • XML形式の正確性を検証
  • 必須属性が完全か確認
  1. ネットワーク接続のテスト
telnet partner-server.com 10443

  1. 証明書の検証
openssl x509 -in certificate.cer -text -noout

3. パフォーマンス最適化

  • ポーリング間隔(intervalパラメータ)を調整
  • JVMメモリ設定を最適化
  • 非同期処理モードを使用
  • 定期的にログと一時ファイルをクリーンアップ

ベストプラクティス

1. セキュリティ設定

  • 証明書を保護するための強力なパスワードを使用
  • 定期的に証明書を更新
  • HTTPS転送を有効化
  • ネットワークアクセス権を制限

2. 運用管理

  • 定期的に設定ファイルと証明書をバックアップ
  • ディスク使用量を監視
  • ログローテーションポリシーを設定
  • フォールトリカバリプロセスを確立

3. パフォーマンスチューニング

  • 業務量に応じてポーリング間隔を調整
  • JVMパラメータ設定を最適化
  • SSDストレージを使用してI/O性能を向上
  • スレッドプールサイズを適切に設定

4. テストの推奨事項

  • 本番環境での十分なテスト
  • 小さなファイルで接続性をテスト
  • 各種エラーシナリオの処理を検証
  • 証明書期限切れなどの異常状況をテスト

付録

A. 設定パラメータ参照

パラメータ名 説明 デフォルト値
port HTTPリスニングポート 10080 8080
ssl_port HTTPSリスニングポート 10443 8443
interval ポーリング間隔(ミリ秒) 5000 10000
encrypt 暗号化アルゴリズム 3des aes256
sign 署名アルゴリズム sha1 sha256

B. エラーコード説明

エラーコード 説明 解決策
AS2-001 証明書検証失敗 証明書設定を確認
AS2-002 ネットワーク接続タイムアウト ネットワーク設定を確認
AS2-003 ファイル形式エラー ファイルの整合性を検証

C. サポートされる暗号化アルゴリズム

  • 対称暗号化: 3DES, AES128, AES192, AES256
  • 非対称暗号化: RSA
  • ハッシュアルゴリズム: SHA1, SHA256, SHA512
  • 署名アルゴリズム: RSA-SHA1, RSA-SHA256

バージョン: OpenAS2 Server 3.11.0 更新日: 2025年 ドキュメントバージョン: 1.0

タグ: OpenAS2 AS2プロトコル EDI 証明書管理 セキュア通信

8月2日 05:18 投稿