sql >> データベース >  >> RDS >> Oracle

JDBCthinおよびJKSを使用したOracleDatabaseTLS1.2/SSL接続

    TLSv1.2を使用してデータベースに接続するようにOracleJDBCシンドライバを構成するための手順は次のとおりです(データベース構成が正しいことを前提としています)。

    ステップ1:バグ19030178のパッチを適用します(12.2.0.1以降は不要)

    TLSv1.2を許可するバグ19030178のパッチを適用する必要があります。パッチはTLSv1.2を許可しますが、デフォルトでは有効にしないことに注意してください。したがって、12.1.0.2のパッチが適用されたドライバでは、oracle.net.ssl_version='1.2'も設定する必要があります。このプロパティは、システムプロパティとして(-Dを使用して)、またはデータソースプロパティを介して設定できます。

    ステップ2:JCEファイルをインストールする

    Java Cryptography Extension(JCE)ファイルがないと、強力な暗号スイート(TLS_RSA_WITH_AES_256_CBC_SHA256など)は有効になりません。したがって、JDK7またはJDK8のどちらを使用している場合でも、JCE Unlimited Strength JurisdictionPolicyFilesをインストールする必要があります。これらのファイルは、OracleのWebサイトにあります。

    ステップ3:常にJDKの最新の更新を使用する

    TLSv1.2に必要なバグが修正されているため、必ずJDK7またはJDK8の最新のアップデートを使用してください。

    ステップ4:ウォレットの代わりにJKSファイルを使用する

    すでにそれを行っているように見えますが、他の人が見ることができます。ウォレットは、追加のjarと追加のプロパティを必要とするため、OracleJDBCシンドライバでの構成と使用が複雑です。一方、JKSファイルはJREでネイティブにサポートされており、私の経験では、常にうまく機能しています。

    ステップ5:JDK7を使用する場合は、強力な暗号スイートを明示的に有効にします

    JDK8を使用する場合、この手順は必要ありません。 JDK7では、TLS_RSA_WITH_AES_256_CBC_SHA256などの強力な暗号スイートを使用している場合は、oracle.net.ssl_cipher_suites接続プロパティを使用して有効にする必要があります。

    ステップ6:-Djavax.net.debug =allを使用してデバッグする

    最後に、さらに問題が発生した場合は、トレースをオンにして、-Djavax.net.debug=allを使用して何が起こっているかを確認できます。

    ====JDK7と12.1.0.2パッチ付きシンドライバーの例=====

    java  -Doracle.net.ssl_version='1.2' -Doracle.net.ssl_cipher_suites='(TLS_RSA_WITH_AES_256_CBC_SHA256)' -Doracle.net.ssl_server_dn_match='true' -Djavax.net.ssl.trustStore='truststore.jks' -Djavax.net.ssl.trustStorePassword='welcome1' -Djavax.net.ssl.keyStore='keystore.jks' -Djavax.net.ssl.keyStorePassword='welcome1'  JDBCTest 'jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=host)(PORT=1522))(CONNECT_DATA=(SERVICE_NAME=myservice))(security=(ssl_server_cert_dn="CN=name,O=org,L=city,ST=state,C=country")))' 'pdb1' 'welcome1'
    

    ====JDK8と12.1.0.2パッチ付きシンドライバーの例=====

    java -Doracle.net.ssl_version='1.2' -Doracle.net.ssl_server_dn_match='true' -Djavax.net.ssl.trustStore='truststore.jks' -Djavax.net.ssl.trustStorePassword='welcome1' -Djavax.net.ssl.keyStore='keystore.jks' -Djavax.net.ssl.keyStorePassword='welcome1'  JDBCTest 'jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=host)(PORT=1522))(CONNECT_DATA=(SERVICE_NAME=myservice))(security=(ssl_server_cert_dn="CN=name,O=org,L=city,ST=state,C=country")))' 'pdb1' 'welcome1'
    



    1. 方法:mysql InnoDBストレージエンジンをクリーンアップしますか?

    2. SQLServerでクエリデザイナを使用する方法

    3. ArchLinuxでのMySQLリレーショナルデータベースの使用

    4. 最初に特定のフィールド値で並べ替える