機械翻訳について

双方向のSSLベース統合用キーストア・ファイルの作成

双方向のSSL対応サーバーと通信する統合を作成する必要がある場合は、双方向のSSLベースの統合を容易にするために、Oracle Integrationアイデンティティの確立に必要なキーストア・ファイルを作成する必要があります。

双方向SSL対応サーバーでホストされている外部REST APIを使用する統合を作成するには、外部REST APIがホストされているサーバーが双方向SSLサポートに対して有効になっていることを確認します。 Javaバージョン1.8以上を使用します。

クライアント証明書は様々な方法で取得できます。 環境に最適なメソッドを選択します。 たとえば、多くの認証局から証明書を直接取得できます。 この項のステップでは、証明書署名リクエスト(CSR)を生成し、既知の認証局によって署名する方法について説明します。

ノート:

  • この項では、アウトバウンド双方向SSL統合で使用するためにOracle Integrationを構成する方法について説明します。 インバウンド双方向SSL統合でOracle Integrationを使用するには、Oracle Cloud Infrastructure APIゲートウェイを使用できます。 Oracle Cloud Infrastructure APIゲートウェイは、Oracle Cloud Infrastructure証明書サービスと統合されています。 この方法では、クライアントmTLSを強制するOracle Integrationで実装されたAPIを提供できます。
  • 接続エージェントを介した外部サービスへのコールでは、双方向SSLはサポートされていません。 双方向SSLには、接続エージェントなしでOracle Integrationからの直接接続が必要です。
  • 指定する別名は、JKSファイルの秘密キー・エントリに指定された名前と一致する必要があります。

blogおよび「APIデプロイメントへのmTLSサポートの追加」を参照してください。

よく使用される用語とツール

用語 説明
Secure Socket Layer (SSL)およびTransport Layer Security (TLS) SSLおよびTLS(後継)は、ネットワーク接続されたコンピュータ間で認証および暗号化されたリンクを確立するためのプロトコルです。
デジタル証明書 信頼できる認証局によって組織またはエンティティに提供される暗号化キーを保持するデータ・ファイル。 単純な類似性は運転免許証です。 ライセンスは、発行先の個人を一意に識別します。 ライセンスは、信頼できる認証局であるDMVによって発行されます。
証明書 公開キーと秘密キーは、データの暗号化と復号化に使用されるペアを形成します。 公開キーは、データを安全に交換する必要があるすべてのユーザーに自由に付与できます。 秘密キーは共有しないでください。また、安全に格納する必要があります。 秘密キーがリストされているか危険にさらされた場合は、発行元の認証局に通知して、証明書失効リストに追加できるようにする必要があります。
認証局(または認証局) デジタル証明書を発行するエンティティ。 デジタル証明書は、証明書の名前付きサブジェクトによって公開キーの所有権を証明します。
証明書のエンコーディング/形式
  • プライバシ強化メール(PEM): PEMの完全な仕様はRFC 7468にあります。 PEMは、最も一般的に使用されるX509証明書形式です。 次で囲まれたbase64エンコード文字列です:-----BEGIN CERTIFICATE----------END CERTIFICATE-----
  • 識別エンコーディング・ルール(DER): バイナリ形式。 エディタでは表示できません。
  • Public Key Cryptography Standards (PKCS): これらは、RSA Security LLCによって開発および公開された公開キー暗号化標準のグループです。 https://datatracker.ietf.org/wg/pkix/documents/を参照してください。
TrustStore 信頼証明書または公開証明書用のパスワードで保護されたリポジトリ。 Javaのデフォルトのロケーションは$JAVA_HOME/jre/lib/security/cacertsです。 よく知られているすべての認証局ルート証明書および中間証明書は、JDKトラストストアで使用できます。
キーストア クライアント証明書またはプライベート証明書を保持するパスワードで保護されたリポジトリ。 このストアは秘密キーを保持するため、ストアがセキュアなロケーションに存在することが重要です。
証明書チェーン 証明書チェーンは、ルート証明書で終わる証明書の順序付きリストです。 信頼を確立するために、証明書チェーン全体がトラバースされます。 各証明書は、ルート証明書に到達するまで、次の発行認証局または中間認証局の公開キーを検索することによって検証されます。 証明書チェーンは通常、証明書をローカルで検証するためにキャッシュされます。
SSLで最も一般的に使用されるツールは次の2つです:
ツール 説明
keytool トラストストアおよびキーストアでCRUD操作を実行し、証明書を管理するために使用されるJDKユーティリティ。 すべてのコマンドには、ストアの作成に使用されたパスワードが必要です。 デフォルトのパスワードについては、Javaトラストストアのドキュメントを参照してください。
openssl これは、TLSおよびSSLプロトコル用の堅牢で商用グレードのフル機能ツールキットです。 また、汎用暗号化ライブラリでもあります。

