JDBC Thin-Verbindungen mit einem Wallet (mTLS)
Autonomous Database schreibt eine sichere Verbindung vor, die Transport Layer Security (TLSv1.2) verwendet. Je nach Netzwerkkonfigurationsoptionen unterstützt Autonomous Database die mTLS- und TLS-Authentifizierung.
Wenn Sie TLS anstelle von mTLS für Verbindungen verwenden, die JDBC-Thin-Treiber mit JDK8u162 oder höher verwenden, ist kein Wallet erforderlich. TLS-Verbindungen sind für die folgenden Netzwerkkonfigurationen aktiviert:
-
Nur Zugriff auf privaten Endpunkt: Netzwerkkonfiguration mit einem privaten Endpunkt
-
Sicherer Zugriff nur von zulässigen IPs und VCNs: Konfiguration mit einer Access-Control-Liste (ACL)
Wenn sich Ihre Autonomous Database auf einem öffentlichen Endpunkt ohne ACL befindet, können Sie
0.0.0.0/0
als CIDR-ACL hinzufügen und die TLS-Authentifizierung aktivieren. Das Hinzufügen von0.0.0.0/0
als CIDR-ACL ist identisch mit dem Hinzufügen von Autonomous Database auf einem öffentlichen Endpunkt ohne ACL.
Weitere Informationen finden Sie unter Sichere Verbindungen zu Autonomous Database mit mTLS oder mit TLS.
- JDBC-Thin-Treiberverbindung – Voraussetzungen für Verbindungen mit Wallets (mTLS)
Anwendungen, die JDBC-Thin-Treiber verwenden, unterstützen TLS- und gegenseitige TLS-(mTLS-)Authentifizierung. Bei der mTLS-Authentifizierung müssen Sie Oracle-Datenbankzugangsdaten angeben, einschließlich der Oracle-Wallets oder Java-KeyStore-(JKS-)Dateien, wenn Sie eine Verbindung zur Datenbank herstellen. - JDBC-URL-Verbindungszeichenfolge mit JDBC-Thin-Treiber und -Wallets verwenden
Die Verbindungszeichenfolge befindet sich in der Dateitnsnames.ora
, die Teil des Downloads der Clientzugangsdaten ist. Die Dateitnsnames.ora
enthält die vordefinierten Servicenamen. Jeder Service verfügt über einen eigenen TNS-Alias und eine eigene Verbindungszeichenfolge. - JDBC-Verbindung mit JDBC-Treiber 18.3 verwenden
Anwendungen, die JDBC-Thin-Treiber verwenden, können mit Oracle Wallets oder Java KeyStore (JKS) eine Verbindung zu autonomen Datenbanken herstellen. - Verbindung mit JDBC-Thin-Treiber 12.2 oder älter herstellen
Wenn Sie den JDBC-Treiber 12.2.0.2 oder älter verwenden, legen Sie die Java-Eigenschaften vor dem Starten der Anwendung fest. In der Regel legen Sie die Eigenschaften im Startskript der Anwendung fest. - JDBC Thin-Verbindungen mit einem HTTP-Proxy
Wenn sich der Client hinter einer Firewall befindet und Ihre Netzwerkkonfiguration einen HTTP-Proxy benötigt, um eine Verbindung zum Internet herzustellen, müssen Sie den JDBC Thin Client 18.1 oder höher verwenden, der Verbindungen über HTTP-Proxys ermöglicht.
Übergeordnetes Thema: Mit JDBC Thin-Treiber verbinden
JDBC-Thin-Treiberverbindung – Voraussetzungen für Verbindungen mit Wallets (mTLS)
Anwendungen, die JDBC-Thin-Treiber verwenden, unterstützen TLS- und gegenseitige TLS-(mTLS-)Authentifizierung. Bei der mTLS-Authentifizierung müssen Sie Oracle-Datenbankzugangsdaten angeben, einschließlich der Oracle-Wallets oder Java-KeyStore-(JKS-)Dateien, wenn Sie eine Verbindung zur Datenbank herstellen.
Führen Sie die folgenden Schritte aus, bevor Sie sich bei der Datenbank anmelden:
Übergeordnetes Thema: JDBC Thin-Verbindungen mit einem Wallet (mTLS)
JDBC-URL-Verbindungszeichenfolge mit JDBC-Thin-Treiber und Wallets verwenden
Die Verbindungszeichenfolge befindet sich in der Datei tnsnames.ora
, die Teil des Downloads der Clientzugangsdaten ist. Die Datei tnsnames.ora
enthält die vordefinierten Servicenamen. Jeder Service verfügt über einen eigenen TNS-Alias und eine eigene Verbindungszeichenfolge.
dbname_high
als TNS-Alias und einer Verbindungszeichenfolge in tnsnames.ora
lautet wie folgt:dbname_high= (description=
(address=(protocol=tcps)(port=1522)(host=adb.example.oraclecloud.com))
(connect_data=(service_name=dbname_high.oraclecloud.com))(security=(ssl_server_dn_match=yes)))
Legen Sie den Speicherort von tnsnames.ora
mit der Eigenschaft TNS_ADMIN
wie folgt fest:
- Als Teil der Verbindungszeichenfolge (nur mit dem 18.3- oder neueren JDBC-Treiber)
- Als Systemeigenschaft,
-Doracle.net.tns_admin
- Als Verbindungseigenschaft (
OracleConnection.CONNECTION_PROPERTY_TNS_ADMIN
)
Mit dem JDBC-Treiber 18.3 enthält die Verbindungszeichenfolge den TNS-Alias und die Verbindungseigenschaft TNS_ADMIN
.
Beispiel-Verbindungszeichenfolge mit 18.3 JDBC-Treiber (Linux):
DB_URL="jdbc:oracle:thin:@dbname_high?TNS_ADMIN=/Users/test/wallet_dbname"
Beispiel-Verbindungszeichenfolge mit 18.3 JDBC-Treiber (Windows):
DB_URL="jdbc:oracle:thin:@dbname_high?TNS_ADMIN=C:\\Users\\test\\wallet_dbname"
Die Verbindungseigenschaft TNS_ADMIN
gibt Folgendes an:
- Der Speicherort von
tnsnames.ora
. - Der Speicherort der Oracle Wallet-Dateien (
ewallet.sso
,ewallet.p12
) oder Java KeyStore-(JKS-)Dateien (truststore.jks
,keystore.jks
). - Der Speicherort von
ojdbc.properties
. Diese Datei enthält die Verbindungseigenschaften, die für die Verwendung von Oracle Wallets oder Java KeyStore (JKS) erforderlich sind.
Wenn Sie 12.2.0.1 oder ältere JDBC-Treiber verwenden, enthält die Verbindungszeichenfolge nur den TNS-Alias. So stellen Sie Verbindungen mit älteren JDBC-Treibern her:
- Legen Sie den Speicherort der
tnsnames.ora
fest, entweder als Systemeigenschaft mit-Doracle.net.tns_admin
oder als Verbindungseigenschaft (OracleConnection.CONNECTION_PROPERTY_TNS_ADMIN
). - Legen Sie die Wallet- oder JKS-bezogenen Verbindungseigenschaften zusätzlich zu
TNS_ADMIN
fest.
Beispiel: In diesem Fall legen Sie den TNS-Alias im DB_URL
ohne den TNS_ADMIN
-Teil wie folgt fest:
DB_URL=”jdbc:oracle:thin:@dbname_high”
Weitere Informationen finden Sie unter Datenbankservicenamen für Autonomous Database.
Übergeordnetes Thema: JDBC Thin-Verbindungen mit einem Wallet (mTLS)
JDBC-Verbindung mit 18.3 JDBC-Treiber verwenden
Anwendungen, die den JDBC-Thin-Treiber verwenden, können mit Oracle Wallets oder Java KeyStore (JKS) eine Verbindung zu autonomen Datenbanken herstellen.
Oracle Wallet verwenden
Um Java und den JDBC-Thin-Treiber 18.3 für die Verbindung mit Autonomous Database mit Oracle Wallet zu verwenden, gehen Sie wie folgt vor:
-
Stellen Sie sicher, dass die Voraussetzungen erfüllt sind: Weitere Informationen finden Sie unter JDBC-Thin-Treiberverbindung - Voraussetzungen für Verbindungen mit Wallets (mTLS).
-
Verbindung prüfen: Sie können entweder ein Java-Programm, ein Servlet oder IDEs verwenden, um die Verbindung zur Datenbank zu prüfen. Ein einfacher Test besteht darin, DataSourceSample.java oder UCPSample.java aus JDBC-Codebeispielen herunterzuladen und die Verbindungs-URL so zu aktualisieren, dass der erforderliche TNS-Alias vorhanden ist, und
TNS_ADMIN
zu übergeben. Dabei wird der Pfad fürtnsnames.ora
und die Wallet-Dateien angegeben. Aktualisieren Sie außerdem im Beispielquellcode den Benutzernamen und das Kennwort der Datenbank. Beispiel:DB_URL="jdbc:oracle:thin:@dbname_high?TNS_ADMIN=/Users/test/wallet_dbname"
Hinweis
Wenn Sie Microsoft Active Directory mit einer Datenbank verwenden, aktualisieren Sie im Beispielquellcode den Benutzernamen mit dem Active Directory-Benutzernamen, und aktualisieren Sie das Kennwort mit dem Active Directory-Benutzerkennwort. Weitere Informationen finden Sie unter Microsoft Active Directory mit Autonomous Database verwenden. -
Wallet-Speicherort festlegen: Die Eigenschaftendatei
ojdbc.properties
wird mit der Wallet-bezogenen Verbindungseigenschaft vorab geladen.oracle.net.wallet_location=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=${TNS_ADMIN})))
Hinweis
Sie ändern die Dateiojdbc.properties
nicht. Der Wert vonTNS_ADMIN
bestimmt den Wallet-Speicherort. -
Kompilieren und ausführen: Kompilieren Sie das Beispiel, und führen Sie es aus, um eine erfolgreiche Verbindung herzustellen. Stellen Sie sicher, dass
oraclepki.jar
,osdt_core.jar
undosdt_cert.jar
in derclasspath
enthalten sind. Beispiel:java –classpath ./lib/ojdbc8.jar:./lib/ucp.jar:./lib/oraclepki.jar:./lib/osdt_core.jar:./lib/osdt_cert.jar:. UCPSample
Mit dem Wallet-Teil für die automatische Anmeldung in der ZIP-Datei mit den heruntergeladenen Autonomous Database-Clientzugangsdaten muss die Anwendung keine Benutzernamen-/Kennwortauthentifizierung verwenden.
Java KeyStore verwenden
Um Java und den JDBC-Thin-Treiber 18.3 für die Verbindung mit Autonomous Database mit Java KeyStore (JKS) zu verwenden, gehen Sie wie folgt vor:
-
Stellen Sie sicher, dass die Voraussetzungen erfüllt sind: Weitere Informationen finden Sie unter JDBC-Thin-Treiberverbindung - Voraussetzungen für Verbindungen mit Wallets (mTLS).
-
Bereitstellen der Datenbankdetails: Sie können entweder ein Java-Programm, ein Servlet oder IDEs verwenden, um die Verbindung zur Datenbank zu prüfen. Ein einfacher Test ist das Herunterladen von DataSourceSample.java oder UCPSample.java aus JDBC-Codebeispielen. Verwenden Sie in diesem Beispiel die Verbindungs-URL wie gezeigt. Beachten Sie, dass die Verbindung
DB_URL
den TNS-Alias enthält. Beispiel:dbname_high
ist intnsnames.ora
vorhanden. Sie können den Pfad für die Dateitnsnames.ora
über die EigenschaftTNS_ADMIN
angeben, wie in der URL gezeigt. Stellen Sie sicher, dass Sie den Datenbankbenutzernamen und das Kennwort für Ihre Datenbank verwenden.DB_URL="jdbc:oracle:thin:@dbname_high?TNS_ADMIN=/Users/test/wallet_dbname"
Hinweis
Wenn Sie Microsoft Active Directory mit Autonomous Database verwenden, ändern Sie den Beispielquellcode so, dass der Active Directory-Benutzername und das Active Directory-Benutzerkennwort verwendet werden. Weitere Informationen finden Sie unter Microsoft Active Directory mit Autonomous Database verwenden. -
JKS-bezogene Verbindungseigenschaften festlegen: Fügen Sie die JKS-bezogenen Verbindungseigenschaften zur Datei
ojdbc.properties
hinzu. keyStore und Truststore-Kennwort sind das Kennwort, das beim Herunterladen der Datei.zip
mit den Clientzugangsdaten angegeben wird.Um SSL-Konnektivität anstelle von Oracle Wallet zu verwenden, geben Sie die Keystore- und Truststore-Dateien und das zugehörige Kennwort wie folgt in der Datei
ojdbc.properties
an:# Properties for using Java KeyStore (JKS) oracle.net.ssl_server_dn_match=true javax.net.ssl.trustStore==${TNS_ADMIN}/truststore.jks javax.net.ssl.trustStorePassword=password javax.net.ssl.keyStore==${TNS_ADMIN}/keystore.jks javax.net.ssl.keyStorePassword=password
Hinweis
Stellen Sie sicher, dass Sie die Wallet-bezogene Eigenschaft inojdbc.properties
kommentieren. Beispiel:# Property for using Oracle Wallets # oracle.net.wallet_location=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=${TNS_ADMIN})))
-
Kompilieren und ausführen: Kompilieren Sie das Beispiel, und führen Sie es aus, um eine erfolgreiche Verbindung herzustellen. Beispiel:
java –classpath ./lib/ojdbc8.jar:./lib/ucp.jar UCPSample
Übergeordnetes Thema: JDBC Thin-Verbindungen mit einem Wallet (mTLS)
Verbindung mit JDBC-Thin-Treiber 12.2 oder älter
Wenn Sie den JDBC-Treiber 12.2.0.2 oder älter verwenden, legen Sie die Java-Eigenschaften fest, bevor Sie die Anwendung starten. In der Regel legen Sie die Eigenschaften im Startskript der Anwendung fest.
Wenn Sie die neuesten JDBC-Treiber nicht verwenden können, können Sie mit 12.2.0.2 oder anderen älteren JDBC-Treibern eine Verbindung zu Autonomous Database herstellen. Die JDBC-Treiber der Version 12.2 oder älter unterstützen die Datei ojdbc.properties
nicht. Bei älteren JDBC-Treiberversionen müssen Sie Wallets oder JKS-bezogene Eigenschaften entweder als Systemeigenschaften oder als Verbindungseigenschaften übergeben, um eine Verbindung herzustellen.
Oracle Wallet verwenden
Um Java und die 12.2- oder älteren JDBC-Treiber für die Verbindung mit Autonomous Database mit Oracle Wallet zu verwenden, gehen Sie wie folgt vor:
-
Stellen Sie sicher, dass die Voraussetzungen erfüllt sind: Weitere Informationen finden Sie unter JDBC-Thin-Treiberverbindung - Voraussetzungen für Verbindungen mit Wallets (mTLS).
-
Verbindung prüfen: Sie können entweder ein Java-Programm, ein Servlet oder IDEs verwenden, um die Verbindung zur Datenbank zu prüfen. Ein einfacher Test besteht darin, DataSourceSample.java oder UCPSample.java aus JDBC-Codebeispielen herunterzuladen und die Verbindungs-URL so zu aktualisieren, dass der erforderliche TNS-Alias vorhanden ist. Aktualisieren Sie außerdem den Beispielquellcode, um den Benutzernamen und das Kennwort der Datenbank zu verwenden. Beispiel:
DB_URL="jdbc:oracle:thin:@dbname_high”
Hinweis
Wenn Sie Microsoft Active Directory mit Autonomous Database verwenden, aktualisieren Sie den Beispielquellcode so, dass der Active Directory-Benutzername und das Active Directory-Benutzerkennwort verwendet werden. Weitere Informationen finden Sie unter Microsoft Active Directory mit Autonomous Database verwenden. -
Wallet-Speicherort festlegen: Fügen Sie die
OraclePKIProvider
am Ende der Providerliste in der Dateijava.security
hinzu (diese Datei ist Teil der JRE-Installation unter$JRE_HOME/jre/lib/security/java.security
), die normalerweise wie folgt aussieht:security.provider.14=oracle.security.pki.OraclePKIProvider
-
Kompilieren und ausführen: Kompilieren Sie das Beispiel, und führen Sie es aus, um eine erfolgreiche Verbindung herzustellen. Stellen Sie sicher, dass
oraclepki.jar
,osdt_core.jar
undosdt_cert.jar
inclasspath
enthalten sind. Außerdem müssen Sie die Verbindungseigenschaften übergeben. Aktualisieren Sie die Eigenschaften mit dem Speicherort, in dem sichtnsnames.ora
und Wallet-Dateien befinden.java –classpath ./lib/ojdbc8.jar:./lib/ucp.jar:./lib/oraclepki.jar:./lib/osdt_core.jar:./lib/osdt_cert.jar:. -Doracle.net.tns_admin=/users/test/wallet_dbname -Doracle.net.ssl_server_dn_match=true -Doracle.net.ssl_version=1.2 (Not required for 12.2) -Doracle.net.wallet_location= “(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/users/test/wallet_dbname)))” UCPSample
Dies sind Windows-Systembeispiele. Fügen Sie ein Fortsetzungszeichen
\
hinzu, wenn Sie –D
-Eigenschaften auf mehreren Zeilen unter UNIX (Linux oder Mac) festlegen.
Java KeyStore verwenden
Um Java und die 12.2 oder älteren JDBC-Thin-Treiber für die Verbindung zu Autonomous Database mit Java KeyStore (JKS) zu verwenden, gehen Sie wie folgt vor:
-
Stellen Sie sicher, dass die Voraussetzungen erfüllt sind: Weitere Informationen finden Sie unter JDBC-Thin-Treiberverbindung - Voraussetzungen für Verbindungen mit Wallets (mTLS).
-
Verbindung prüfen: Sie können entweder ein Java-Programm, ein Servlet oder IDEs verwenden, um die Verbindung zur Datenbank zu prüfen. Ein einfacher Test besteht darin, DataSourceSample.java oder UCPSample.java aus JDBC-Codebeispielen herunterzuladen und die Verbindungs-URL mit dem erforderlichen TNS-Alias zu aktualisieren und
TNS_ADMIN
zu übergeben. Geben Sie dabei den Pfad fürtnsnames.ora
an, und aktualisieren Sie die Verbindungs-URL so, dass der erforderliche TNS-Alias vorhanden ist. Aktualisieren Sie außerdem im Beispielquellcode den Benutzernamen und das Kennwort der Datenbank. Beispiel:DB_URL="jdbc:oracle:thin:@dbname_high”
Hinweis
Wenn Sie Microsoft Active Directory mit Autonomous Database verwenden, aktualisieren Sie den Beispielquellcode so, dass der Active Directory-Benutzername und das Active Directory-Benutzerkennwort verwendet werden. Weitere Informationen finden Sie unter Microsoft Active Directory mit Autonomous Database verwenden. -
Kompilieren und ausführen: Kompilieren Sie das Beispiel, und führen Sie es aus, um eine erfolgreiche Verbindung herzustellen. Sie müssen die Verbindungseigenschaften wie dargestellt übergeben. Aktualisieren Sie die Eigenschaften mit dem Speicherort, in dem die Dateien
tnsnames.ora
und JKS gespeichert werden. Wenn Sie diese Verbindungseigenschaften programmgesteuert übergeben möchten, lesen Sie DataSourceForJKS.java. Beispiel:java -Doracle.net.tns_admin=/users/test/wallet_dbname -Djavax.net.ssl.trustStore=truststore.jks -Djavax.net.ssl.trustStorePassword=********** -Djavax.net.ssl.keyStore=keystore.jks -Djavax.net.ssl.keyStorePassword=************ -Doracle.net.ssl_server_dn_match=true -Doracle.net.ssl_version=1.2 // Not required for 12.2
Übergeordnetes Thema: JDBC Thin-Verbindungen mit einem Wallet (mTLS)
JDBC Thin-Verbindungen mit einem HTTP-Proxy
Wenn sich der Client hinter einer Firewall befindet und Ihre Netzwerkkonfiguration einen HTTP-Proxy für die Verbindung mit dem Internet erfordert, müssen Sie den JDBC Thin Client 18.1 oder höher verwenden, der Verbindungen über HTTP-Proxys ermöglicht.
Um über einen HTTPS-Proxy eine Verbindung zu Autonomous Database herzustellen, öffnen und aktualisieren Sie die Datei tnsnames.ora
. Fügen Sie den HTTP-Proxyhostnamen (https_proxy) und den Port (https_proxy_port) zur Verbindungszeichenfolge hinzu. Ersetzen Sie die Werte durch Ihre HTTPS-Proxyinformationen. Beispiel:
-
Fügen Sie den HTTP-Proxyhostnamen und -Port zu den Verbindungsdefinitionen in
tnsnames.ora
hinzu. Sie müssen die Parameter https_proxy und https_proxy_port im Adressabschnitt der Verbindungsdefinitionen hinzufügen. Beispiel: Im Folgenden wird der HTTP-Proxy aufproxyhostname
und der HTTP-Proxyport auf80
gesetzt. Ersetzen Sie diese Werte durch Ihre HTTP-Proxyinformationen:
db2022adb_high =
(description=
(address=
(https_proxy=proxyhostname)(https_proxy_port=80)(protocol=tcps)(port=1522)(host=adb.example.oraclecloud.com)
)
(connect_data=(service_name=db2022adb_high.adb.oraclecloud.com)
)
(security=security=(ssl_server_dn_match=yes)
)
)
-
JDBC Thin-Clientversionen vor 18.1 unterstützen keine Verbindungen über HTTP-Proxy.
-
Eine erfolgreiche Verbindung hängt von bestimmten Proxykonfigurationen ab, und die Leistung der Datenübertragungen hängt von der Proxykapazität ab. Oracle empfiehlt nicht, dieses Feature in Produktionsumgebungen zu verwenden, in denen die Performance von entscheidender Bedeutung ist.
-
Die Konfiguration von
tnsnames.ora
für den HTTP-Proxy ist je nach Netzwerkkonfiguration und Sicherheits-Policys Ihrer Organisation möglicherweise nicht ausreichend. Beispielsweise erfordern einige Netzwerke einen Benutzernamen und ein Kennwort für den HTTP-Proxy. -
Wenden Sie sich in allen Fällen an den Netzwerkadministrator, um ausgehende Verbindungen zu Hosts in der Domain
oraclecloud.com
mit dem relevanten Port zu öffnen, ohne einen HTTP-Proxy zu durchlaufen.
Übergeordnetes Thema: JDBC Thin-Verbindungen mit einem Wallet (mTLS)