B 通信の保護
通信を保護するには、次のタスクを実行する必要があります。
B.1 OAMサーバーとWebゲート間に安全な通信を設定するための前提条件
OAMサーバーとWebゲート間の安全な通信の設定を続行する前に、システム・レベル要件が満たされていることを確認します。
-
OAMサーバー・モードがCERTモードの場合、エージェントはCERTモードを使用する必要があります。
-
エージェントの登録中に、少なくとも1つのOAMサーバー・インスタンスがエージェントと同じモードで実行していることが必要です。エージェント登録の後に、OAMサーバーのモードは変更できます。
関連項目:
-
SSL自動化ツールと、WebLogic Server、Oracle HTTP ServerおよびOracle Fusion Middleware用ポートの管理の詳細は、次を参照してください。
『Oracle Fusion Middlewareの管理』を参照してください。
B.2 OAMサーバーとWebゲート間の通信の保護
OAMサーバーとクライアント(Webゲート)間の通信を保護するということは、コンポーネント登録ページ内のNAP (OAPとも呼びます)チャネルに対してトランスポート・セキュリティ・モードを定義することを意味します。
チャネルのセキュリティ・レベルは、次のいずれかに指定されます。
-
オープン: 暗号化されていない通信
オープン・モードでは、WebGateとOAMサーバー間で認証または暗号化は行われません。WebGateはOAMサーバーのアイデンティティの証明を要求せず、OAMサーバーはすべてのWebGateからの接続を受け入れます。オープン・モードは、通信のセキュリティがデプロイメントで問題にならない場合に使用します。
-
簡易: Oracleにより発行された公開キー証明書を使用したSecure Sockets Layer (SSL)プロトコルによる暗号化された通信。
簡易モードは、プレーン・テキストでパスワードを送信したくないといったセキュリティ上の懸念があるものの、独自の認証局(CA)を管理しない場合に使用します。この場合、OAMサーバーおよびWebゲートはOracle CAにより発行および署名された同じ証明書を使用します。
「簡易モード、暗号化およびキーについて」を参照してください。
-
証明書: 信頼されているサード・パーティ認証局(CA)により発行された公開キーを使用したSSLによる暗号化された通信。
証明書モードは、OAMサーバーとWebゲートで異なる証明書を使用し、信頼できるサード・パーティCAにアクセスできる場合に使用します。このモードでは、DESアルゴリズムを使用して秘密キーを暗号化する必要があります。Access ManagerコンポーネントはPEM形式でのX.509デジタル証明書のみを使用します。PEMとはプライバシ強化メールのことであり、パスフレーズが必要です。PEM(プライバシ強化メール)形式は秘密キー、デジタル証明書、および信頼されている認証局(CA)に適しています。推奨するキーストアのフォーマットはJKS (Javaキーストア)フォーマットです。
「証明書モードの暗号化およびファイルについて」を参照してください。
関連項目:
論理的に、リクエストはAccess Manager資格証明コレクタに送信されます。ただし、Webサーバー・プロキシがWebLogic AdminServerの前にある場合、<LocationMatch "/*">によって、すべてのリクエストがプロキシ経由でルーティングされます。この場合、プロキシを使用した周辺防衛が存在します。
図B-1に、ユーザー認証および認可中にOAMサーバーおよびWebゲートにより使用される通信チャネルを示します。
プロセスの概要: 認証および認可
-
リクエストはWebGateにより捕捉されます。
-
認証(資格証明の集合)がHTTPチャネルを通じて発生します。
-
認可がOAMエージェントのみでNAPチャネルを通じて発生します。
Secure Sockets Layer (SSL)プロトコルを使用することで、HTTP (HTTPS)チャネルを通じた傍受と介入者攻撃の成功を防ぐことができます。SSLプロトコルはほとんどのWebサーバー製品およびWebブラウザの一部として含まれます。SSLはデジタル証明書を含む、効果および秘密キー暗号化システムを使用します。Webサーバーまたはディレクトリ・サーバーに対するSSL通信の有効化についての詳細は、ベンダーのドキュメントを参照してください。
PEM(プライバシ強化メール)形式(BASE64エンコードASCII)は秘密キー、デジタル証明書、および信頼されている認証局(CA)に適しています。OAMサーバーにとっての望ましいキーストア形式はJCEKSで、OAMクライアントの場合はJKS (Java KeyStore)形式です。Access Managerコンポーネントは、DER(バイナリ形式の証明書)形式のみのX.509デジタル証明書を使用します。
参照:
B.2.1 証明書、認証局および暗号化キーについて
デジタル証明書はレジストリに格納でき、そこから認証ユーザーが他のユーザーの公開キーを検索できます。
公開キーインフラストラクチャにより、デジタル証明書は次のものに基づきWebベースのトランザクションの資格証明を確立します。
-
証明書の所有者の名前
-
証明書のシリアル番号
-
証明書の有効期限
-
証明書の所有者の公開キーのコピー、これはメッセージおよびデジタル署名の暗号化に使用されます
-
証明書を発行する認証局のデジタル署名が提供されて、受信者はその証明書が本物であることを確認できます
暗号化では、公開キーは暗号化キーとして使用される、指定した認証局により提供された値です。公開キーを使用するためのシステムは公開キー・インフラストラクチャ(PKI)と呼ばれます。公開キーインフラストラクチャの一部として、認証局は登録局(RA)に問合せてデジタル証明書のリクエスタにより提供された情報を検証します。RAがリクエスタの情報を検証すると、CAは証明書を発行できます。
秘密キーは公開キーから導出できます。公開キーおよび秘密キーの組合せは非対称暗号と呼ばれ、メッセージおよびデジタル署名を効果的に暗号化するのに使用できます。
B.2.2 セキュリティ・モードおよびX509Scheme認証について
X509認証スキーム(X509Scheme)では、OAMサーバーSSLポートはサーバー・ポートと異なっていて、クライアント証明書を必要とするよう構成されている必要があります。X509Schemeを使用していると、X509モジュールは資格証明コレクションの後にコールされます。X509SchemeはX509チャレンジ・メソッドとX509認証モジュールを必要とします。資格証明コレクタへの完全修飾URLをX509Scheme内のチャレンジURLとして指定する必要があります。たとえば: https://
managed_server_host:managed_server_ssl_port
/oam/CredCollectServlet/X509
ノート:
- 相対的なチャレンジURLをX509Schemeで指定した場合、OAMサーバーは指定したサーバー・ホスト/ポートを使用してX509資格証明コレクタの完全修飾URLを構築します。ただし、この構成は動作しません。
- x509認証を使用する場合、CACカード・リーダー・ピンを再入力したり、ブラウザの証明書を選択または提供するよう求められることはありません。これは予期される動作であり、CACカードまたはブラウザ(あるいはその両方)固有です。
関連項目:
B.2.3 Importcertツール
管理者はOracleが提供するimportcert
ツールを、キーストア、キーおよび証明書に関連した様々な手順で使用します。
表B-1は、importcert
コマンドの構文を示しています。
表B-1 importcertコマンドの構文
オプション | 説明 |
---|---|
keystore |
このコマンドを、既存の(または新規)キーストアのパスで続けます。たとえば: /scratch/.oamkeystore or /scratch/clientKey.jks |
privatekeyfile |
このオプションを、秘密キーのパスで続けます。たとえば: /scratch/aaa_key.der |
signedcertfile |
このオプションを、署名済証明書のパスで続けます。たとえば: /scratch/aaa_cert.der |
alias |
このオプションを、キーストア・エントリ別名で続けます。genkeystoreで必要です。 alias |
storetype |
このオプションを、キーストア・タイプで続けます。デフォルトでは、ストア・タイプはJCEKS (OAMサーバー・キーストア)です。たとえば: サーバー・キーストア.oamkeystoreのタイプは次のようになります。 JCEKS クライアント・キーストア/scratch/clientTrustStore.jksおよび/scratch/clientKey.jksを使用できます。どちらも、次のタイプになります。 JKS |
genkeystore |
このフラグは、OAMクライアント証明書を生成する場合に必要です。クライアントでは、別名および別名パスワードのパラメータが表示されません。しかし、importcertツールはキーストア・パスワードを別名パスワードとして設定します。 指定: Yes or No Yesは、証明書を新しいキーストアにインポートします。 Noは、証明書を既存のキーストアにインポートします。 |
OAMサーバーの場合の例 |
- java -cp importcert.jar oracle.security.am.common.tools.importcerts.CertificateImport -keystore <path to .oamkeystore> -privatekeyfile <path to aaa_key.der> -signedcertfile <path to aaa_cert.der> -alias oam.certmode -aliaspassword <password> -storetype <JCEKS> genkeystore <yes> キーストア・パスワードと別名パスワードを、求められたら入力します。 |
OAMクライアントの場合の例 |
- java -cp importcert.jar oracle.security.am.common.tools.importcerts.CertificateImport -keystore <path to clientkey.JKS> -privatekeyfile <path to aaa_key.der> -signedcertfile <path to aaa_cert.der> -storetype <JKS> genkeystore <yes> キーストア・パスワードを、求められたら入力します。 |
B.2.4 Oracle Access ManagementでのTLS 1.2サポート
12cではTransport Layer Security (TLS) 1.2がサポートされ、インターネット経由の通信にセキュリティを提供しています。このプロトコルを使用すると、クライアント/サーバー・アプリケーションの通信における、傍受、改ざんまたはメッセージ偽造を防止できます。
OAMは、次のチャネルを介してTLS 1.2をサポートします。
チャネル | TLS 1.2のステータス |
---|---|
フロント |
受信トラフィックがロード・バランサ、WebサーバーまたはWeblogic Server上で終了するため、TLS 1.2は完全にサポートされます。 |
OAPバック |
12c Webgateは、TLS 1.2を完全サポートします。 |
LDAPバック |
TLS 1.2トランスポートは、11.1.2.3.0 BP8でサポートされます。ただし、IDSベースのユーザー・アイデンティティ・ストアを使用する場合、TLS 1.2はサポートされません。 |
JDBCバック |
データベースはWLSデータ・ソースを使用して抽象化されています。データベースへの接続にTLS 1.2を使用するように構成できます。OESはJDBCをデータベース抽象化として使用しており、TLS 1.2を使用するように構成できます。 |
アウトバウンドHTTPS |
アウトバウンド通話はすべてJSSEを使用しており、JDK固有のデフォルトに依存しています。JDK 6 121 UpdateおよびJDK 7 Update 95以降、システム・プロパティjdk.tls.client.protocolsを構成することによってプラットフォームTLSプロトコルを制御できます。 |
TLS 1.2は、JDKでインストールされる暗号化スイートをサポートします。
新しくインストールされた環境の場合
-
12c PS3 OAMサーバーと12c PS3 Webゲートを検討します(最新バージョンのOAMサーバーとWebゲートを使用します)。これらの間のSSL通信では、TLSv1.2プロトコルおよびSHA-2証明書を使用します。
-
12c PS3 OAMサーバーと12CPS2/ R2PS3 Webゲートを検討します(以前のバージョンのWebゲートとOAMサーバーを使用します)。OAMではTLSv1.2およびSHA-2証明書がサポートされますが、12CPS2/ R2PS3 Webゲートではサポートされません。
最新の12c OAMサーバーを、TLS1.2およびSHA2がサポートされない以前のバージョンのWebゲート/OAMサーバーと組み合せて使用するため、次の変更で
java.security
ファイルを更新して、OAMのセキュリティ方針を緩和する必要があります。-
JAVA_HOME/jre/lib/security/
にあるjava.security
ファイルをエディタで開きます。 -
次のキーからTLSv1、TLSv1.1、MD5withRSAを削除します。
キー - jdk.tls.disabledAlgorithms
-
次のキーからMD5を削除します。
キー - jdk.certpath.disabledAlgorithms
-
OAM 12c環境でTLSv1.2を有効化するステップ
OHSでTLSv1.2を有効化します。
12c OHSで次の2つのファイルを更新します。
/scratch/work/TLStest/OHS12c/Oracle_Home/user_projects/domains/base_domain/config/fmwconfig/components/OHS/ohs1/ssl.conf
/scratch/work/TLStest/OHS12c/Oracle_Home/user_projects/domains/base_domain/config/fmwconfig/components/OHS/instances/ohs1/ssl.conf
SSLProtocol -ALL +TLSv1.2
DBでTLSv1.2を有効化します。
次のステップに従ってDBで有効化します。
-
サーバーjnetadmin_sおよびクライアントjnetadmin_cにウォレットを作成します
mkdir root mkdir jnetadmin_s mkdir jnetadmin_c export ORACLE_HOME=/scratch/alice/work/db1427 export T_WORK=$ORACLE_HOME export ROOT_CERT_DIR=$T_WORK/root export TNS_ADMIN_SERVER=$T_WORK/jnetadmin_s export TNS_ADMIN_CLIENT=$T_WORK/jnetadmin_c ./orapki wallet create -wallet $ROOT_CERT_DIR -pwd welcome1 ./orapki wallet add -wallet $ROOT_CERT_DIR -dn "CN=Root,C=US" -keysize 2048 -self_signed -validity 3650 -pwd welcome1 ./orapki wallet export -wallet $ROOT_CERT_DIR -dn "CN=Root,C=US" -cert $ROOT_CERT_DIR/b64certificate.txt -pwd welcome1 ./orapki wallet create -wallet $TNS_ADMIN_SERVER -auto_login -pwd welcome1 ./orapki wallet add -wallet $TNS_ADMIN_SERVER -dn "CN=Server,OU=ST,O=Oracle,ST=California,C=US" -keysize 2048 -pwd welcome1 ./orapki wallet export -wallet $TNS_ADMIN_SERVER -dn "CN=Server,OU=ST,O=Oracle,ST=California,C=US" -request $TNS_ADMIN_SERVER/creq.txt -pwd welcome1 ./orapki cert create -wallet $ROOT_CERT_DIR -request $TNS_ADMIN_SERVER/creq.txt -cert $TNS_ADMIN_SERVER/cert.txt -validity 3650 -pwd welcome1 ./orapki wallet add -wallet $TNS_ADMIN_SERVER -trusted_cert -cert $ROOT_CERT_DIR/b64certificate.txt -pwd welcome1 ./orapki wallet add -wallet $TNS_ADMIN_SERVER -user_cert -cert $TNS_ADMIN_SERVER/cert.txt -pwd welcome1 ./orapki wallet create -wallet $TNS_ADMIN_CLIENT -auto_login -pwd welcome1 ./orapki wallet add -wallet $TNS_ADMIN_CLIENT -dn "CN=Client,OU=ST,O=Oracle,ST=CA,C=US" -keysize 2048 -pwd welcome1 ./orapki wallet export -wallet $TNS_ADMIN_CLIENT -dn "CN=Client,OU=ST,O=Oracle,ST=CA,C=US" -request $TNS_ADMIN_CLIENT/creq.txt -pwd welcome1 ./orapki cert create -wallet $ROOT_CERT_DIR -request $TNS_ADMIN_CLIENT/creq.txt -cert $TNS_ADMIN_CLIENT/cert.txt -validity 3650 -pwd welcome1 ./orapki wallet add -wallet $TNS_ADMIN_CLIENT -trusted_cert -cert $ROOT_CERT_DIR/b64certificate.txt -pwd welcome1 ./orapki wallet add -wallet $TNS_ADMIN_CLIENT -user_cert -cert $TNS_ADMIN_CLIENT/cert.txt -pwd welcome1 ./orapki wallet add -wallet $TNS_ADMIN_CLIENT -trusted_cert -cert $TNS_ADMIN_SERVER/cert.txt -pwd welcome1
-
wallet.oraファイルを作成/編集します
cd jnetadmin_s
vim wallet.ora
内容は次のとおり。
WALLET_LOCATION= (SOURCE= (METHOD=FILE) (METHOD_DATA= (DIRECTORY=/scratch/alice/work/db1427/jnetadmin_s/) ) )
-
sqlnet.oraを編集します
SSL_VERSION=1.2 ssl_client_authentication=false ifile=/scratch/alice/work/db1427/jnetadmin_s/wallet.ora
-
listener.oraを編集します
LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = slc03rvu.us.oracle.com)(PORT = 1521)) (ADDRESS=(PROTOCOL=tcps)(HOST=slc03rvu.us.oracle.com)(PORT=5551)) ) ) ADR_BASE_LISTENER = /scratch/work ssl_client_authentication=false ifile=/scratch/alice/work/db1427/jnetadmin_s/wallet.ora SSL_VERSION=1.2 SID_LIST_listener=(SID_LIST= (SID_DESC=(SID_NAME=db1427)(ORACLE_HOME=/scratch/alice/work/db1427)) (SID_DESC=(SID_NAME=db1427)(GLOBAL_DBNAME=db1427.us.oracle.com)) )
-
データベースとリスナーを再起動します
restart DB
lsnrctl stop
lsnrctl start
-
opensslを使用して、TLSv1.2を検証します
openssl s_client -showcerts -tls1_2 -connect slc03rvu.us.oracle.com:5551
WLS JDBC TLSデータ・ソースを追加します。
-
ステップ3で生成したDBサーバー証明書をWLS Demo Trust.jksにインポートします
keytool -importcert -trustcacerts -alias dbroot -keystore $MW_HOME/wlserver/server/lib/DemoTrust.jks -storepass DemoTrustKeyStorePassPhrase -file $ROOT_CERT_DIR/b64certificate.txt
-
wlsコンソール->「サービス」->「データ・ソース」と移動し、TLS接続の詳細を使用して次のJDBCデータ・ソースを更新します。
-
各データ・ソースを開いて、次のように接続プール、更新URLおよびプロパティをクリックします。
URLの例:
jdbc:oracle:thin:/@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCPS)(HOST=slc03sfc.us.oracle.com)(PORT=2484)))(CONNECT_DATA=(SERVICE_NAME=db4758..us.oracle.com))(SECURITY=(SSL_SERVER_CERT_DN="CN=slc03sfc.us.oracle.com")))
プロパティ例:
javax.net.ssl.trustStoreType=JKS javax.net.ssl.trustStorePassword=DemoTrustKeyStorePassPhrase javax.net.ssl.trustStore=/net/slc03sfc/scratch/work/mw4838/wlserver_10.3/server/lib/DemoTrust.jks
-
サーバーを再起動します。
複数のモードを使用してWLS上のOAPチャネルのTLSを有効化します。
「Oracle HTTP Server WebGate for Oracle Access Managerの構成」を参照して、12c証明書および簡易モードを構成します。
jdk.certpath.disabledAlgorithms
オプションからMD5を削除し、$OHS_ORACLE_HOME/user_projects/domains/base_domain/config/fmwconfig/components/OHS/ohs1/ohs.plugins.nodemanager.propertiesファイルに次のプロパティを追加します。 environment.ORACLE_SSL_ALLOW_MD5_CERT_SIGNATURES=1
OAM IDストアを使用してOAM用TLSを有効化します
次のステップに従います:
-
OAMコンソールにログインします。
-
新しいOAM IDストアを作成します。
-
デフォルト・ストアを、作成したIDストアに更新します。
-
LDAP認証モジュールを、作成したIDストアに更新します。
-
すべてのサーバーをシャットダウンし、OUDの証明書をJDKキーストアにインポートします。
openssl s_client -showcerts -connect slc06bku.us.oracle.com:1636 </dev/null2>/dev/null|openssl x509 -outform PEM >cert.pem openssl x509 -outform der -in cert.pem -out cert.der keytool -importcert -alias oud -file cert.der -keystore cacerts -storepass changeit
-
oam-config.xmlを更新します
バージョン番号を増やします。
<Setting Name=”Version” Type=”xsd:integer”>91</Setting>
SSLに更新します。
<Setting Name=”LDAP_URL” Type=”xsd:string”>ldaps://slc06bku.us.oracle.com:1636</Setting>
TLS1.2パラメータを追加します。
<Setting Name="LDAP_SSL_PROTOCOL" Type="xsd:string">TLSv1.2</Setting>
-
config/fmwconfig/servers/oam_server1/logging.xml
およびconfig/fmwconfig/servers/AdminServer/logging.xml
に次の行を追加します<logger name='oracle.oam.user.identity.provider' level='TRACE:32'useParentHandlers='false'> <handler name='odl-handler'/> </logger>
-
サーバーを起動して保護リソースにアクセスすると、oam_server1-diagnostic.logへのtlsログインが記録されます。
[2016-08-09T01:46:49.398-07:00] [oam_server1] [TRACE:32] [] [oracle.oam.user.identity.provider] [tid: [ACTIVE].ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: <anonymous>] [ecid: 036b5306-7533-4458-ad54-5f5be25adadf-00000106,0] [APP: oam_server] [partition-name: DOMAIN] [tenant-name: GLOBAL] [SRC_CLASS: oracle.security.am.engines.common.identity.provider.impl.ids.IDSLDAPConfigurator] [SRC_METHOD: getIDSInstance] Setting ssl protocol as TLSv1.2
IDSプロファイルを使用してOAM用TLSを有効化します
次のステップに従います:
-
OAMコンソールにログインします。
-
IDSプロファイルを作成します。
-
「IDSプロファイルの同期」をクリックし、デフォルト・ストアを、作成したIDSプロファイルに更新します。
-
LDAP認証モジュールを、作成したIDストアに更新します。
-
wlstを使用してID libovdにTLSパラメータを追加し、
modifyLDAPAdapter(adapterName='IdsProfile', attribute='Protocols', value='TLSv1.2', contextName='ids')
-
ids libovdにキーストアを作成し、
export ORACLE_HOME=/scratch/work/mw169
export WL_HOME=/scratch/work/mw169/wlserver
export JAVA_HOME=/scratch/work/view/nowang_dte8461/bootstrap/java/1.8.0-51-16-150608.1.8.0.51.0016/jdk
./libovdconfig.sh -host slc03sfc.us.oracle.com -port 22899 -userName weblogic -domainPath /scratch/work/mw169/user_projects/domains/WLS_IDM -createKeystore -contextName ids
-
libOVDキーストアにOUD証明書を追加し、
openssl s_client -showcerts -connect slc06bku.us.oracle.com:1636 </dev/null 2>/dev/null|openssl x509 -outform PEM >cert.pem
openssl x509 -outform der -in cert.pem -out cert.der
keytool -import -keystore adapters.jks -storepass weblogic1 -alias oud -file cert.der
-
"-Dssl.debug=true -Dweblogic.StdoutDebugEnabled=true -Djavax.net.debug=all"
をsetDomainEnv.sh
に追加して、oam_server1
出力コンソール・リダイレクト・ファイルからのTLS接続メッセージをログで確認します。 -
すべてのサーバーを再起動し、保護リソースにアクセスします。
B.3 証明書モードのOAMテスターのクライアント・キーストア生成
証明書モードのOAMテスターとともに使用するJKSキーストアを生成する場合のみ(それ以外の場合、このトピックをスキップします)。
この項ではimportcertコマンドを使用して、インポートした信頼できる証明書チェーンを含むための、証明書モードのOAMテスター用のクライアント・キーストアを生成する方法を説明します。
関連項目:
証明書モードのOAMテスター用のクライアント・キーストアを生成する手順
B.4 Access Managerの証明書モード通信の構成
少なくとも1つのOAMサーバー・インスタンスがエージェントと同じモードで実行されているAccess Manager用の証明書モード通信を構成します。
このトピックでは、Access Manager用の証明書モード通信の構成方法について説明します。次のタスクは証明書モードにのみ適用されます。
ノート:
簡易モードでは、バンドルされたAccess Manager-CA署名付き証明書が使用されて、次のタスクのほとんどは必要ありません。
Prerequisites
エージェントの登録中に、少なくとも1つのOAMサーバー・インスタンスがエージェントと同じモードで実行していることが必要です。それ以外の場合、登録は失敗します。ただし、エージェントの登録後、OAMサーバーの通信モードを変更できます。
タスク概要: OAMサーバーの証明書の追加には次のものが含まれます。
B.4.1 証明書モードの暗号化およびファイルについて
証明書リクエストを作成し、CAに送信する必要があります。証明書が戻されると、それをOAMサーバーにインポート(またはWebGateにコピー)する必要があります。
Webゲートの証明書リクエストによって、リクエスト・ファイルaaa_req.pemが生成されます。これを、OAMサーバーにより信頼されているルートCAに送信する必要があります。ルートCAが戻す証明書は、OAM Webgateのインストールおよび構成の後で、手動でWebgateインスタンス領域にコピーする必要があります。
-
aaa_key.pem (Webゲート・キー・ファイルの予約名。変更できません)
-
aaa_cert.pem (Webゲート証明書ファイルの予約名。変更できません)
-
aaa_chain.pem (Webゲート側のCA証明書の予約名)
証明書モードでのコンポーネントのインストール中に、外部CAから取得した証明書が存在するかどうかを尋ねられます。証明書をまだ所有していない場合、リクエストできます。証明書を受領するまでは、WebGateを簡易モードで構成できます。ただし、証明書が発行されインストールされるまで、OAMデプロイメントは完了できません。
WebゲートをOAMエージェントとして登録するときに証明書モードを選択すると、エージェント・キー・パスワードを入力するフィールドが表示されます。OAM WebGate登録の編集時に、モードがオープンから証明書へ、または簡易から証明書へ変更される場合にのみpassword.xmlが更新されます。証明書モードでは、一度生成されるとpassword.xmlは更新できません。エージェント・キー・パスワードを編集しても、新しいpassword.xmlは生成されません。
B.4.2 OAMサーバー用の証明書リクエストおよび秘密キーの生成
OAMサーバーの秘密キー、証明書およびCA証明書を取得します。
ノート:
動作保証されたツールは、openSSLです。証明書およびキーをPEM形式で生成するには、他のツールではなくopenSSLを使用することをお薦めします。
OAMサーバーの秘密キーおよび証明書を取得するには:
B.4.3 UDMに格納された.OAMKeystoreパスワードの取得
Oracle Enterprise Manager Fusion Middleware Controlコンソールでキーストア資格証明を取得できます。
- コンテキストURL (
/em
) を使用してOracle Enterprise Manager Fusion Middleware Control 12cコンソールにログインします。たとえば、http://<HOST>:<PORT>/em
です。 - 「システムMBeanブラウザ」ページに移動するには、「Weblogicドメイン」ドロップダウンをクリックし、「システムMBeanブラウザ」を選択します。
- 次のステップの説明に従って、credentialFromUDM操作を検索します:
- 「システムMBeanブラウザ」の双眼鏡アイコンを選択します。
- MBean名を
Operations
に変更し、テキストcredentialFromUDM
を入力します。[Enter]キーを押して検索します。 - 下にスクロールしてcredentialFromUDM操作のリンクを選択し、対応するページを開きます。
- .OAMKeystoreパスワードを取得するには、次のパラメータ値を入力して、「呼出し」をクリックします。
- p1 = oracle.oam.OAMStore (mapname)
- p2 = JKS (key)
パスワードは、「戻り値」ペインに表示されます。
B.4.4 信頼できる、署名された証明書チェーンをキーストアへインポート
Oracleが提供するimportcertツールは、既存の秘密キー、署名済証明書(公開キー)ファイルを指定のキーストア形式であるJKS (クライアント・キーストア形式)またはJCEKS (OAMサーバー・キーストア形式、たとえば .oamkeystore)へインポートするために使用します。
Access Managerに関連付けられたキーストアはPKCS8 DER形式の証明書のみを受け入れます。
-
PEM形式の証明書が認証局(CA)によって署名されている場合、次の手順ではAccess Managerに付属している
importcert
を使用してこれらの証明書を変換した後にインポートする方法を説明します。 -
PEM形式の証明書がない場合は、証明書リクエストを作成してCAで署名を受けた後で、次の手順を開始してください。
次にJDKバージョン8のkeytoolを使用するためのステップを示します。異なるバージョンのkeytoolの場合、そのJDKバージョンのドキュメントを参照してください。
ノート:
keytoolユーティリティを使用する場合、デフォルトのキー・ペア生成アルゴリズムはDSA (Digital Signature Algorithm)です。ただし、Oracle Access ManagementおよびWebLogic ServerはDSAをサポートしないので、別のキー・ペア生成および署名アルゴリズムを指定する必要があります。
Prerequisites
信頼できる証明書チェーンをキーストアにインポートするには:
-
証明書モードでOAMサーバーを設定する場合、.oamkeystoreを変更する前に、オフラインのWLSTコマンドを使用してアーティファクトをダウンロードします。
downloadAccessArtifacts(domainHome="/new/path/base_domain", propsFile="/path/dbschema.properties") ---- contents of dbschema.properties ---- oam.entityStore.schemaUser=MYPREFIX_OAM oam.entityStore.schemaPassword=Secret oam.entityStore.ConnectString=jdbc:oracle:thin:@dbhost.us.oracle.com:1521/servicename.us.oracle.com
ノート:
管理サーバーが再起動するたびに、変更がDBから取得されます。そのため、downloadAccessArtifactsおよびsaveAccessArtifactsを実行して、証明書モードの変更を保存する必要があります。 -
次のパスでキーツールを探します。
$MW_HOME/jdk8/bin/keytool
-
importcert.zipを解凍して、次のパスでReadMeファイルを探します。
$ORACLE_IDM_HOME/oam/server/tools/importcert/README
-
aaa_chain.pem: テキスト・エディタを使用してaaa_chain.pemファイルを変更して、CERTIFICATEブロック内に含まれるデータを除くすべてのデータを削除してからそのファイルを保存します。
----BEGIN CERTIFICATE----- ... CERTIFICATE ... -----END CERTIFICATE-----
-
次のコマンドと環境に応じた詳細を使用して、信頼された証明書チェーンをインポートします。たとえば:
keytool -importcert -file aaa_chain.pem -trustcacerts -storepass <password> -keystore $ORACLE_HOME\user_projects\domains\$DOMAIN\config\fmwconfig\ .oamkeystore -storetype JCEKS
-
証明書を信頼するかどうか尋ねられたら、「
yes
」と入力します。 -
aaa_cert.pem:
-
TextPadを使用してaaa_certn.pemを編集し、CERTIFICATEブロック内に含まれるデータを除くすべてのデータを削除し、そのファイルを新しい場所に保管して元のファイルを保持します。たとえば:
----BEGIN CERTIFICATE----- ... CERTIFICATE ... -----END CERTIFICATE-----
-
次のコマンドを入力して署名された証明書(aaa_cert.pem)を、openSSLまたは他のツールを使用してDER形式に変換します。たとえば:
openssl x509 -in aaa_cert.pem -inform PEM -out aaa_cert.der -outform DER
-
-
aaa_key.pem:
-
aaa_key.pemを編集し、CERTIFICATEブロック内に含まれるデータを除くすべてのデータを削除し、そのファイルを新しい場所に保管して元のファイルを保持します。たとえば:
----BEGIN CERTIFICATE----- ... CERTIFICATE ... -----END CERTIFICATE-----
-
次のコマンドを入力して秘密キー(aaa_key.pem)を、openSSLまたは他のツールを使用してDER形式に変換します。たとえば:
openssl pkcs8 -topk8 -nocrypt -in aaa_key.pem -inform PEM -out aaa_key.der -outform DER
-
-
キーストアに署名付きDER形式の証明書をインポートします。たとえば:
-
環境に応じた次のコマンド行引数および詳細を使用してaaa_key.derをインポートします。たとえば:
c:\Middleware\idm_home\oam\server\tools\importcert
- java -cp importcert.jar oracle.security.am.common.tools.importcerts.CertificateImport -keystore <> -privatekeyfile <path> -signedcertfile <path> -alias [ -storetype <> genkeystore <> -help]
ノート:
キーストア・パスワードと別名パスワードを、求められたら入力します。Windowsシステムでは、コロン(:)のかわりにセミコロン(;)をコマンド行で使用してください。
-
-
変更の後で、saveAccessArtifacts(domainHome="/mwhome/user_projects/domains/base_domain", propsFile="/path/dbschema.properties")というオフラインのWLSTコマンドを使用してDBに変更をアップロードしてください。
- 「証明書詳細をAccess Manager設定に追加」に進みます。
B.4.5 証明書詳細をAccess Manager設定に追加
証明書をキーストアにインポートした後で、前に指定した別名およびパスワードを、Oracle Access ManagementコンソールでAccess Manager設定構成に追加します。
ノート:
簡易モードには明示的な構成は必要なく、即時可能な状態で提供されます。
証明書詳細をAccess Manager設定に追加する手順
B.4.6 Webゲート用の秘密キーおよび証明書リクエストの生成
openSSLを使用してWebゲートの秘密キー、証明書およびCA証明書を取得します。
WebGateの秘密キーおよび証明書を取得する手順
B.4.7 証明書モード通信での双方向SSLのサポート
証明書モード通信での双方向SSLのサポートでは、SSLハンドシェイクの実行中にユーザー証明書がサーバーと共有されます。そのため、ユーザー証明書をcwallet.sso
に追加する必要があります。
ユーザー証明書は、orapki
ユーティリティを使用して手動でcwallet.sso
に追加する必要があります。『Oracle Fusion Middlewareの管理』のキーストア管理ツールに関する項を参照してください
DN
をノートにとっておきます。
B.4.8 証明書を使用するようにWebゲートを更新
すべての通信モード(オープン、簡易または証明書)で、エージェント登録はOracle Access Managementコンソールから更新する必要があります。
-
エージェントの登録: OAMエージェントの登録時に証明書モードを選択すると、エージェント・キー・パスワードを入力するフィールドが表示されます。
-
エージェントの編集/更新: OAM Webゲート登録の編集時に、モードがオープンから証明書へ、または簡易から証明書へ変更される場合にのみpassword.xmlが更新されます。
エージェント・キー・パスワードを編集しても、新しいpassword.xmlは生成されません。証明書モードでは、一度生成されるとpassword.xmlは更新できません。
前提条件
WebGateエージェント登録の通信モードを更新する手順
B.5 Access Managerの簡易モード通信の構成
ノート:
エージェントとサーバー間の通信は、Webゲート・モードがOAMサーバー・モードと同じか、それ以上であれば動作します。
OAMエージェントまたは新しいOAMサーバーを登録する際には、簡易モードを指定できます。ただし、グローバル・パスフレーズの変更には、簡易モードを使用するすべてのエージェントと新しいグローバル・パスフレーズの再構成が必要です。
ノート:
エージェントの登録中に、少なくとも1つのOAMサーバー・インスタンスがエージェントと同じモードで実行していることが必要です。それ以外の場合、登録は失敗します。ただし、エージェントの登録後、OAMサーバーの通信モードを変更できます。
最高レベルのセキュリティは証明書モードで、最も低いのはオープン・モードです。エージェント・モードは高くても問題ありませんが、低くしないでください。たとえば、オープン・モードは簡易または証明書モードに更新できます。
この項では、簡易モード通信の構成に必要な情報を提供します。
タスク概要: 簡易モード通信の構成には次のことが含まれます
B.5.1 簡易モード、暗号化およびキーについて
簡易モード暗号化の場合、Access Managerには認証局がその固有の秘密キーとともに含まれ、すべてのWebゲートおよびOAMサーバーにインストールされます。
インストール中に、OAMサーバーの秘密キー-公開キーのペアが生成され、保存されます。OAMエージェントのインストールでも同様にOracle認証局がインストールされます。
インストーラは最初にランダムなグローバル・パスフレーズを生成しますが、これは必要に応じて編集または表示できます。エージェントがSIMPLE(簡易)モードで登録されていると、次のクライアント証明書が生成され、クライアントにより使用されます。
-
aaa_key.pem: 秘密キーが含まれています
-
aaa_cert.pem: 署名された証明書
-
password.xml: ランダムなグローバル・パスフレーズが不明瞭化された形式で含まれています
ノート:
グローバル・パスフレーズを変更すると、「簡易」モードですでに構成されているすべてのエージェントの再構成が必要になります。
B.5.2 簡易モード用のグローバル・パスフレーズの取得
インストール中に簡易モード通信用にAccess Managerによって生成されたランダムなグローバル・パスフレーズを取得します。
「簡易」モード通信用のランダムなグローバル・パスフレーズを取得する手順
B.5.3 簡易モード用Webゲート登録の更新
簡易セキュリティ・モード用に生成されたアーティファクトはグローバル・パスフレーズを使用し、変更はWebゲートに伝播される必要があります。
簡易モード用に既存のWebゲート登録を更新するには、Oracle Access Managementコンソールを使用してWebゲート登録をいったん削除してから、再登録できます(簡易モードを指定し、ポリシーの自動生成を無効にします)。または、ここで説明するように、Webゲート登録を編集してから、アーティファクトをコピーすることもできます。
簡易モード用WebGate登録を更新する手順