28 Secure Sockets Layer (SSL)の構成

この章では、Oracle Enterprise Manager Fusion Middleware ControlおよびLDAPコマンド行ユーティリティを使用するためにSecure Sockets Layer (SSL)を構成する方法について説明します。また、Oracle Directory Services Manager (ODSM)およびLDAPコマンド行ユーティリティを使用してSSL接続をテストする方法や、11gリリース1 (11.1.1.0.0)より前に開発されたOracleコンポーネントとの互換性を確保するためにSSL相互運用性モードを設定する方法についても説明します。

Oracle Internet DirectoryでSSLを使用する場合、厳密認証、データ整合性およびデータ・プライバシも構成できます。

この章の内容は次のとおりです。

関連項目:

28.1 Secure Sockets Layer (SSL)の構成の概要

Oracle Internet Directoryは、Secure Sockets Layer (SSL)を使用して、送信中にデータが変更、削除または再現されていないことを保証します。SSLは、暗号化チェックサムを使用して、暗号方式のセキュアなメッセージダイジェストを生成し、ネットワーク上で送信される各パケットに組み込みます。SSLでは、メッセージ・ダイジェストを使用して認証、暗号化、データ整合性を提供します。

この概要の項目は次のとおりです。

Oracle Internet Directoryは、SSLとともに使用可能な公開キーの暗号化を使用して、送信中にデータが開示されていないことを保証します。公開キー暗号では、メッセージの送信側が受信側の公開キーを使用してメッセージを暗号化します。メッセージが送達されると、受信側は、受信側の秘密キーを使用して、メッセージを復号化します。

28.1.1 サポートされている暗号スイート

暗号スイートは、ネットワーク・ノード間のメッセージ交換に使用される認証、暗号化およびデータ整合性アルゴリズムのセットです。SSLハンドシェイク時に、2つのノード間で折衝し、メッセージを送受信するときに使用する暗号スイートを確認します。

次の表に、Oracle Internet DirectoryでサポートされるTLS暗号スイートと、それぞれに対応する認証、暗号化およびデータ整合性のメカニズムを示します。これらは、インスタンス固有の構成エントリの属性orclsslciphersuiteに格納されています。

ノート:

システムにJava Development Kit (JDK) 17以降がインストールされていることを確認してください。

表28-1 Oracle Internet DirectoryでサポートされるTLS暗号スイート

暗号スイート 認証 暗号化 データ整合性 TLSの互換性
TLS_AES_128_CCM_SHA256 ECDHE_RSA, DHE_RSA, ECDHE_ECDSA AES 128 CCM SHA256 (SHA 2) TLS 1.3
TLS_AES_128_GCM_SHA256 ECDHE_RSA, DHE_RSA, ECDHE_ECDSA AES 128 GCM SHA256 (SHA-2) TLS 1.3
TLS_AES_256_GCM_SHA384 ECDHE_RSA, DHE_RSA, ECDHE_ECDSA AES 256 GCM SHA384 (SHA-2) TLS 1.3
TLS_CHACHA20_POLY1305_SHA256 (FIPS以外のみ) ECDHE_RSA, DHE_RSA, ECDHE_ECDSA CHACHA20/ POLY1305 SHA256 (SHA-2) TLS 1.3
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 DHE_RSA AES 128 GCM SHA256 (SHA-2) TLS 1.2
TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 DHE_RSA AES 256 GCM SHA384 (SHA-2) TLS 1.2
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 ECDHE_ECDSA AES 128 GCM SHA256 (SHA-2) TLS 1.2
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 ECDHE_ECDSA AES 256 GCM SHA384 (SHA-2) TLS 1.2
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 ECDHE_RSA AES 128 GCM SHA256 (SHA-2) TLS 1.2
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 ECDHE_RSA AES 256 GCM SHA384 (SHA-2) TLS 1.2

次の表に、レガシー製品のOracle Internet Directoryでサポートされるセキュリティの低いTLS暗号スイートと、それぞれに対応する認証、暗号化およびデータ整合性メカニズムを示します。

表28-2 レガシー製品のOracle Internet DirectoryでサポートされるTLS暗号スイート

