28 Secure Sockets Layer (SSL)の構成
Oracle Internet DirectoryでSSLを使用する場合、厳密認証、データ整合性およびデータ・プライバシも構成できます。
この章の内容は次のとおりです。
関連項目:
-
Oracle Internet Directoryに関連するSSLの概念の概要は、「Oracle Internet Directoryでのセキュリティ機能」を参照してください。
-
『Oracle Fusion Middlewareの管理』のSecure Sockets Layer (SSL)の構成に関する項を参照してください
-
『Oracle Fusion Middlewareの管理』のSSL自動化ツールに関する項を参照してください。SSL自動化ツールを使用すると、ドメイン固有のCAを使用して複数のコンポーネントにSSLを構成できます。
28.1 Secure Sockets Layer (SSL)の構成の概要
Oracle Internet Directoryは、Secure Sockets Layer (SSL)を使用して、送信中にデータが変更、削除または再現されていないことを保証します。SSLは、暗号方式のセキュアなメッセージ・ダイジェストを、MD5アルゴリズムまたはSecure Hash Algorithm(SHA)を使用する暗号チェックサムを使用して生成し、ネットワーク上で送信される各パケットに組み込みます。SSLでは、メッセージ・ダイジェストを使用して認証、暗号化、データ整合性を提供します。
この概要の項目は次のとおりです。
Oracle Internet Directoryは、SSLとともに使用可能な公開キーの暗号化を使用して、送信中にデータが開示されていないことを保証します。公開キー暗号では、メッセージの送信側が受信側の公開キーを使用してメッセージを暗号化します。メッセージが送達されると、受信側は、受信側の秘密キーを使用して、メッセージを復号化します。
28.1.1 サポートされている暗号スイート
暗号スイートは、ネットワーク・ノード間のメッセージ交換に使用される認証、暗号化およびデータ整合性アルゴリズムのセットです。SSLハンドシェイク時に、2つのノード間で折衝し、メッセージを送受信するときに使用する暗号スイートを確認します。
表28-1に、Oracle Internet DirectoryでサポートされるSSL暗号スイートと、各暗号スイートに対応する認証、暗号化およびデータ整合性のメカニズムを示します。これらは、インスタンス固有の構成エントリの属性orclsslciphersuite
に格納されています。
ノート:
システムにJava Development Kit (JDK) 1.7.0_131以降がインストールされていることを確認してください。
表28-1 Oracle Internet DirectoryでサポートされるSSL暗号スイート
暗号スイート | 認証 | 暗号化 | データ整合性 |
---|---|---|---|
SSL_DH_DSS_WITH_AES_128_CBC_SHA256 |
DH_DSS |
AES |
SHA |
SSL_DH_DSS_WITH_AES_128_GCM_SHA256 |
DH_DSS |
AES |
SHA |
SSL_DH_DSS_WITH_AES_256_CBC_SHA256 |
DH_DSS |
AES |
SHA |
SSL_DH_DSS_WITH_AES_256_GCM_SHA384 |
DH_DSS |
AES |
SHA |
SSL_DHE_DSS_WITH_AES_128_CBC_SHA256 |
DHE_DSS |
AES |
SHA |
SSL_DHE_DSS_WITH_AES_128_GCM_SHA256 |
DHE_DSS |
AES |
SHA |
SSL_DHE_DSS_WITH_AES_256_CBC_SHA256 |
DHE_DSS |
AES |
SHA |
SSL_DHE_DSS_WITH_AES_256_GCM_SHA384 |
DHE_DSS |
AES |
SHA |
SSL_DHE_RSA_WITH_AES_128_CBC_SHA256 |
DHE_RSA |
AES |
SHA |
SSL_DHE_RSA_WITH_AES_128_GCM_SHA256 |
DHE_RSA |
AES |
SHA |
SSL_DHE_RSA_WITH_AES_256_CBC_SHA256 |
DHE_RSA |
AES |
SHA |
SSL_DHE_RSA_WITH_AES_256_GCM_SHA384 |
DHE_RSA |
AES |
SHA |
SSL_DH_RSA_WITH_AES_128_CBC_SHA256 |
DH_RSA |
AES |
SHA |
SSL_DH_RSA_WITH_AES_128_GCM_SHA256 |
DH_RSA |
AES |
SHA |
SSL_DH_RSA_WITH_AES_256_CBC_SHA256 |
DH_RSA |
AES |
SHA |
SSL_DH_RSA_WITH_AES_256_GCM_SHA384 |
DH_RSA |
AES |
SHA |
SSL_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 |
ECDH_ECDSA |
AES |
SHA |
SSL_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 |
ECDH_ECDSA |
AES |
SHA |
SSL_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 |
ECDH_ECDSA |
AES |
SHA |
SSL_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 |
ECDH_ECDSA |
AES |
SHA |
SSL_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 |
ECDHE_ECDSA |
AES |
SHA |
SSL_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 |
ECDHE_ECDSA |
AES |
SHA |
SSL_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 |
ECDHE_ECDSA |
AES |
SHA |
SSL_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 |
ECDHE_ECDSA |
AES |
SHA |
SSL_ECDHE_RSA_WITH_AES_128_CBC_SHA256 |
ECDHE_RSA |
AES |
SHA |
SSL_ECDHE_RSA_WITH_AES_128_GCM_SHA256 |
ECDHE_RSA |
AES |
SHA |
SSL_ECDHE_RSA_WITH_AES_256_CBC_SHA384 |
ECDHE_RSA |
AES |
SHA |
SSL_ECDHE_RSA_WITH_AES_256_GCM_SHA384 |
ECDHE_RSA |
AES |
SHA |
SSL_ECDH_RSA_WITH_AES_128_CBC_SHA256 |
ECDH_RSA |
AES |
SHA |
SSL_ECDH_RSA_WITH_AES_128_GCM_SHA256 |
ECDH_RSA |
AES |
SHA |
SSL_ECDH_RSA_WITH_AES_256_CBC_SHA384 |
ECDH_RSA |
AES |
SHA |
SSL_ECDH_RSA_WITH_AES_256_GCM_SHA384 |
ECDH_RSA |
AES |
SHA |
SSL_RSA_WITH_3DES_EDE_CBC_SHA |
RSA |
3DES |
SHA |
SSL_RSA_WITH_AES_128_CBC_SHA |
RSA |
AES |
SHA |
SSL_RSA_WITH_AES_128_CBC_SHA256 |
RSA |
AES |
SHA |
SSL_RSA_WITH_AES_128_GCM_SHA256 |
RSA |
AES |
SHA |
SSL_RSA_WITH_AES_256_CBC_SHA256 |
RSA |
AES |
SHA |
SSL_RSA_WITH_AES_256_GCM_SHA384 |
RSA |
AES |
SHA |
表28-2 Oracle Internet DirectoryでサポートされるTLS暗号スイート
暗号スイート | 認証 | 暗号化 | データ整合性 |
---|---|---|---|
TLS_RSA_WITH_AES_256_GCM_SHA384 |
RSA |
AES |
SHA |
TLS_RSA_WITH_AES_256_CBC_SHA |
RSA |
AES |
SHA |
TLS_RSA_WITH_AES_256_CBC_SHA256 |
RSA |
AES |
SHA |
TLS_RSA_WITH_AES_128_GCM_SHA256 |
RSA |
AES |
SHA |
TLS_RSA_WITH_AES_128_CBC_SHA |
RSA |
AES |
SHA |
TLS_RSA_WITH_AES_128_CBC_SHA256 |
RSA |
AES |
SHA |
TLS_ECDH_RSA_WITH_AES_256_CBC_SHA |
ECDH_RSA |
AES |
SHA |
TLS_ECDH_RSA_WITH_AES_128_CBC_SHA |
ECDH_RSA |
AES |
SHA |
TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA |
ECDH_RSA |
3DES |
SHA |
TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384 |
ECDH_RSA |
AES |
SHA |
TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256 |
ECDH_RSA |
AES |
SHA |
TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 |
ECDH_RSA |
AES |
SHA |
TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 |
ECDH_RSA |
AES |
SHA |
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 |
ECDHE_RSA |
AES |
SHA |
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA |
ECDHE_RSA |
AES |
SHA |
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 |
ECDHE_RSA |
AES |
SHA |
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 |
ECDHE_RSA |
AES |
SHA |
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA |
ECDHE_RSA |
AES |
SHA |
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 |
ECDHE_RSA |
AES |
SHA |
TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA |
ECDHE_RSA |
3DES |
SHA |
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 |
ECDHE_ECDSA |
AES |
SHA |
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA |
ECDHE_ECDSA |
AES |
SHA |
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 |
ECDHE_ECDSA |
AES |
SHA |
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 |
ECDHE_ECDSA |
AES |
SHA |
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA |
ECDHE_ECDSA |
AES |
SHA |
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 |
ECDHE_ECDSA |
AES |
SHA |
TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA |
ECDHE_ECDSA |
3DES |
SHA |
TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 |
ECDH_ECDSA |
AES |
SHA |
TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 |
ECDH_ECDSA |
AES |
SHA |
TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 |
ECDH_ECDSA |
AES |
SHA |
TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 |
ECDH_ECDSA |
AES |
SHA |
TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA |
ECDH_ECDSA |
AES |
SHA |
TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA |
ECDH_ECDSA |
AES |
SHA |
TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA |
ECDH_ECDSA |
3DES |
SHA |
TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 |
DHE_RSA |
AES |
SHA |
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 |
DHE_RSA |
AES |
SHA |
TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 |
DHE_RSA |
AES |
SHA |
TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 |
DHE_RSA |
AES |
SHA |
TLS_DHE_RSA_WITH_AES_256_CBC_SHA |
DHE_RSA |
AES |
SHA |
TLS_DHE_RSA_WITH_AES_128_CBC_SHA |
DHE_RSA |
AES |
SHA |
ノート:
デフォルトでは、匿名暗号は使用可能になっていません。必要な場合は、Oracle Fusion MiddlewareシステムMBeanブラウザを使用して、TLS_DH_anon_WITH_AES_256_GCM_SHA384
、TLS_DH_anon_WITH_AES_128_GCM_SHA256
およびSSL_DH_anon_WITH_3DES_EDE_CBC_SHA
の暗号スイートをOracle Internet Directory構成に追加できます。
28.1.2 サポートされているプロトコルのバージョン
このトピックでは、有効なすべてのプロトコルとその属性値のリストをマップしています。また、SSLv3プロトコルを完全に無効にする方法についても説明します。
ノート:
OIDサーバー・インスタンスの購入直後のデフォルトのSSL構成では、orclcryptoversion
の値は24に設定されています。これは、TLSv1.2とTLSv1.1のみが有効であることを意味します。
Oracle Internet Directoryでは、次のTLS/SSLプロトコルをサポートしています。
-
SSLv3
-
TLSv1
-
TLSv1.1
-
TLSv1.2
Oracle Internet Directoryでは、SSLv2をサポートしていません。
11gリリース1 (11.1.1.9.0)以降では、orclcryptoversion
属性を使用してSSL/TLSバージョンを指定できます。
orclcryptoversion
属性によって、対応する値を指定して属性に移入することで、複数のプロトコルを有効化できます。
表28-3に、プロトコル・マッピングとその対応する値を示します。
orclcryptoversion
の値を24 (プロトコル・マッピング表のTLS 1.1またはTLS 1.2の値)に更新して、SSLv3を完全に無効にできます。
orclcryptoversion
の値を24に変更するには、次のようにldapmodify
を使用します。
ldapmodify -D cn=orcladmin -q -p portNum -h hostname -f ldifFile
ldifFileには、次のものが含まれます。
dn: cn=oid1,cn=osdldapd,cn=subconfigsubentry
changetype: modify
replace: orclcryptoversion
orclcryptoversion: 24
表28-3 プロトコル・マッピング
有効化されるプロトコル | 属性値 |
---|---|
サポートされているすべてのプロトコル |
0 |
SSL v3 |
2 |
TLS 1.0 |
4 |
TLS 1.0またはSSL v3 |
6 |
TLS 1.1 |
8 |
TLS 1.1またはSSL v3 |
10 |
TLS 1.1またはTLS 1.0 |
12 |
TLS 1.1またはTLS 1.0またはSSL v3 |
14 |
TLS 1.2 |
16 |
TLS 1.2またはSSL v3 |
18 |
TLS 1.2またはTLS 1.0 |
20 |
TLS 1.2またはTLS 1.0またはSSL v3 |
22 |
TLS 1.1またはTLS 1.2 |
24 |
TLS 1.2またはTLS 1.1またはSSL v3 |
26 |
TLS 1.0またはTLS 1.1またはTLS 1.2 |
28 |
TLS 1.0またはTLS 1.1またはTLS 1.2またはSSL v3 |
30 |
28.1.3 SSL認証モードについて
SSLプロトコルでは、認証、整合性および機密保護を含むトランスポート層セキュリティがクライアントとサーバーとの間の接続に提供されます。
表28-4に示す3つの認証モードがサポートされています。SSL認証モードは、インスタンス固有の構成エントリ内のorclsslauthentication
属性によって制御されます。
デフォルトでは、Oracle Internet DirectoryはSSL認証なしモード(orclsslauthentication
=1
)を使用します。
クライアントとサーバーの双方が相互に自己認証を行うと、SSLはX.509 v3デジタル証明書から必要なアイデンティティ情報を取得します。
関連項目:
ノート:
デフォルトでは、SSL認証モードは1 (暗号化のみ、認証なし)に設定されます。
Oracle Delegated Administration Services 10g、または匿名SSL暗号用に構成された暗号化SSLポート上でOracle Internet Directoryと通信するOracle FormsおよびOracle Reportsのレガシー・バージョンなどその他のクライアント・アプリケーションを使用している場合、少なくとも1つのOracle Internet Directoryサーバー・インスタンスをこのデフォルト認証モード用に構成する必要があります。
そうしない場合は、認証モード1および匿名SSL暗号が要求されず、Oracle Internet Directoryが機能しません。使用可能にするSSLポートのタイプおよびSSLポートが受け入れる暗号は、固有のデプロイメント要件に依存します。
ディレクトリ・サーバー・インスタンスの起動時に、SSLプロファイルのパラメータを含む一連の構成パラメータがディレクトリに読み込まれます。
サーバー・インスタンスをセキュア・モードで実行するには、LDAPSを使用して通信を行うための単一のリスニング・エンドポイントを構成します。同じインスタンスで非保護接続を同時に実行するには、LDAPを使用して通信を行うための2番目のリスニング・エンドポイントを構成します。
Oracle Internet Directoryのインストール時、Oracle Identity Management 11gインストーラは特定のステップに従ってSSLおよび非SSLポートを割り当てます。まず、非SSLポートとして3060の使用を試みます。そのポートが使用できない場合、3061から3070の範囲のポートを試し、次に13060から13070の範囲のポートを試します。同様に、SSLポートとして3131を試し、次に3132から3141のポート、その後13131から13141のポートを試します。
ノート:
Oracle Internet Directoryの旧バージョンから現在のリリースへアップグレードする場合、旧バージョンのポート番号が保持されます。
異なるSSLパラメータを使用して、異なる値で複数のOracle Internet Directoryインスタンスを作成および変更できます。これは、セキュリティ要件の異なるクライアントを制御する便利な方法です。
関連項目:
新規サーバー・インスタンスの作成の詳細は、「Oracle Internet Directoryインスタンスの管理」を参照してください。
28.1.4 SSL認証モード
SSL認証なしモード、SSLサーバー認証のみモード、SSLクライアントとサーバーの認証モードの3つのSSL認証モードがサポートされています。
表28-4に、認証方式、その値および動作を示します。
表28-4 SSL認証モード
SSL認証方式 | orclsslauthenticationの値 | 認証動作 |
---|---|---|
SSL認証なしモード、機密保護モード |
|
クライアントとサーバーのいずれも、相手に対して自己認証を行いません。証明書も送信または交換されません。SSL暗号化および復号化のみが使用されます。 ノート: 「SSL認証なし」モードでOracle Internet Directory SSLが構成されている場合は、Javaクライアントに対して匿名暗号を有効にして、Oracle Internet Directoryと通信する必要があります。 |
SSLサーバー認証のみモード |
|
ディレクトリ・サーバーが、クライアントに対して自己認証を行います。ディレクトリ・サーバーは、そのサーバーのアイデンティティを示す証明書をクライアントに送信します。 |
SSLクライアントとサーバーの認証モード |
|
クライアントとサーバーは相互に自己認証を行い、それぞれ相手側に証明書を送信します。 |
ノート:
システムにJava Development Kit (JDK) 1.8.0_201以上がインストールされている場合は、デフォルトでは匿名暗号が無効になっています。
「SSL認証なし」モードでOracle Internet Directory SSLが構成されている場合は、JDKで匿名暗号を有効にする必要があります。java.security
ファイル(JAVA_HOME/lib/security
)を編集して、jdk.tls.disabledAlgorithms
セキュリティ・プロパティからanon
およびNULL
を削除してください。
28.1.5 Oracleウォレット
Oracle Walletは、X509証明書、秘密キーおよび信頼できるCA証明書の格納に使用されるセキュアなソフトウェア・コンテナです。自己署名証明書は、企業内のOracle Walletに格納できます。
インスタンス固有の構成からウォレットへの参照を削除する前に、orclsslenable
を0に設定してSSLを無効にする必要があります。
関連項目:
ミドルウェア・コンポーネントとともにOracleウォレットを使用する方法の詳細は、『Oracle Fusion Middlewareの管理』 のキーストアおよびOracleウォレットに関する項を参照してください。
orclsslwalleturl
属性に定義されている、現在使用中のウォレットはファイル・システムから削除しないでください。そうすると、サーバーが正常に起動できなくなります。このファイルを削除する前に、ウォレットに対する参照をインスタンス固有の構成エントリ属性orclsslwalleturl
から削除してください。
11gでは、SSL構成サービスで抽出されるため、WLSTおよびOracle Enterprise Manager Fusion Middleware Controlでorclsslwalleturl
を直接操作する必要はありません。SSL構成サービスを使用して行う場合、SSL構成サービスでウォレット削除の試行がトラップされます。
28.1.6 その他のコンポーネントとSSL
インストール時、Oracle Internet Directoryはデュアル・モードで起動します。つまり、非SSL接続を使用してOracle Internet Directoryにアクセス可能なコンポーネントもあれば、SSLを使用してディレクトリに接続するコンポーネントもあります。
デフォルトでは、Oracle Application Serverコンポーネントは、Oracle Internet Directoryとの通信をこのデュアル・モード環境で実行するように構成されます。必要であれば、非SSLモードを取り除き、すべてのミドルウェア・インスタンスでSSLを使用するように変更できます。
エンタープライズ・ユーザー・セキュリティやカスタマ・アプリケーションでは、デフォルトでの構成とは異なるSSLチャネルが必要な場合があります。たとえば、SSLサーバー認証モードやSSL相互認証モードが必要な場合などです。この場合、異なるSSLモード・ポートでリスニングする別のOracle Internet Directoryコンポーネント・インスタンスを作成する必要があります。
関連項目:
サーバー・インスタンスの構成方法の詳細は、「Oracle Internet Directoryインスタンスの管理」を参照してください
エンタープライズ・ユーザー・セキュリティのSSL構成の詳細は『Oracle Databaseエンタープライズ・ユーザー管理者ガイド』のエンタープライズ・ユーザー・セキュリティの構成に関する項を参照してください。
28.1.7 SSL相互運用性モード
非認証モードの場合、レガシーLDAP Cクライアントなど、11gリリース1 (11.1.1.0.0)より前に開発されたOracleレガシー・コンポーネントは、相互運用性モードが有効(orclsslinteropmode = 1
)なインスタンスを使用してのみOracle Internet Directoryに接続できます。
Oracle Internet Directory 11g リリース1(11.1.1.7.0)以降、SSL相互運用性モードのデフォルト値は、JDK SSLに完全に準拠するために無効です(orclsslinteropmode=0)。
JSSE(Java Secure Socket Extensions)を使用した新規クライアントやOracle以外のクライアントの場合、相互運用性モードが無効なSSLインスタンスが必要です。SSL相互運用性モードが無効(orclsslinteropmode = 0
)であることを前提として、Oracle Internet DirectoryはSun JDKのSSLに完全に準拠しています。
Oracle Internet Directoryがクライアントに不適切なモードで設定されている場合、クライアントからサーバーへのSSL接続で決定的ではない障害がまれに発生する可能性があります。
28.1.8 StartTLS
11gリリース1 (11.1.1.0.0)以降、Oracle Internet Directoryは、startTLSをサポートしています。この機能を使用すると、非SSLポートでSSLセッションのオンデマンド・ネゴシエーションが有効になります。非SSLポートには特別な構成は必要ありません。
Oracle Internet DirectoryでSSLエンドポイントが構成されている場合、クライアントは非SSLポートでstartTLSを使用して、SSLポートと同じ構成を持つ非SSLポートでSSL接続のネゴシエーションを実行できます。つまり、SSLポートで相互認証を使用する場合、startTLSは非SSLのポートで相互認証のネゴシエーションを実行しようとします。
28.2 Fusion Middleware Controlを使用したSSLの構成の概要
Fusion Middleware Controlを使用してSSLを構成するには、ウォレットを作成し、SSLパラメータを構成し、SSLパラメータを設定します。
この項には次のトピックが含まれます:
28.2.1 Fusion Middleware Controlを使用したSSLの構成
Fusion Middleware Controlを使用したSSLの構成は、3つの基本的なタスクから構成されます。
- Fusion Middleware Controlを使用したウォレットの作成
- Fusion Middleware Controlを使用したSSLパラメータの構成
- Oracle Internet Directoryの再起動。
関連項目:
-
サーバーの停止および起動方法の詳細は、「Oracle Internet Directoryインスタンスの管理」を参照してください。
-
SSLパラメータの詳細は、『Oracle Identity Managementリファレンス』のOracle Internet Directoryの構成スキーマ要素に関する項を参照してください
28.2.2 Fusion Middleware Controlを使用したウォレットの作成
SSLの構成時には、使用する自己署名付きウォレットを作成できます。
次のステップを実行します。
関連項目:
Oracleウォレットの詳細は、『Oracle Fusion Middlewareの管理』のキーストア、ウォレットおよび証明書の管理に関する項を参照してください。
28.2.3 Fusion Middleware Controlを使用したSSLパラメータの構成
Fusion Middleware Controlを使用してSSLパラメータを構成できます。
SSLを構成するためのウォレットを作成した後、次のステップを実行します。
相互認証モードでのSSL有効化のステップは、「SSL設定」ダイアログで「SSL認証」を「サーバー」ではなく相互に設定する点以外同じです。
ノート:
アクティブ・インスタンスのパラメータを直接変更することはできません。
28.2.4 Fusion Middleware ControlによるSSLパラメータ
この項では、Oracle Internet Directoryに適用可能なOracle Enterprise Manager Fusion Middleware ControlのSSLパラメータを示します。
表28-5に、Oracle Internet Directoryに適用可能なOracle Enterprise Manager Fusion Middleware ControlのSSLパラメータを示します。これらはすべて、次の形式の識別名を持つインスタンス固有の構成エントリ内にあります。
"cn=componentname,cn=osdldapd,cn=subconfigsubentry."
ノート:
Oracle Internet DirectoryでTLSを設定しているときは、orclsslversion
の値を変更せず、デフォルト値の3のままにしてください。
表28-5 Fusion Middleware ControlのSSL関連の属性
フィールドまたはヘッダー | 構成属性 |
---|---|
サーバーSSLプロトコル・バージョン |
|
SSLウォレットURL |
|
SSLの有効化 |
|
SSL認証モード |
|
サーバー暗号スイート |
|
SSL構成の変更を有効にするには、サーバーを再起動する必要があります。
28.3 LDAPコマンドを使用したSSLの構成の概要
LDAPコマンドを使用してSSLを構成するには、Oracleウォレットを作成し、SSLパラメータを構成し、Oracle Internet Directoryを再起動します。
この項には次のトピックが含まれます:
28.3.1 LDAPコマンドを使用したSSLパラメータの構成
LDAPコマンドを使用してSSLを構成できます。
SSLを構成するには、次のステップを実行する必要があります。
- Oracleウォレットを作成します。
- SSLパラメータを構成します。
- Oracle Internet Directoryを再起動します。
関連項目:
-
サーバーの停止および起動方法の詳細は、「Oracle Internet Directoryインスタンスの管理」を参照してください
-
SSLパラメータの詳細は、『Oracle Identity Managementリファレンス』のOracle Internet Directoryの構成スキーマ要素に関する項を参照してください
すでにウォレットを作成している場合、ldapmodify
コマンドを使用してSSLパラメータを変更できます。ただし、orapki
を使用してウォレットを作成することもできます。『Oracle Fusion Middlewareの管理』の「orapki」を参照してください(これには、テスト目的で署名証明書を作成するためのコマンド行のステップが記載されています)。
たとえば、インスタンスoid1
についてorclsslinteropmode
の値を1
に変更するには、次のように入力します。
ldapmodify -D cn=orcladmin -q -p portNum -h hostname -f ldifFile
この場合、ldifFile
には次が含まれます。
dn: cn=oid1,cn=osdldapd,cn=subconfigsubentry changetype: modify replace: orclsslinteropmode orclsslinteropmode: 1
SSLパラメータは、インスタンス固有の構成エントリの属性です。これらの構成エントリには、次の形式の識別名があります。
cn=componentname,cn=osdldapd,cn=subconfigsubentry
次に例を示します。
cn=oid1,cn=osdldapd,cn=subconfigsubentry
表28-6にSSL属性を示します。
ldapsearch
コマンドを使用して、SSL属性およびその値をリストできます。たとえば、oid1
インスタンスで文字列orclssl
を含む属性をリストするには、次のように入力します。
ldapsearch -p 3060 -D cn=orcladmin -q \ -b "cn=oid1,cn=osdldapd,cn=subconfigsubentry" \ -s base "objectclass=*" | grep -i orclssl
SSLパラメータを構成した後、「Oracle Internet Directoryインスタンスの管理」の説明に従って、Oracle Internet Directoryを再起動します。
ノート:
Oracle Enterprise Manager Fusion Middleware ControlまたはWLSTを使用してOracle Internet Directoryを管理する場合は、orclsslenable
を1
(SSLのみ)または2
(非SSLおよびSSLモード)に設定してください。
28.3.2 SSL属性
表に、SSL属性とその意味を示します。
表28-6に、SSL属性とその意味を示します。
表28-6 SSL属性
属性 | 意味 |
---|---|
|
SSLバージョン |
|
SSLウォレットURL |
|
SSL有効化 |
|
SSL認証 |
|
SSL相互運用性モード |
|
SSL暗号スイート |
28.4 Oracle Internet DirectoryのSSLの構成
Oracle Internet DirectoryのSSL接続を作成する必要があります。
28.5 SSLが有効なODSM接続の構成
ODSM接続を構成して、Oracle Internet Directoryに対して一方向SSLまたは双方向SSLを使用できます。
ノート:
システムにJava Development Kit (JDK) 1.8.0_201以上がインストールされている場合は、デフォルトでは匿名暗号が無効になっています。
「SSL認証なし」モードでOracle Internet Directory SSLが構成されている場合は、JDKで匿名暗号を有効にする必要があります。java.security
ファイル(JAVA_HOME/lib/security
)を編集して、jdk.tls.disabledAlgorithms
セキュリティ・プロパティからanon
およびNULL
を削除してください。
次のステップを実行して、ODSMウォレットを構成します:
ノート:
Oracle Internet DirectoryのSSL接続が作成されていることを確認してください。「Oracle Internet DirectoryのSSLの構成」を参照してください。-
orapki
ユーティリティを使用して、Oracle Internet Directoryウォレットから信頼性できる証明書をエクスポートします:orapki wallet export -wallet <OID_WALLET_PATH> -dn cn=<OID_HOSTNAME> -cert <CERTIFICATE_FILE_NAME>
『Oracle Fusion Middlewareの管理』のorapki wallet exportに関する項を参照してください。
- 次のコマンドを実行して、自動ログインが有効なODSMウォレットを作成します:
orapki wallet create -wallet <WALLET_PATH> -auto_login
『Oracle Fusion Middlewareの管理』のorapki wallet createに関する項を参照してください。
ノート:
- さきほどエクスポートした信頼できる証明書をOSDMウォレットに追加します:
orapki wallet add -wallet <WALLET_PATH> -trusted_cert -cert <CERTIFICATE_FILE_NAME>
『Oracle Fusion Middlewareの管理』のorapki wallet addに関する項を参照してください。
28.6 Oracle Directory Services Managerを使用したSSL接続のテスト
Oracle Directory Services Managerを使用してSSL接続をテストできます。
次の手順を実行します。
- 「Oracle Directory Services Managerの起動」の説明に従って、ODSMを起動します。
- Oracle Internet Directoryサーバーに接続します。ログイン画面で、SSLを有効化し、SSLポートを指定します。
接続できた場合は、SSL接続は正常に機能しています。
28.7 コマンド行によるSSL接続のテストの概要
ldapbind
コマンドを使用して、SSL接続をテストできます。
UNIXでの構文は、次のとおりです。
ldapbind -D cn=orcladmin -q -U authentication_mode -h host -p SSL_port \ -W "file://DIRECTORY_CONTAINING_WALLET" -Q
Windowsでの構文は、次のとおりです。
ldapbind -D cn=orcladmin -q -U authentication_mode -h host -p SSL_port \ -W "file:device:\DIRECTORY_CONTAINING_WALLET" -Q
ここで、authentication_modeは、次のいずれかです。
数値 | 認証 |
---|---|
1 |
SSL認証なしを必要とします。 |
2 |
一方向(サーバーのみ)のSSL認証を必要とします。 |
3 |
双方向(クライアントとサーバー)のSSL認証を必要とします。 |
関連項目:
『Oracle Identity Managementリファレンス』のldapbind
コマンド行ツールのリファレンス。
この項には次のトピックが含まれます:
28.7.1 暗号化のみのSSLのテスト
SSL認証なしを必要とするSSL構成をテストするには、この方法を使用します。
構文は次のとおりです。
ldapbind -D cn=orcladmin -q -U 1 -h host -p SSL_Port
28.7.2 サーバー認証を必要とするSSLのテスト
SSLサーバー認証の設定されたSSL構成をテストするには、この方法を使用します。クライアントがサーバー認証をリクエストするかどうかは、任意に選択できます。
サーバー認証を使用した匿名バインド用の構文は、次のとおりです。
ldapbind -U 2 -h host -p SSL_Port -W "file:DIRECTORY_CONTAINING_WALLET" -Q
ユーザーcn=orcladmin
、ウォレット・ファイル$DOMAIN_HOME
/config/fmwconfig/components/OID/admin/mywallet
およびサーバー認証を使用したバインド用の構文は、次のとおりです。
ldapbind -D cn=orcladmin -q -U 2 -h SSL_Port -p port \ -W "file:$DOMAIN_HOME/config/fmwconfig/components/OID/admin/mywallet" -Q
SSL認証を使用しないバインド用の構文は、次のとおりです。
ldapbind -D cn=orcladmin -q -U 1 -h host -p SSL_Port
28.7.3 クライアントおよびサーバー認証を必要とするSSLのテスト
SSLクライアントおよびサーバー認証の設定されたSSL構成をテストするには、この方法を使用します。
Oracle Internet Directoryでは、証明書の一致規則がサポートされます。ldapbind
コマンド行で渡される識別名とパスワードは、無視されます。認証に使用されるのは、証明書または証明書ハッシュの識別名のみです。
関連項目:
直接認証。
クライアント証明書のバインド識別名(DN)を使用するための構文は、次のとおりです。
ldapbind -U 3 -h host -p SSL_Port -W "file:DIRECTORY_CONTAINING_WALLET" -Q
28.8 DatabaseとOracle Internet Directoryの間のSSLの構成
次の指示に従って、Oracle DatabaseとOracle Internet Directoryの間のSSL接続を有効化します。
次の順序でステップを実行します。
28.8.1 Oracle Internet Directoryのインスタンスの停止
スクリプトを使用してOracle Internet Directory (OID)インスタンスを停止できます。
OIDインスタンスを停止するには、次のスクリプトを使用します。
$DOMAIN_HOME/bin/stopComponent.sh <instance_name>
28.8.2 ノード・マネージャの停止
スクリプトを使用してノード・マネージャを停止できます。
ノード・マネージャを停止するには、次のスクリプトを使用します。
$DOMAIN_HOME/bin/stopNodeManager.sh
28.8.3 管理サーバーの停止
スクリプトを使用してOracle WebLogic Server管理サーバーを停止できます。
管理サーバーを停止するには、次のスクリプトを使用します。
$DOMAIN_HOME/bin/stopWebLogic.sh
28.8.4 データベース・サーバーでのsqlnet.oraファイルとlistener.oraファイルの変更
SSL通信を有効にするために、データベース・サーバーでlistener.ora
とsqlnet.ora
の構成ファイルを編集する必要があります。
データベース・サーバーでSSLを有効にするには、次のステップを実行します。
-
端末で、次のディレクトリにナビゲートします。
$ cd $DB_HOME/network/admin
-
SSLを有効にするために、
listener.ora
ファイルを変更して、確実にTCPSエントリを追加して、LISTENERセクションの下に特定のポートを割り当てます。LISTENER= (DESCRIPTION= (ADDRESS_LIST= (ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)(PORT=1521)) (ADDRESS=(PROTOCOL=ipc)(KEY=extproc)) (ADDRESS=(PROTOCOL=tcps)(HOST=sales-server)(PORT=1522))))
-
データベース・ウォレットの場所をデータベースのOracleホームの
sqlnet.ora
ファイル内に設定します。wallet_location = (SOURCE= (METHOD=File) (METHOD_DATA= (DIRECTORY=wallet_location)))
-
変更を有効にするために、データベース・サーバーのリスナー・プロセスを再起動します。
lsnrctl stop lsnrctl start
28.8.5 OIDサーバーでのtnsnames.oraとsqlnet.oraの構成ファイルの変更
SSL通信を有効にするために、OIDサーバーでtnsnames.ora
とsqlnet.ora
の構成ファイルを編集する必要があります。
OIDサーバーでSSLを有効にするには、次のステップを実行します。
-
端末で、次のディレクトリにナビゲートします。
$ cd $DOMAIN_HOME/config/fmwconfig/components/OID/config
-
tnsnames.ora
ファイルを編集して、データベースの識別名とSSL付きTCP/IPプロトコルを指定します。finance= (DESCRIPTION=(ADDRESS_LIST=(ADDRESS= (PROTOCOL = tcps) (HOST = finance_server) (PORT = 1575)))(CONNECT_DATA=(SERVICE_NAME= Finance.us.acme.com)) (SECURITY=(SSL_SERVER_CERT_DN="cn=finance,cn=OracleContext,c=us,o=acme"))
-
sqlnet.ora
ファイルを編集して、ウォレットの場所を指定します。SQLNET.AUTHENTICATION_SERVICES = (BEQ, TCPS) SSL_CLIENT_AUTHENTICATION = FALSE SSL_VERSION = 1.2 or 1.1 or 1.0 or 3.0 WALLET_LOCATION = (SOURCE= (METHOD=File) (METHOD_DATA= (DIRECTORY=wallet_location))) SSL_SERVER_DN_MATCH=OFF
28.8.6 管理サーバーでのJAVA_OPTIONS環境変数の設定
同じ端末から管理サーバーを起動する前に、ウォレット情報が含まれるようにJAVA_OPTIONS
環境変数を設定する必要があります。
管理サーバーでJAVA_OPTIONS
環境変数を設定するには、次のステップを実行します。
-
端末で、次のディレクトリにナビゲートします。
$ cd $DOMAIN_HOME/bin
-
ウォレット情報が含まれるように
JAVA_OPTIONS
環境変数を設定します。-
SSL認証なしモードとSSLサーバー認証モードの場合:
export JAVA_OPTIONS="-Djavax.net.ssl.trustStore=<wallet_location>/cwallet.sso -Djavax.net.ssl.trustStoreType=SSO"
-
SSL相互認証モードの場合:
export JAVA_OPTIONS="-Djavax.net.ssl.trustStore=<wallet_location>/cwallet.sso -Djavax.net.ssl.trustStoreType=SSO -Djavax.net.ssl.keyStore=<wallet_location>/cwallet.sso -Djavax.net.ssl.keyStoreType=SSO"
ノート:
キーストアに、サーバーに送信されるクライアント証明書が含まれているときは、トラストストアによってサーバー側の証明書が検証されます。 -
-
管理サーバーを起動します。
$ ./startWeblogic.sh
28.8.7 ノード・マネージャでのJAVA_OPTIONS環境変数の設定
同じ端末からノード・マネージャを起動する前に、ウォレット情報が含まれるようにJAVA_OPTIONS
環境変数を設定する必要があります。
ノード・マネージャでJAVA_OPTIONS
環境変数を設定するには、次のステップを実行します。
-
端末で、次のディレクトリにナビゲートします。
$ cd $DOMAIN_HOME/bin
-
ウォレット情報が含まれるように
JAVA_OPTIONS
環境変数を設定します。-
SSL認証なしモードとSSLサーバー認証モードの場合:
export JAVA_OPTIONS="-Djavax.net.ssl.trustStore=<wallet_location>/cwallet.sso -Djavax.net.ssl.trustStoreType=SSO"
-
SSL相互認証モードの場合:
export JAVA_OPTIONS="-Djavax.net.ssl.trustStore=<wallet_location>/cwallet.sso -Djavax.net.ssl.trustStoreType=SSO -Djavax.net.ssl.keyStore=<wallet_location>/cwallet.sso -Djavax.net.ssl.keyStoreType=SSO"
ノート:
キーストアに、サーバーに送信されるクライアント証明書が含まれているときは、トラストストアによってサーバー側の証明書が検証されます。 -
-
ノード・マネージャを起動します。
$ ./startNodeManager.sh