keytoolユーティリティを使用してクライアント証明書を作成するコマンド

一般的に使用されるkeytoolコマンドは次のとおりです。

注意:

次のコマンドのイタリック体の変数を、ご使用の環境に適した値に置き換えます。
説明 コマンド
ストアのコンテンツ全体をリスト keytool -list -keystore path_to_the_keystore
特定の別名のストア内のコンテンツをリスト keytool -list -keystore path_to_the_keystore -alias alias_name
証明書の内容の表示 keytool -printcert -v -file name_of_the_file
ストアからの証明書のエクスポート keytool -export -alias alias_name -file certificate_name -keystore path_to_the_store
新しい証明書をストアにインポート keytool -import -trustcacerts -file path_to_the_certificate -alias alias_name -keystore path_to_the_store

クライアント証明書を作成するには:

注意:

イタリック体の変数は、特定の値を指定する必要があるプレースホルダー変数を示します。 次のコマンドをコピーする場合は、イタリック体で示されている変数を環境に適した値に置き換えてください。
  1. Java binディレクトリに移動します。
    %JAVA_HOME%/jre/bin
  2. 次のコマンドを入力して、証明書を保持するJKSキーストアを作成します。
    keytool -genkey -keyalg RSA -alias alias_name -keystore identityKeystore.jks -storepass password_for_the_keystore -validity 360 -keysize 2048
  3. プロンプトが表示されたら、会社のセキュリティ・ポリシーに基づいて指定された値を変更します。
    
    What is your first and last name?
      [Unknown]:  <FQDN>
    What is the name of your organizational unit?
      [Unknown]:  Your_functional_org
    What is the name of your organization?
      [Unknown]:  Company
    What is the name of your City or Locality?
      [Unknown]:  City_name
    What is the name of your State or Province?
      [Unknown]:  State_name
    What is the two-letter country code for this unit?
      [Unknown]:  US
    Is CN=<>, OU=<>, O=<>, L=Redwood Shores, ST=California, C=US correct?
      [no]:  yes 
    Enter key password for <oicclient>
            (RETURN if same as keystore password):
    
  4. JKSキーストア・ファイルの存在を確認します。
    ls
  5. 署名の準備ができている証明書を作成します。
    
    keytool -certreq -alias alias_name -keystore name_of_keystore -storepass password -storetype JKS -file name_of_csr_certificate.csr
    
  6. ディレクトリ内のJKSキーストアおよび証明書ファイルをリストします。
    
    ls
    
  7. 次のサイトでCSRファイルを検証します。
    https://ssltools.digicert.com/checker/views/csrCheck.jsp
  8. .csr証明書ファイルを署名局に提供します。 署名付き証明書とルート証明書および中間証明書は署名され、機関によって返されます。 自己署名証明書はテストに使用できますが、本番環境では使用できません。
  9. ルート証明書と中間証明書がある場合は、次のサブステップを実行します。 それ以外の場合は、ステップ10に進みます。
    1. ルート証明書がある場合は、次のコマンドを入力して署名付きルート証明書をインポートします。
      keytool -import -keystore keystore_name -file path_to_root_certificate -alias root_alias_name

      次の例は、DigiCertルート証明書のインポート時に表示される内容です。

      
      Enter keystore password: 
      Owner: CN=DigiCert Global Root CA, OU=www.digicert.com, O=DigiCert Inc, C=US
      Issuer: CN=DigiCert Global Root CA, OU=www.digicert.com, O=DigiCert Inc, C=US
      Serial number: 83be056904246b1a1756ac95991c74a
      Valid from: Thu Nov 09 16:00:00 PST 2006 until: Sun Nov 09 16:00:00 PST 2031
      Certificate fingerprints:
           MD5:  79:E4:A9:84:0D:7D:3A:96:D7:C0:4F:E2:43:4C:89:2E
           SHA1: A8:98:5D:3A:65:E5:E5:C4:B2:D7:D6:6D:40:C6:DD:2F:B1:9C:54:36
           SHA256: 43:48:A0:E9:44:4C:78:CB:26:5E:05:8D:5E:89:44:B4:D8:4F:96:62:BD:26:DB:25:7F:89:34:A4:43:C7:01:61
           Signature algorithm name: SHA1withRSA
           Version: 3Extensions:#1: ObjectId: 2.5.29.35 Criticality=false
      AuthorityKeyIdentifier [
      KeyIdentifier [
      0000: 03 DE 50 35 56 D1 4C BB   66 F0 A3 E2 1B 1B C3 97  ..P5V.L.f.......
      0010: B2 3D D1 55                                        .=.U
      ]
      ]#2: ObjectId: 2.5.29.19 Criticality=true
      BasicConstraints:[
        CA:true
        PathLen:2147483647
      ]#3: ObjectId: 2.5.29.15 Criticality=true
      KeyUsage [
        DigitalSignature
        Key_CertSign
        Crl_Sign
      ]#4: ObjectId: 2.5.29.14 Criticality=false
      SubjectKeyIdentifier [
      KeyIdentifier [
      0000: 03 DE 50 35 56 D1 4C BB   66 F0 A3 E2 1B 1B C3 97  ..P5V.L.f.......
      0010: B2 3D D1 55                                        .=.U
      ]
      ]Trust this certificate? [no]:  yes
      Certificate was added to keystore
    2. 中間証明書がある場合は、次のコマンドを入力して署名付き中間証明書をインポートします。
      keytool -import -keystore keystore_name -file path_to_intermediate_certificate -alias intermediate_certificate_alias
       
      Enter keystore password: replace_with_strong_password
      Certificate was added to keystore
  10. 単一の証明書しかない場合は、次のコマンドを入力して署名付き証明書をインポートします。
    keytool -import -keystore keystore_name -file path_to_signed_certificate -alias the_same_alias_used_to_create_the_keystore
    
    Enter keystore password: replace_with_strong_password
    Certificate was added to keystore
  11. すべての証明書がストアにあるかどうかを確認します。
    keytool -list -keystore
  12. 公開証明書をエクスポートします。
    keytool -export -alias certificate_alias -keystore identity_keystore -file your_public_certificate_filename
    Enter keystore password: replace_with_strong_password 
    
  13. 公開証明書をエクスポートしてサーバーに提供します。
    keytool -export -alias certificate_alias -keystore identityKeystore.jks -file your_public_certificate_filename
    Enter keystore password: 
    Certificate stored in file your_public_certificate_filename
  14. 新しいキーストアをX509アイデンティティ証明書としてOracle Integrationにインポートします。
  15. ストアのコンテンツ全体をリストします。
    keytool -list -keystore path_to_the_keystore

