Workflow Java MailerのSSL構成を実装する手順ガイド
ワークフローの通信を保護するために、Oracle®アプリケーションサーバーでSSL(Secure Sockets Layer)を使用するよう構成することができます。
はじめに
本記事では、SSLを有効化したSMTP/IMAPサーバーにWorkflow Java Mailerを接続させるテストケースを構築するためのコマンドとツールの使用例を紹介します。
Workflow Java Mailerを構成するには、以下の詳細な手順を実行してください。
ステップ1:ポートを開放する
ネットワークチームと連携し、Concurrent Managerティアから以下のポートを開放します:SMTP/SSLポート:465およびIMAP/SSLポート:993。
Protocol: SMTP/SSL Port: 465
Protocol: IMAP/SSL Port: 993
PROD [<user>@servername ~]$ telnet <SMTP Server Name> 465
Trying XXXXXX...
Connected to SMTP Server Name.
Escape character is '^]'
PROD [<user>@servername ~]$ telnet <IMAP Server Name> 993
Trying XXXXXX...
Connected to IMAP Server Name.
Escape character is '^]'
ステップ2:メールサーバーから証明書をエクスポートする
DBA兼ブロガーのGoraknath Rathod氏は、2018年の記事でこのステップについて次のように説明しています。
「セキュアな通信チャネルを確立するには、メールサーバーの証明書(認証局によって発行されたもの)をConcurrent Managerティアにインポートする必要があります。」
「信頼できる認証局(例:Verisign)が発行したメールサーバーの証明書は、システム管理者から入手するか、以下の手順を実行してダウンロードできます。」
Rathod氏が説明している手順は以下の通りです。
A. メインのWebページ https://host.domain:port にアクセスします。
B. ページ下部の鍵アイコン(パドロック)をダブルクリックして証明書を表示します。鍵アイコンがない場合は、上部ツールバーで[ファイル]→[プロパティ]→[証明書]を選択します。
C. [証明のパス]タブを選択し、以下を行います。
a. 先頭行をクリックして[証明書の表示]を選択します。これがルート認証局(CA)の証明書です。
b. [詳細]タブで[ファイルにコピー]をクリックします。エクスポートウィザードが起動します。
c. [次へ]をクリックして続行します。
d. [Base-64 encoded X.509 (.CER)]を選択し、[次へ]をクリックします。
e. 名前にca1を入力し、[OK]をクリックして証明書をエクスポートします。
f. [証明のパス]タブの各行に対して上記の手順を繰り返します。ファイル名は毎回1ずつ増やします(ca2、ca3など)。
ステップ3:キーストアを作成する
Rathod氏は続けて次のように説明しています。「Concurrent Managerティア上にキーストアを作成し、証明書をキーストアにインポートします。」
以下はRathod氏が説明した手順に、サンプルコードを加えたものです。
A. 証明書を格納するキーストアをデフォルトの場所(例:/home/applmgr)に作成します。
B. FTPツールを使用して証明書をConcurrent Managerティアにアップロードします。
[<user>@servername ~]$ ls -lrt ca1.cer ca2.cer ca3.cer ca4.cer
-rw-rw-r-- 1 applmgr applmgr 1472 Jul 17 00:40 ca1.cer
-rw-rw-r-- 1 applmgr applmgr 1646 Jul 17 00:41 ca2.cer
-rw-rw-r-- 1 applmgr applmgr 1756 Jul 17 00:41 ca3.cer
-rw-rw-r-- 1 applmgr applmgr 2800 Jul 17 00:41 ca4.cer
[<user>@servername ~]$ pwd
/home/applmgr
[<user>@servername ~]$ keytool -genkey -alias -keystore -storetype JKS
Enter keystore password:
Re-enter new password:
What is your first and last name?
What is the name of your organizational unit?
What is the name of your organization?
What is the name of your city or locality?
What is the name of your state or province?
What is the two-letter country code for this unit?
Is CN=XXX, OU=XXX, O=XXX, L=XXX, ST=XXX, C=XXX correct?
[no]: yes
Enter key password for <-keystore>
(RETURN if same as keystore password):
Re-enter new password: changeit
C. 作成したキーストアに証明書をインポートします。
[<user>@servername ~]$ ls -la .keystore
-rw-rw-r-- 1 applmgr applmgr 1332 Jul 17 01:04 .keystore
keytool -import -alias my_cert1 -file ca1.cer -keystore .keystore -storepass <keystore password>
keytool -import -alias my_cert2 -file ca2.cer -keystore .keystore -storepass <keystore password>
keytool -import -alias my_cert3 -file ca3.cer -keystore .keystore -storepass <keystore password>
keytool -import -alias my_cert4 -file ca4.cer -keystore .keystore -storepass <keystore password>
D. 証明書を検証します。
[<user>@servername~]$ keytool -list -keystore .keystore
Enter keystore password:
Keystore type: JKS
Keystore provider: SUN
Your keystore contains 5 entries
my_cert4, Jul 17, 2020, trustedCertEntry,
Certificate fingerprint (SHA1): 1E:5D:EA:8C:79:E1:89:85:1B:31:62:16:1F:D9:27:6A:56:FD:AB:37
my_cert3, Jul 17, 2020, trustedCertEntry,
Certificate fingerprint (SHA1): 27:AC:93:69:FA:F2:52:07:BB:26:27:CE:FA:CC:BE:4E:F9:C3:19:B8
my_cert2, Jul 17, 2020, trustedCertEntry,
Certificate fingerprint (SHA1): 34:0B:28:80:F4:46:FC:C0:4E:59:ED:33:F5:2B:3D:08:D6:24:29:64
my_cert1, Jul 17, 2020, trustedCertEntry,
Certificate fingerprint (SHA1): 27:96:BA:E6:3F:18:01:E2:77:26:1B:A0:D7:77:70:02:8F:20:EE:E4
-keystore, Jul 17, 2020, PrivateKeyEntry,
Certificate fingerprint (SHA1): E0:DA:C8:95:4F:FB:A2:82:40:9E:6A:02:A0:82:0F:35:5E:B1:FE:08
E. MAILER_SSL_TRUSTSTORE を設定します(例:/home/applmgr/.keystore)。
SQL*Plusからの実行例:
[<user>@servername~]$ sqlplus apps/XXXXX @$FND_TOP/sql/afsvcpup.sql
10006 Workflow Notification Mailer DEACTIVATED_SYST WF_MAILER
GSM
Enter Component Id: 10006
10243 SSL Trust store NONE NONE N
N
Enter the Comp Param Id to update: 10243
You have selected parameter: SSL Trust store
Current value of parameter: NONE
Enter a value for the parameter: /home/applmgr/.keystore
ステップ4:MailerをIMAPSSL/SMTPSSLで動作するように構成する
以下はRathod氏が説明している手順です。
ナビゲーション:OAM > システム管理者 > Workflow Manager > Notification Mailerリンクにログオンします。
A. 送信(outbound)サーバー名を入力し、「Outbound SSL Enable」チェックボックスを有効化します。
B. 受信(inbound)サーバー名、ユーザー名、パスワード、返信先アドレスを入力し、「Inbound SSL Enable」チェックボックスを有効化します。
ステップ5:R12インスタンスのデバッグ手順
以下はRathod氏が説明している手順です。
A. SMTPの場合:
$AFJVAPRG -classpath $AF_CLASSPATH -Dprotocol=smtp \
-Ddbcfile=$FND_SECURE/TEST.dbc \
-Dport=465 -Dssl=Y \
-Dtruststore=/home/applmgr/.keystore \
-Dserver=email.yourdomain.com \
-Daccount=youremail@yourdomain.com -Dpassword=xxxxx \
-Dconnect_timeout=120 -Ddebug=Y \
-DdebugMailSession=Y oracle.apps.fnd.wf.mailer.Mailer
B. IMAPの場合:
$AFJVAPRG -classpath $AF_CLASSPATH -Dprotocol=imap \
-Ddbcfile=$FND_SECURE/TEST.dbc \
-Dport=993 -Dssl=Y \
-Dtruststore=/home/applmgr/.keystore \
-Dserver=email.yourdomain.com \
-Daccount=youremail@yourdomain.com -Dpassword=xxxxx\
-Dconnect_timeout=120 -Ddebug=Y \
-DdebugMailSession=Y oracle.apps.fnd.wf.mailer.Mailer
ステップ6:Mailerを認証する
R12.1.3では、Oracle Workflow Notification MailerがSMTP認証をサポートしており、SMTP認証用に構成されたエンタープライズSMTPサーバーでNotification Mailerを使用できるようになっています。
2014年のOracle R12.1.3機能に関するプレゼンテーションによると、次のように説明されています。
「SMTP認証では、送信者がメールサーバーに対して自身を識別することで認証を行う必要があります。認証が成功すると、メールサーバーは送信者のメール送信を許可します。SMTP認証を利用することで、正規のユーザーにはメールの中継(relay)を許可しながら、スパム送信者などの不正なユーザーには中継サービスを拒否することが可能になります。
「Oracle Workflowは現在、PLAIN、LOGIN、DIGEST-MD5の各認証メカニズムをサポートしています。」
ステップ7:サービスを再起動する
構成を完了させるには、必要に応じてすべてのサービスを停止・起動します。
まとめ
SSLは、メッセージの暗号化、完全性の保証、認証を提供することで通信を保護します。上述の手順に従って実装すれば、ワークフローの通信を簡単に保護することができます。
データサービスの詳細については、ぜひお問い合わせください。
ご意見やご質問がある場合は、フィードバックタブをご利用ください。私たちとの対話も歓迎します。
-
JavaのJToggleButton実装ガイド:ON/OFF切替ボタンの作り方を解説
JToggleButtonとは JToggleButtonはAbstractButtonを拡張したクラスで、クリックするたびにONとOFFが切り替わるトグルボタンを実現するために使用されます。通常のボタンと異なり、押した状態を保持できるのが特徴です。 JToggleButtonの主な特徴 最初に押されたときは押し込まれた状態のままとなり、もう一度押してはじめて元の状態(押されていない状態)に戻ります。 ボタンが押されるたびにActionEventが発生します。 さらに、JToggleButtonはItemEventも発生させることができます。このイベントは、選択状態という概念を持つコンポー
-
DBA必見!Oracle Workflow Notification Mailer(ワークフロー通知メーラー)の問題対処とメンテナンス術
本記事では、データベース管理者(DBA)が日々の業務で直面するOracle® Workflow Notification Mailer(ワークフロー通知メーラー)の一般的な問題とその解決策を紹介します。 はじめに 問題管理とは、課題の記録・追跡・解決までの一連のプロセスを指します。Workflow Notification Mailerは構成要素が非常に多いため、関連するトラブルへの対応に苦労することも少なくありません。そこで本記事では、代表的な問題とその修正方法をわかりやすく解説します。さらに、Workflow Notification Mailerの運用管理を効率化するための実用的なスクリ