JDBC Thin-Verbindungen mit einem Wallet (mTLS)
Autonomous Database erfordert eine sichere Verbindung, 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 Ihre Verbindungen mit JDBC Thin-Treiber mit JDK8u162 oder höher verwenden, ist kein Wallet erforderlich. TLS-Verbindungen sind für die folgenden Netzwerkkonfigurationen aktiviert:
-
Nur Zugriff über 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-Datenbank 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 entspricht der Verwendung von Autonomous Database am öffentlichen Endpunkt ohne ACL.
Weitere Informationen finden Sie unter Sichere Verbindungen zu Autonomous Database mit mTLS oder mit TLS.
- Voraussetzungen für JDBC Thin-Treiberverbindungen mit Wallets (mTLS)
Anwendungen, die JDBC Thin-Treiber verwenden, unterstützen die TLS- und mTLS-Authentifizierung. Bei der Verwendung der mTLS-Authentifizierung müssen Sie Oracle-Datenbankzugangsdaten einschließlich der Oracle Wallets oder Java KeyStore (JKS)-Dateien angeben, 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 zum Herunterladen der Clientzugangsdaten gehört. Die Dateitnsnames.ora
enthält die vordefinierten Servicenamen. Jeder Service verfügt über einen eigenen TNS-Alias und eine eigene Verbindungszeichenfolge. - JDBC-Verbindung mit dem 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. - Verbindung über JDBC Thin-Treiber 12.2 oder eine frühere Version herstellen
Wenn Sie den JDBC-Treiber 12.2.0.2 oder eine frühere Version verwenden, legen Sie die Java-Eigenschaften vor dem Starten der Anwendung fest. In der Regel legen Sie die Eigenschaften im Startup-Skript der Anwendung fest. - 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 zum Internet erfordert, müssen Sie den JDBC Thin Client 18.1 oder höher verwenden, der Verbindungen über HTTP-Proxies ermöglicht.
Übergeordnetes Thema: Mit JDBC Thin-Treiber verbinden
Voraussetzungen für JDBC Thin-Treiberverbindungen mit Wallets (mTLS)
Anwendungen, die JDBC Thin-Treiber verwenden, unterstützen die TLS- und mTLS-Authentifizierung. Bei der Verwendung der mTLS-Authentifizierung müssen Sie Oracle-Datenbankzugangsdaten einschließlich der Oracle Wallets oder Java KeyStore (JKS)-Dateien angeben, wenn Sie eine Verbindung zur Datenbank herstellen.
Vor der Anmeldung bei der Datenbank gehen Sie wie folgt vor:
Ü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 im Downloadumfang der Clientzugangsdaten enthalten 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
: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
fest.
- Als Teil der Verbindungszeichenfolge (nur mit JDBC-Treiber 18.3 oder höher)
- Als Systemeigenschaft:
-Doracle.net.tns_admin
- Als Verbindungseigenschaft (
OracleConnection.CONNECTION_PROPERTY_TNS_ADMIN
)
Bei Verwendung des 18.3 JDBC-Treiber enthält die Verbindungszeichenfolge den TNS-Alias und die Verbindungseigenschaft TNS_ADMIN
.
Beispiel für eine Verbindungszeichenfolge mit 18.3 JDBC-Treiber (Linux):
DB_URL="jdbc:oracle:thin:@dbname_high?TNS_ADMIN=/Users/test/wallet_dbname"
Beispiel für eine 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:
- Speicherort von
tnsnames.ora
. - Speicherort von Oracle Wallet-Dateien (
ewallet.sso
,ewallet.p12
) oder Java KeyStore-(JKS-)Dateien (truststore.jks
,keystore.jks
). - 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 JDBC-Treiber der Version 12.2.0.1 oder höher verwenden, enthält die Verbindungszeichenfolge nur den TNS-Alias. So stellen Sie Verbindungen mit JDBC-Treibern früherer Versionen her:
- Legen Sie den Speicherort von
tnsnames.ora
fest, entweder als Systemeigenschaft mit-Doracle.net.tns_admin
oder als Verbindungseigenschaften (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 in DB_URL
ohne den Teil TNS_ADMIN
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
So verwenden Sie Java und den 18.3 JDBC Thin-Treiber für die Verbindung mit Autonomous Database mit Oracle Wallet:
-
Sicherstellen, dass die Voraussetzungen erfüllt sind: Weitere Informationen finden Sie unter Voraussetzungen für JDBC Thin-Treiberverbindungen mit Wallets (mTLS).
-
Verbindung prüfen: Sie können die Verbindung zur Datenbank entweder mit einem Java-Programm, einem Servlet oder mit IDEs prüfen. Ein einfacher Test ist es, 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. Dabei werden der Pfad fürtnsnames.ora
und die Wallet-Dateien angegeben. Aktualisieren Sie außerdem im Beispielquellcode den Datenbanknamen und das Kennwort. Beispiele: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 das Kennwort mit dem Active Directory-Benutzerpasswort. Weitere Informationen finden Sie unter Microsoft Active Directory mit Autonomous Database verwenden. -
Wallet-Speicherort festlegen: Die Eigenschaftendatei
ojdbc.properties
wird vorab mit der walletbezogenen Verbindungseigenschaft geladen.oracle.net.wallet_location=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=${TNS_ADMIN})))
Hinweis
Sie ändern dabei nicht die Dateiojdbc.properties
. Der WertTNS_ADMIN
bestimmt den Wallet-Verzeichnis. -
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
unterclasspath
vorhanden sind. Beispiele:java –classpath ./lib/ojdbc8.jar:./lib/ucp.jar:./lib/oraclepki.jar:./lib/osdt_core.jar:./lib/osdt_cert.jar:. UCPSample
Dank der von Autonomous Database heruntergeladenen ZIP-Datei mit Clientzugangsdaten für die automatische Wallet-Anmeldung ist die Authentifizierung mit Benutzername und Kennwort für Ihre Anwendung nicht mehr erforderlich.
Java KeyStore verwenden
So verwenden Sie Java und den 18.3 JDBC Thin-Treiber für die Verbindung mit Autonomous Database mit Java KeyStore (JKS):
-
Sicherstellen, dass die Voraussetzungen erfüllt sind: Weitere Informationen finden Sie unter Voraussetzungen für JDBC Thin-Treiberverbindungen mit Wallets (mTLS).
-
Datenbankdetails vorbereiten: Sie können die Verbindung zur Datenbank entweder mit einem Java-Programm, einem Servlet oder mit IDEs prüfen. Ein einfacher Test ist das Herunterladen von DataSourceSample.java oder UCPSample.java aus JDBC-Codebeispielen. Verwenden Sie in diesem Beispiel die angezeigte Verbindungs-URL. Beachten Sie, dass die
DB_URL
-Verbindung den TNS-Alias enthält, z.B.dbname_high
intnsnames.ora
. Sie können den Pfad für die Dateitnsnames.ora
über die EigenschaftTNS_ADMIN
angeben, wie in der URL dargestellt. Stellen Sie sicher, dass Sie den Datenbanknamen 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, müssen Sie den Beispielquellencode so ändern, 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 der Datei
ojdbc.properties
hinzu. Das keyStore- und das Truststore-Kennwort sind das Kennwort, das beim Herunterladen der.zip
-Datei mit den Clientzugangsdaten angegeben wird.Um die SSL-Verbindung anstelle von Oracle Wallet zu verwenden, geben Sie die Keystore- und Truststore-Dateien und das entsprechende Kennwort 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
Kommentieren Sie die walletbezogene Eigenschaft inojdbc.properties
. Beispiele:# 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. Beispiele:
java –classpath ./lib/ojdbc8.jar:./lib/ucp.jar UCPSample
Übergeordnetes Thema: JDBC Thin-Verbindungen mit einem Wallet (mTLS)
Verbindung über JDBC Thin-Treiber 12.2 oder eine frühere Version herstellen
Wenn Sie den JDBC-Treiber 12.2.0.2 oder eine frühere Version verwenden, legen Sie die Java-Eigenschaften vor dem Starten der Anwendung fest. In der Regel legen Sie die Eigenschaften im Startup-Skript 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
So verwenden Sie Java und JDBC-Treiber der Version 12.2 oder früher für die Verbindung mit Autonomous Database mit Oracle Wallet:
-
Sicherstellen, dass die Voraussetzungen erfüllt sind: Weitere Informationen finden Sie unter Voraussetzungen für JDBC Thin-Treiberverbindungen mit Wallets (mTLS).
-
Verbindung prüfen: Sie können die Verbindung zur Datenbank entweder mit einem Java-Programm, einem Servlet oder mit IDEs prüfen. Ein einfacher Test ist das Herunterladen von DataSourceSample.java oder UCPSample.java von JDBC-Codebeispielen und das Aktualisieren der Verbindungs-URL mit dem erforderlichen TNS-Alias. Außerdem aktualisieren Sie den Beispielquellcode so, dass der Datenbankbenutzername und das Kennwort verwendet werden. Beispiele:
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-Benutzerpasswort verwendet werden. Weitere Informationen finden Sie unter Microsoft Active Directory mit Autonomous Database verwenden. -
Wallet-Speicherort festlegen: Fügen Sie
OraclePKIProvider
am Ende der Providerliste in der Dateijava.security
hinzu (diese Datei gehört zur JRE-Installation unter$JRE_HOME/jre/lib/security/java.security
), die in der Regel 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
unterclasspath
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
Diese Beispiele beziehen sich auf Windows-Systeme. Fügen Sie ein
\
-Fortsetzungszeichen hinzu, wenn Sie –D
-Eigenschaften auf mehreren Zeilen unter UNIX (Linux oder Mac) festlegen.
Java KeyStore verwenden
So verwenden Sie Java und JDBC Thin-Treiber der Version 12.2 oder früher für die Verbindung mit Autonomous Database mit Java KeyStore (JKS):
-
Sicherstellen, dass die Voraussetzungen erfüllt sind: Weitere Informationen finden Sie unter Voraussetzungen für JDBC Thin-Treiberverbindungen mit Wallets (mTLS).
-
Verbindung prüfen: Sie können die Verbindung zur Datenbank entweder mit einem Java-Programm, einem Servlet oder mit IDEs prüfen. Ein einfacher Test ist das Herunterladen von DataSourceSample.java oder UCPSample.java aus JDBC-Codebeispielen, das Aktualisieren der Verbindungs-URL mit dem erforderlichen TNS-Alias und das Übergeben von
TNS_ADMIN
, das Bereitstellen des Pfads fürtnsnames.ora
und das Aktualisieren der Verbindungs-URL mit dem erforderlichen TNS-Alias. Aktualisieren Sie außerdem im Beispielquellcode den Datenbanknamen und das Kennwort. Beispiele: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-Benutzerpasswort 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
tnsnames.ora
und JKS-Dateien gespeichert sind. Wenn Sie diese Verbindungseigenschaften programmatisch übergeben möchten, finden Sie entsprechende Informationen unter DataSourceForJKS.java. Beispiele: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 zum Internet erfordert, müssen Sie den JDBC Thin Client 18.1 oder höher verwenden, der Verbindungen über HTTP-Proxys ermöglicht.
Um eine Verbindung zu Autonomous Database über einen HTTPS-Proxy herzustellen, öffnen und aktualisieren Sie die Datei tnsnames.ora
. Fügen Sie der Verbindungszeichenfolge den HTTP-Proxyhostnamen (https_proxy) und den Port (https_proxy_port) hinzu. Ersetzen Sie die Werte durch die Informationen zu Ihrem HTTPS-Proxy. Beispiele:
-
Fügen Sie den Verbindungsdefinitionen in
tnsnames.ora
den HTTP-Proxyhostnamen und -port hinzu. Sie müssen die Parameter https_proxy und https_proxy_port im Adressabschnitt der Verbindungsdefinitionen hinzufügen. Im folgenden Beispiel 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 Client-Versionen vor 18.1 unterstützen keine Verbindungen über einen HTTP Proxy.
-
Eine erfolgreiche Verbindung ist von bestimmten Proxykonfigurationen abhängig. Die Performance von Datenübertragungen ist von der Proxykapazität abhängig. Oracle empfiehlt die Verwendung dieses Features nicht in Production-Umgebungen, in denen Performance entscheidend ist.
-
Die Konfiguration von
tnsnames.ora
für den HTTP-Proxy reicht je nach Netzwerkkonfiguration Ihrer Organisation und Sicherheits-Policys möglicherweise nicht aus. 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
über den relevanten Port zu öffnen, ohne einen HTTP-Proxy zu durchlaufen.
Übergeordnetes Thema: JDBC Thin-Verbindungen mit einem Wallet (mTLS)