例: keytoolユーティリティを使用したクライアント証明書の作成

この項では、クライアント証明書の作成方法の例を示します。 実際のファイル名が使用されます。 これらの名前を、使用している環境に適した値に置き換えます。

  1. 次のコマンドを入力して、証明書を保持するJKSキーストアを作成します。
    keytool -genkey -keyalg RSA -alias oicclient -keystore identityKeystore.jks -storepass replace_with_strong_password -validity 360 -keysize 2048 
    
    この例では、次の値を入力します:
    • -aliasは、oicclientキーストアの別名です。
    • -keystoreは、identityKeystore.jksキーストア・ファイルです。
  2. プロンプトが表示されたら、会社のセキュリティ・ポリシーに基づいて指定された値を変更します。
    
    What is your first and last name?
      [Unknown]:  Joe Smith
    What is the name of your organizational unit?
      [Unknown]:  Development
    What is the name of your organization?
      [Unknown]:  GlobalChips
    What is the name of your City or Locality?
      [Unknown]:  Redwood Shores
    What is the name of your State or Province?
      [Unknown]:  California
    What is the two-letter country code for this unit?
      [Unknown]:  US
    Is CN=<>, OU=<>, O=<>, L=Redwood Shores, ST=California, C=US correct?
      [no]:  yes 
    Enter key password for oicclient
            (RETURN if same as keystore password):
    
  3. JKSキーストア・ファイルの存在を確認します。
    ls
  4. 署名の準備ができている証明書を作成します。
    
    keytool -certreq -alias oicclient -keystore identityKeystore.jks -storepass replace_with_strong_password  -storetype JKS -file oicclient.csr
    
    この例では、次の値を入力します:
    • -aliasは、oicclientキーストアの別名です。
    • -keystoreは、identityKeystore.jksキーストア・ファイルです。
    • -fileは、oicclient.csr証明書ファイルです。
  5. ディレクトリ内のJKSキーストアおよび証明書ファイルをリストします。
    
    ls
    oicclient.csr  identityKeystore.jks
    
  6. 次のサイトで.csr証明書ファイルを検証します。
    https://ssltools.digicert.com/checker/views/csrCheck.jsp
  7. .csr証明書ファイルを署名局に提供します。 証明書とルート証明書および中間証明書は署名され、機関によって返されます。 自己署名証明書はテストに使用できますが、本番環境では使用できません。
  8. ルート証明書と中間証明書がある場合は、次のサブステップを実行します。 それ以外の場合は、ステップ9に進みます。
    1. ルート証明書がある場合は、次のコマンドを入力して署名付きルート証明書をインポートします。
      keytool -import -keystore identityKeystore.jks -file DigiCertGlobalRootCA.crt -alias DigiCertCARoot
      この例では、次の値を入力します:
      • -keystoreは、identityKeystore.jksキーストア・ファイルです。
      • -fileは、DigiCertGlobalRootCA.crt署名付きルート証明書ファイルです。
      • -aliasDigiCertCARoot別名です。
      
      Enter keystore password: replace_with_strong_password
      Owner: CN=DigiCert Global Root CA, OU=www.digicert.com, O=DigiCert Inc, C=US
      Issuer: CN=DigiCert Global Root CA, OU=www.digicert.com, O=DigiCert Inc, C=US
      Serial number: 83be056904246b1a1756ac95991c74a
      Valid from: Thu Nov 09 16:00:00 PST 2006 until: Sun Nov 09 16:00:00 PST 2031
      Certificate fingerprints:
           MD5:  79:E4:A9:84:0D:7D:3A:96:D7:C0:4F:E2:43:4C:89:2E
           SHA1: A8:98:5D:3A:65:E5:E5:C4:B2:D7:D6:6D:40:C6:DD:2F:B1:9C:54:36
           SHA256: 43:48:A0:E9:44:4C:78:CB:26:5E:05:8D:5E:89:44:B4:D8:4F:96:62:BD:26:DB:25:7F:89:34:A4:43:C7:01:61
           Signature algorithm name: SHA1withRSA
           Version: 3Extensions:#1: ObjectId: 2.5.29.35 Criticality=false
      AuthorityKeyIdentifier [
      KeyIdentifier [
      0000: 03 DE 50 35 56 D1 4C BB   66 F0 A3 E2 1B 1B C3 97  ..P5V.L.f.......
      0010: B2 3D D1 55                                        .=.U
      ]
      ]#2: ObjectId: 2.5.29.19 Criticality=true
      BasicConstraints:[
        CA:true
        PathLen:2147483647
      ]#3: ObjectId: 2.5.29.15 Criticality=true
      KeyUsage [
        DigitalSignature
        Key_CertSign
        Crl_Sign
      ]#4: ObjectId: 2.5.29.14 Criticality=false
      SubjectKeyIdentifier [
      KeyIdentifier [
      0000: 03 DE 50 35 56 D1 4C BB   66 F0 A3 E2 1B 1B C3 97  ..P5V.L.f.......
      0010: B2 3D D1 55                                        .=.U
      ]
      ]Trust this certificate? [no]:  yes
      Certificate was added to keystore
    2. 中間証明書がある場合は、次のコマンドを入力して署名付き中間証明書をインポートします。
      keytool -import -keystore identityKeystore.jks -file DigiCertGlobalInterCA.crt -alias DigiCertCAInter
      この例では、次の値を入力します:
      • -keystoreは、identityKeystore.jksキーストア・ファイルです。
      • -fileは、DigiCertGlobalInterCA.crt署名付き中間証明書です。
      • -aliasDigiCertCAInter別名です。
       
      Enter keystore password: replace_with_strong_password
      Certificate was added to keystore
  9. 単一の証明書しかない場合は、次のコマンドを入力して署名付き証明書をインポートします。
    keytool -import -keystore identityKeystore.jks -file my_company_signedcert.pem -alias oiclient
    この例では、次の値を入力します:
    • -keystoreは、identityKeystore.jksキーストア・ファイルです。
    • -fileは、my_company_signedcert.pem署名付き証明書です。
    • -aliasoiclient別名です。
    
    Enter keystore password: replace_with_strong_password
    Certificate was added to keystore
    
  10. すべての証明書がストアにあるかどうかを確認します。
    keytool -list -keystore identityKeystore.jks
  11. プライベート・アイデンティティ証明書に対応するパブリック証明書をエクスポートします。
    keytool -export -alias oicclient -keystore identityKeystore.jks -file my_company_signedcert.pem
    この例では、次の値を入力します:
    • -aliasは、oicclientキーストアの別名です。
    • -keystoreは、identityKeystore.jksキーストア・ファイルです。
    • -fileは、my_company_signedcert.pem公開証明書ファイルです。
    Enter keystore password: replace_with_strong_password
    Certificate stored in file my_company_signedcert.pem
  12. 新しいキーストア(.jksファイル)をOracle IntegrationにX509アイデンティティ証明書としてインポートします。
  13. ストアのコンテンツ全体をリストします。
    keytool -list -keystore identityKeystore.jks