暗号スイート 認証 暗号化 データ整合性 TLSの互換性
TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 DHE_RSA AES 128 CBC SHA256 (SHA-2) TLS 1.2
TLS_DHE_RSA_WITH_AES_256_CBC_SHA DHE_RSA AES 256 CBC SHA (SHA-1) TLS 1.2
TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 DHE_RSA AES 256 CBC SHA256 (SHA-2) TLS 1.2
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA ECDHE_ECDSA AES 128 CBC SHA (SHA-1) TLS 1.2
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 ECDHE_ECDSA AES 128 CBC SHA256 (SHA-2) TLS 1.2
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA ECDHE_ECDSA AES 256 CBC SHA (SHA-1) TLS 1.2
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 ECDHE_ECDSA AES 256 CBC SHA384 (SHA-2) TLS 1.2
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA ECDHE_RSA AES 128 CBC SHA (SHA-1) TLS 1.2
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 ECDHE_RSA AES 128 CBC SHA256 (SHA-2) TLS 1.2
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA ECDHE_RSA AES 256 CBC SHA (SHA-1) TLS 1.2
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 ECDHE_RSA AES 256 CBC SHA384 (SHA-2) TLS 1.2
TLS_RSA_WITH_AES_128_CBC_SHA RSA AES 128 CBC SHA (SHA-1) TLS 1.2
TLS_RSA_WITH_AES_128_CBC_SHA256 RSA AES 128 CBC SHA256 (SHA-2) TLS 1.2
TLS_RSA_WITH_AES_128_GCM_SHA256 RSA AES 128 GCM SHA256 (SHA-2) TLS 1.2
TLS_RSA_WITH_AES_256_CBC_SHA RSA AES 256 CBC SHA (SHA-1) TLS 1.2
TLS_RSA_WITH_AES_256_CBC_SHA256 RSA AES 256 CBC SHA256 (SHA-2) TLS 1.2
TLS_RSA_WITH_AES_256_GCM_SHA384 RSA AES 256 GCM SHA384 (SHA-2) TLS 1.2

ノート:

デフォルトでは、匿名暗号は使用可能になっていません。必要な場合は、Oracle Fusion MiddlewareシステムMBeanブラウザを使用して、TLS_DH_anon_WITH_AES_256_GCM_SHA384TLS_DH_anon_WITH_AES_128_GCM_SHA256およびSSL_DH_anon_WITH_3DES_EDE_CBC_SHAの暗号スイートをOracle Internet Directory構成に追加できます。

28.1.2 サポートされているプロトコルのバージョン

このトピックでは、有効なすべてのプロトコルとその属性値のリストをマップしています。

ノート:

OIDサーバー・インスタンスの即時利用可能なデフォルトのSSL構成では、orclcryptoversionの値は48に設定されています。つまり、TLSv1.2およびTLSv1.3はデフォルトで有効になっています。

Oracle Internet Directoryでは、次のTLSプロトコルをサポートしています。

  • TLSv1.2

  • TLSv1.3

ノート:

Oracle Internet Directoryでは、SSLv2、SSLv3、TLSv1.0およびTLSv1.1をサポートしていません。

orclcryptoversion属性を使用してTLSバージョンを指定できます。

orclcryptoversion属性によって、対応する値を指定して属性に移入することで、複数のプロトコルを有効化できます。

表28-3に、プロトコル・マッピングとその対応する値を示します。

orclcryptoversionの値を32 (プロトコル・マッピング表のTLS 1.3の値)に更新して、TLS 1.2を完全に無効にできます。

orclcryptoversionの値を32に変更するには、次のように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: 32

表28-3 プロトコル・マッピング

有効化されるプロトコル 属性値

サポートされているすべてのプロトコル

0

TLS 1.2

16

TLS 1.3

32

TLS 1.2またはTLS 1.3

48

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 14cインストーラは特定のステップに従って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認証なしモード、機密保護モード

1

クライアントとサーバーのいずれも、相手に対して自己認証を行いません。証明書も送信または交換されません。SSL暗号化および復号化のみが使用されます。

ノート:

「SSL認証なし」モードでOracle Internet Directory SSLが構成されている場合は、Javaクライアントに対して匿名暗号を有効にして、Oracle Internet Directoryと通信する必要があります。

SSLサーバー認証のみモード

32

ディレクトリ・サーバーが、クライアントに対して自己認証を行います。ディレクトリ・サーバーは、そのサーバーのアイデンティティを示す証明書をクライアントに送信します。

SSLクライアントとサーバーの認証モード

64

クライアントとサーバーは相互に自己認証を行い、それぞれ相手側に証明書を送信します。

ノート:

システムに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から削除してください。

orclsslwalleturlは、SSL構成サービスで抽出されるため、WLSTおよびOracle Enterprise Manager Fusion Middleware Controlで直接操作する必要はありません。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に接続できます。

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

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つの基本的なタスクから構成されます。

次に示すステップに従います。
  1. Fusion Middleware Controlを使用したウォレットの作成
  2. Fusion Middleware Controlを使用したSSLパラメータの構成
  3. Oracle Internet Directoryの再起動。

関連項目:

28.2.2 Fusion Middleware Controlを使用したウォレットの作成

SSLの構成時には、使用する自己署名付きウォレットを作成できます。

