トランスポート層セキュリティ(TLS)とは?Oracle E-Business Suite R12での有効化手順を徹底解説
本記事では、トランスポート層セキュリティ(TLS)について解説し、セキュアソケットレイヤー(SSL)との違いを説明します。さらに、Oracle® E-Business Suite®(EBS)R12でTLSを有効化するための具体的なステップバイステップの手順もご紹介します。
TLSとは?
TLSはSSLの後継となるセキュリティプロトコルで、クライアントとサーバー間の安全な通信を実現します。TLSは共通鍵暗号方式(対称鍵暗号アルゴリズム)を使用してデータを暗号化するため、SSLと比較して、より安全かつ安定したデータ転送が可能になります。
EBSでTLSを使用する理由
ご存じのとおり、EBSはインバウンド、アウトバウンド、ループバック接続を使用し、EBSユーザーとビジネス上重要な情報をやり取りします。そのため、データの盗難、改ざん、メッセージの偽造といったリスクにさらされる機会が増えます。しかし、EBSでTLSを有効化することで、こうした問題をすべて回避できます。
次の図は、EBSにおける接続フローを示したものです。
画像出典:Enabling TLS in Oracle E-Business Suite Release 12.1(Doc ID 376700.1)
EBSでTLSを実装する手順
EBSでTLSを有効にするには、以下のタスクを実行します。
- Java Development Kit(JDK®)とWeb Homeのアップグレード
- 必須パッチの適用
- OpenSSL®の構成
- .csrファイルの生成
- 認証局(CA)による.csrファイルの証明書取得
- 証明書のダウンロードとEBSへのインポート
- 構成ファイルの変更
- AutoConfigの実行
- URLの検証
1. JDKとWeb Homeのアップグレード
JDK 7以降にアップグレードし、Web Homeをバージョン10.1.3.5にアップグレードします。
2. 必須パッチの適用
以下のパッチ(または最新リリースのパッチ)をインストールします。
- Oracle Opatch(6880880)
- Oracle Critical Patch Updates(CPU)
- Oracle HTTP Server(OHS)(27078378)
- Oracle Process Manager and Notification Server(OPMN)(27208670)
- EBS(22724663、22922530、22974534)
3. OpenSSLの構成
以下のコマンドを実行して、OpenSSL構成ファイルを作成します。
cd $INST_TOP/certs/Apache
mkdir WildcardCert
cd $INST_TOP/certs/Apache/WildcardCert
OpenSSLのレスポンスファイルとして使用する、次のnew.cnfファイルを作成します。
cat new.cnf
[req]
prompt = no
default_md = sha256
distinguished_name = dn
req_extensions = ext
[dn]
CN = *. corp.aspentech.com
O = Aspen Technology Inc
OU = IT
L = Bedford
ST = Masachett
C = US
[ext]
subjectAltName = DNS:*. corp.aspentech.com
4. .csrファイルの生成
以下の手順で.csrファイルを生成します。
-
以下のコマンドを実行して、.csrファイルを生成します。
$ openssl req -newkey rsa:2048 -nodes -keyout server.key -sha256 -out new.csr -config new.cnf Generating a 2048 bit RSA private key ......................................+++ ........................................................................................+++ writing new private key to 'server.key' -
https://www.sslshopper.com/csr-decoder.htmlで.csrの内容を検証します。
-
情報に誤りがなければ、.csrを認証局(CA)に送信します。
5. CAから証明書を取得する
CAから、サーバー証明書と証明書チェーンファイルが送付されます。
6. 証明書ファイルのダウンロードとインポート
CAからサーバー証明書と証明書チェーンファイルを受け取ったら、以下の手順を実行します。
ファイルのダウンロード
アーカイブファイルをデスクトップにダウンロードし、新しいフォルダーに展開してウォレットを作成します。次の画像のように、2つのファイルが表示されるはずです。
a2eで始まるファイルがメインファイル、gdで始まるファイルが中間ファイルです。
メインファイルを開き、ルート(メイン)証明書を.crtファイルとして保存します。同様に、中間ファイルも開いて.crtファイルとして保存します。その後、すべてのファイルをサーバーにアップロードします。
Apacheディレクトリの作成
以下のコマンドを実行して、Apache®ディレクトリを作成します。すでにApacheディレクトリが存在する場合は、必ず古いディレクトリのバックアップを取ってから作業してください。
cd $INST_TOP/certs/
mkdir Apache
ウォレットディレクトリの作成
以下のコマンドを実行して、アプリケーションノード上に空のウォレットディレクトリを作成します。
orapki wallet create -wallet /u01/app/TATII1/inst/apps/TATII1_nchlatiebsa01/certs/Apache -pwd WalletPasswd123 -auto_login
このコマンドにより、ウォレットフォルダー(/u01/app/TATII1/inst/apps/TATII1_nchlatiebsa01/certs/Apache)内にewallet.p12とcwallet.ssoのファイルが作成されます。
証明書のコピー
root、server、intermediateの順序で証明書をインポートするには、以下のコマンドを実行します。
orapki wallet add -wallet /u01/app/TATII1/inst/apps/TATII1_nchlatiebsa01/certs/Apache -trusted_cert -cert "/home/appti1/ITK1054693/root.crt" -pwd WalletPasswd123
orapki wallet add -wallet /u01/app/TATII1/inst/apps/TATII1_nchlatiebsa01/certs/Apache -trusted_cert -cert "/home/appti1/ITK1054693/server.crt" -pwd WalletPasswd123
orapki wallet add -wallet /u01/app/TATII1/inst/apps/TATII1_nchlatiebsa01/certs/Apache -trusted_cert -cert "/home/appti1/ITK1054693/intermediate.crt " -pwd WalletPasswd123
b64InternetCertificate.txtの作成
ca.crtの内容をb64InternetCertificate.txtに追加するには、以下の手順を実行します。
-
バージョン10.1.2のORACLE_HOME/sysman/config/に移動します。
-
以下のコマンドを実行します。
Cat root.crt >> b64InternetCertificate.txt
ウォレットをOPMNへコピー
ウォレットをOPMNにコピーするには、以下の手順を実行します。
- $INST_TOP/certs/opmnディレクトリに移動します。
- BAKという名前の新しいディレクトリを作成します。
- $INST_TOP/certs/ApacheからBAKへ、ewallet.p12とcwallet.ssoを移動します。
- BAKから$INST_TOP/certs/opmnへ、ewallet.p12とcwallet.ssoをコピーします。
結果は、以下の例のようになります。
[appti1@nchlatiebsa01 opmn]$ pwd
/u01/app/TATII1/inst/apps/TATII1_nchlatiebsa01/certs/opmn
[appti1@nchlatiebsa01 opmn]$ ls -ltr
drwxrwxr-x 2 appti1 appti1 4096 Nov 17 05:34 BAK
-rw------- 1 appti1 appti1 3993 Nov 20 00:05 cwallet.sso
-rw------- 1 appti1 appti1 3965 Nov 20 00:05 ewallet.p12
[appti1@nchlatiebsa01 opmn]$
cacertsファイルの更新
JDKのcacertsファイルを更新するには、以下の手順を実行します。
-
$OA_JRE_TOP/lib/securityに移動します。
-
既存のcacertsファイルをバックアップします。
-
root.crtとserver.crtをこのディレクトリにコピーし、以下のコマンドを実行してcacertsに書き込み権限があることを確認します。
$ chmod u+w cacerts -
以下のコマンドを実行して、Apacheのca.crtとserver.crtをcacertsに追加します。
$ keytool -import -alias ApacheRootCA -file root.crt -trustcacerts -v -keystore cacerts $ keytool -import -alias ApacheServer -file server.crt -trustcacerts -v -keystore cacerts -
プロンプトが表示されたら、キーストアのパスワードを入力します。デフォルトのパスワードは
changeitです。
パラメータの更新
XMLファイルに対して、以下のTLS関連のパラメータ変更を行います。
エンドツーエンドTLSを使用している場合は、以下の変更も行います。
7. 構成変更
各ファイルに対して、以下の変更を行います。(カスタムフォルダーにファイルが存在しない場合は、カスタムフォルダーを作成してファイルをコピーしてください。)
<FND_TOP>/admin/template/custom/opmn_xml_1013.tmp の場合:
テンプレート内の次の行を:
<ssl enabled="true" wallet-file="%s_web_ssl_directory%/opmn"/>
以下の行に置き換えます。
<ssl enabled="true" openssl-certfile="%s_web_ssl_directory%/Apache/opmn.crt" openssl-keyfile="%s_web_ssl_directory%/Apache/server.key" openssl-password="dummy" openssl-lib="%s_weboh_oh%/lib" ssl-versions="TLSv1.0,TLSv1.1,TLSv1.2" ssl-ciphers="AES128-SHA,AES256-SHA"/>
<FND_TOP>/admin/template/custom/httpd_conf_1013.tmp の場合:
以下のセクションを:
<IfDefine SSL>
LoadModule ossl_module libexec/mod_ossl.so
</IfDefine>
次のように変更します。
<IfDefine SSL>
#LoadModule ossl_module libexec/mod_ossl.so
LoadModule ssl_module libexec/mod_ssl.so
</IfDefine>
<FND_TOP>/admin/template/custom/ssl_conf_1013.tmp の場合:
テンプレート内の次の行をコメントアウトします。
#SSLWallet file:%s_web_ssl_directory%/Apache
テンプレートに以下の行を追加します。
SSLCertificateFile %s_web_ssl_directory%/Apache/server.crt
SSLCertificateKeyFile %s_web_ssl_directory%/Apache/server.key
SSLCertificateChainFile %s_web_ssl_directory%/Apache/intermediate.crt
次の行を:
SSLCipherSuite HIGH:MEDIUM:!aNULL:+SHA1:+MD5:+HIGH:+MEDIUM
以下の行に置き換えます。
SSLCipherSuite HIGH:MEDIUM:!aNULL:!RC4:!3DES:!SEED:!IDEA:!CAMELLIA:+HIGH:+MEDIUM
また、次の行を:
SSLProtocol -all +TLSv1 +SSLv3
以下の行に置き換えます。
SSLProtocol all -SSLv2 -SSLv3
以下のファイルの場合:
- <FND_TOP>/admin/template/custom/oc4j_properties_1013.tmp
- <FND_TOP>/admin/template/custom/oafm_oc4j_properties_1013.tmp
- <FND_TOP>/admin/template/custom/forms_oc4j_properties_1013.tmp
カスタムディレクトリやカスタマイズ済みテンプレートファイルがまだ存在しない場合は、元のファイルを<FND_TOP>/admin/templateから<FND_TOP>/admin/template/customにコピーします。
これらのカスタムファイルに、以下の行を追加して更新します。
https.protocols=TLSv1,TLSv1.1,TLSv1.2
8. AutoConfigの実行
アプリケーション層の$ADMIN_SCRIPTS_HOMEディレクトリでadautocfg.shを実行します。
9. 最終検証の実施
URLを検証します。以下の例のような形式になっているはずです。
SQL> select home_url from icx_parameters;
HOME_URL
--------------------------------------------------------------------------------
https://ebstest1.corp.aspentech.com:4443/OA_HTML/AppsLogin
まとめ
EBSを使用して重要なデータを送受信する予定がある場合は、サーバーとクライアント間のインターネットベースの通信を安全に行うために、必ずEBSでTLSを有効化してください。これにより、通信中にデータが改ざんされたりハッキングされたりするリスクを防ぐことができます。
コメントやご質問がある場合は、フィードバックタブをご利用ください。
データベースサービスの詳細については、こちらをご覧ください。
私たちはOracle製品のエキスパートです。Rackspaceとともに、Oracleへの投資を最大限に活用しましょう。
-
Windows 10で「ファイルを開く – セキュリティ警告」を無効にする完全ガイド
Windowsでローカルドライブやネットワークフォルダから exe、msi、bat、cmd などの実行可能ファイルを実行しようとすると、「ファイルを開く – セキュリティ警告(Open File — Security Warning)」というダイアログが表示されることがあります。プログラムを実行するには、ユーザーが「実行」ボタンをクリックして手動で起動を確認する必要があります。このセキュリティ警告は、インターネットからダウンロードしたアプリケーションファイルや、ネットワーク共有フォルダ・マップドネットワークドライブ上にある実行ファイルを実行した際によく表示されます。 実行ファイルやスクリプト起
-
セキュリティ暗号化におけるハッシュの役割と主な活用方法
ハッシュとは何かハッシュとは、基本的に一方向の暗号学的関数です。ハッシュは不可逆であるため、ハッシュ値の出力から元のファイルの中身を復元することはできません。しかし、その特性を利用すれば、ファイルの内容を知らなくても、2つのファイルが同一であるかどうかを判定することが可能になります。情報セキュリティやインターネット認証の分野では、ハッシュの活用はごく一般的な手法です。例えば、データベースにパスワードを安全に保存するために使われるほか、ファイルやドキュメントといった他のデータ要素のセキュリティ確保にも役立てられています。ハッシュが提供するセキュリティ機能ハッシュアルゴリズムは、ファイルの内容に対