openSSLでの証明書の管理

一般的に使用されるopensslコマンドは次のとおりです:

説明 コマンド
証明書の確認 openssl x509 -in certificate_name -text -noout
サーバーからすべての証明書を取得 openssl s_client -connect host:ssl_port -showcerts
DER形式の証明書をPEM形式に変換 openssl x509 -inform der -in path_to_DER_certificate -out path_to_PEM_certificate
JKSストアへの.pfxファイルの変換 keytool -importkeystore -srckeystore path_to_.pfx_file -srcstoretype pkcs12 -destkeystore path_to_the_jks_file -deststoretype JKS -srcstorepass pfx_passwd -deststorepass pfx_passwd
.jksファイルをPKCS12形式に変換 keytool -importkeystore -srckeystore path_to_.jks_file -destkeystore full_path_to_.p12_file-srcstoretype JKS - deststoretype PKCS12 -deststorepass pkcs12_store_password
.pfxファイルからの秘密キーの抽出 openssl pkcs12 -info -in path_to_.pfx_file -nodes -nocerts -out private_key_file_name
.pfxファイルから公開証明書を抽出 openssl pkcs12 -in path_to_.pfx_file -out path_to_certificate_file -nokeys

証明書管理 - 双方向SSLまたはmTLS

「SSL/TLS接続のデバッグ」を参照してください。