次のステップを実行します。

  1. Oracle Internet Directory」メニューから、「セキュリティ」「ウォレット」を選択します。ウォレットが存在する場合、リストが表示されます。
  2. 新規ウォレットを作成するには、「自己署名付きウォレットの作成」を選択します。「自己署名付きウォレットの作成」ページが表示されます。
    「自己署名付きウォレットの作成」ページ
  3. 「自己署名付きウォレットの作成」ページで、小文字のみを使用して新規ウォレットの名前を入力します。
  4. 自動ログイン・ウォレットの場合、「自動ログイン」を選択します。Oracle Internet Directory用に構成されたウォレットは、自動ログインが有効になっている必要があります。
  5. 「自動ログイン」の選択を解除した場合、2つのフィールドにパスワードを入力します。
  6. 「共通名」に、インスタンスのホスト名を入力します。
  7. リストからキー・サイズを選択します。
  8. 「送信」をクリックします。
  9. 確認メッセージが表示され、新しいウォレットがウォレットのリストに表示されます。
    「確認」ページ

関連項目:

Oracleウォレットの詳細は、『Oracle Fusion Middlewareの管理』キーストア、ウォレットおよび証明書の管理に関する項を参照してください。

28.2.3 Fusion Middleware Controlを使用したSSLパラメータの構成

Fusion Middleware Controlを使用してSSLパラメータを構成できます。

SSLを構成するためのウォレットを作成した後、次のステップを実行します。

  1. Oracle Internet Directory」メニューから「管理」を選択し、「サーバー・プロパティ」を選択します。
  2. 「SSL設定の変更」をクリックします。
  3. 「SSL設定」ダイアログで、次の操作を実行します。
    • 「SSLの有効化」を選択します。

    • ウォレットを選択します。

    • これが自動ログイン・ウォレットでない場合、ウォレット・パスワードを「サーバー・ウォレット・パスワード」フィールドに入力します。

    • 必要に応じて、「拡張SSL設定」を展開します。

    • 「SSL認証」を「サーバー」に設定します。

    • 「暗号スイート」を「すべて」に設定します。

    • 「SSLプロトコル・バージョン」を適切なバージョン(通常「v3」)に設定します。

    • 「OK」をクリックします。

    ノート:

    現在、TLS v1.1およびTLS v1.2プロトコルとそれに対応する暗号をOID Enterprise Manager Fusion Middleware Controlから構成する方法はありません。回避策として、ldapmodifyコマンドを使用してorclcryptoversion属性を変更できます。「サポートされているプロトコルのバージョン」を参照してください。

  4. 「Oracle Internet Directory」「可用性」「再起動」の順に移動して、Oracle Internet Directoryインスタンスを再起動します。

相互認証モードでの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プロトコル・バージョン

orclsslversion

SSLウォレットURL

orclsslwalleturl

SSLの有効化

orclsslenable

SSL認証モード

orclsslauthentication

サーバー暗号スイート

orclsslciphersuite

SSL構成の変更を有効にするには、サーバーを再起動する必要があります。

28.3 LDAPコマンドを使用したSSLの構成の概要

LDAPコマンドを使用してSSLを構成するには、Oracleウォレットを作成し、SSLパラメータを構成し、Oracle Internet Directoryを再起動します。

この項には次のトピックが含まれます:

28.3.1 LDAPコマンドを使用したSSLパラメータの構成

LDAPコマンドを使用してSSLを構成できます。

SSLを構成するには、次のステップを実行する必要があります。

  1. Oracleウォレットを作成します。
  2. SSLパラメータを構成します。
  3. 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を管理する場合は、orclsslenable1 (SSLのみ)または2 (非SSLおよびSSLモード)に設定してください。

28.3.2 SSL属性

表に、SSL属性とその意味を示します。

表28-6に、SSL属性とその意味を示します。

表28-6 SSL属性

属性 意味

orclsslversion

SSLバージョン

orclsslwalleturl

SSLウォレットURL

orclsslenable

SSL有効化

orclsslauthentication

SSL認証

orclsslinteropmode

SSL相互運用性モード

orclsslciphersuite

SSL暗号スイート

28.4 Oracle Internet DirectoryのSSLの構成

Oracle Internet DirectoryのSSL接続を作成する必要があります。