アイデンティティ証明書をアップロードするには:

  1. ナビゲーション・ペインで、「ホーム」>「設定」>「証明書」を選択します。
  2. 「アップロード」をクリックします。
  3. 別名を、アイデンティティ証明書のキーストアにリストされている別名に設定します。 (キーストアの内容を表示するには、keytool -listを使用します。)
  4. 証明書カテゴリが「アイデンティティ」に設定されていることを確認します。
  5. JKS形式でクライアント証明書ファイルをアップロードします。
  6. JKSストアの作成に使用するキーストアとキー・パスワードを入力します。 パスワードに不一致がある場合、Oracle Integrationはアイデンティティ証明書にアクセスできません。
  7. Oracle Integrationに新しいアダプタ接続(SOAPアダプタまたはRESTアダプタ接続)を作成します。
  8. 接続ページで、双方向SSLチェック・ボックスを選択し、SSL接続の完了に使用する接続に必要な別名を関連付けます。 この別名は、「証明書をアップロード」ダイアログに入力した値と一致する必要があります。

相互TLS認証(mTLS)をテストするには:

  1. 最初にブラウザからエンドポイントへのアクセスをテストします。 クライアント証明書を.p12形式で選択したブラウザにインポートします。
  2. ブラウザ・バーにエンドポイントを入力し、Enterを押します。 インポートされたクライアント証明書の使用を求めるメッセージが表示されます。
  3. メッセージのプロンプトに従います。 証明書が有効な場合、コンテンツはブラウザにロードされます。
  4. ブラウザのテストが成功した場合は、Oracle IntegrationでREST/SOAPアダプタ接続をテストします。