SSL接続を作成するには、次のステップを実行します:
  1. 次のコマンドを実行して、auto_loginが有効なウォレットを作成します:

    orapki wallet create -wallet <WALLET_PATH> -auto_login

  2. 次のコマンドを実行して、作成したウォレット内に自己署名付きルート証明書を追加します:

    orapki wallet add -wallet <WALLET_PATH> -dn cn=<OID_HOSTNAME> -keysize 2048 -self_signed -validity 3650 -pwd <WALLET_PASSWORD> -sign_alg sha256

    ノート:

    信頼できるサード・パーティCAによって生成された証明書を追加する場合は、「orapkiユーティリティ・コマンドのサマリー」を参照してください。
  3. OID構成cn=oid1,cn=osdldapd,cn=subconfigsubentryを変更して、SSLの有効化や暗号スイートの追加などを行います。
  4. Oracle Internet Directoryを再起動します。
  5. 次のコマンドを実行してSSL構成をテストします:

    ldapbind -h <OID_HOSTNAME> -p <OID_SLL_PORT> -D cn=orcladmin -w <OID_ADMIN_PASSWORD> -U 2 -W 'file:<WALLET_PATH>' -P <WALLET_PASSWORD>

  6. ODSMで、ステップ2の指定に従ってホスト名を指定して、OID接続を作成します。

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の構成」を参照してください。
  1. 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に関する項を参照してください。

  2. 次のコマンドを実行して、自動ログインが有効なODSMウォレットを作成します:
    orapki wallet create -wallet <WALLET_PATH> -auto_login

    『Oracle Fusion Middlewareの管理』orapki wallet createに関する項を参照してください。

    ノート:

  3. さきほどエクスポートした信頼できる証明書を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接続をテストできます。

次の手順を実行します。

  1. 「Oracle Directory Services Managerの起動」の説明に従って、ODSMを起動します。
  2. 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接続を有効化します。

次の順序でステップを実行します。

  1. Oracle Internet Directoryのインスタンスの停止

  2. ノード・マネージャの停止

  3. 管理サーバーの停止

  4. データベース・サーバーでのsqlnet.oraファイルとlistener.oraファイルの変更

  5. OIDサーバーでのtnsnames.oraとsqlnet.oraの構成ファイルの変更

  6. 管理サーバーでのJAVA_OPTIONS環境変数の設定

  7. ノード・マネージャでのJAVA_OPTIONS環境変数の設定

  8. Oracle Internet Directoryのインスタンスの再起動

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.orasqlnet.oraの構成ファイルを編集する必要があります。

データベース・サーバーでSSLを有効にするには、次のステップを実行します。

  1. 端末で、次のディレクトリにナビゲートします。

    $ cd $DB_HOME/network/admin
  2. 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))))
  3. データベース・ウォレットの場所をデータベースのOracleホームのsqlnet.oraファイル内に設定します。

    wallet_location = (SOURCE= (METHOD=File) (METHOD_DATA= (DIRECTORY=wallet_location)))
  4. 変更を有効にするために、データベース・サーバーのリスナー・プロセスを再起動します。

    lsnrctl stop
    lsnrctl start

28.8.5 OIDサーバーでのtnsnames.oraとsqlnet.oraの構成ファイルの変更

SSL通信を有効にするために、OIDサーバーでtnsnames.orasqlnet.oraの構成ファイルを編集する必要があります。

OIDサーバーでSSLを有効にするには、次のステップを実行します。

  1. 端末で、次のディレクトリにナビゲートします。

    $ cd $DOMAIN_HOME/config/fmwconfig/components/OID/config
  2. 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"))
  3. 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環境変数を設定するには、次のステップを実行します。

  1. 端末で、次のディレクトリにナビゲートします。

    $ cd $DOMAIN_HOME/bin
  2. ウォレット情報が含まれるように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"

    ノート:

    キーストアに、サーバーに送信されるクライアント証明書が含まれているときは、トラストストアによってサーバー側の証明書が検証されます。
  3. 管理サーバーを起動します。

    $ ./startWeblogic.sh

28.8.7 ノード・マネージャでのJAVA_OPTIONS環境変数の設定

同じ端末からノード・マネージャを起動する前に、ウォレット情報が含まれるようにJAVA_OPTIONS環境変数を設定する必要があります。

ノード・マネージャでJAVA_OPTIONS環境変数を設定するには、次のステップを実行します。

  1. 端末で、次のディレクトリにナビゲートします。

    $ cd $DOMAIN_HOME/bin
  2. ウォレット情報が含まれるように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"

    ノート:

    キーストアに、サーバーに送信されるクライアント証明書が含まれているときは、トラストストアによってサーバー側の証明書が検証されます。
  3. ノード・マネージャを起動します。

    $ ./startNodeManager.sh

28.8.8 Oracle Internet Directoryのインスタンスの再起動

スクリプトを使用してOracle Internet Directoryのインスタンスを起動できます。

Oracle Internet Directoryを再起動するには、次のスクリプトを使用します。

$DOMAIN_HOME/bin/startComponent.sh <instance-name>