Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menyiapkan SSL koneksi melalui JDBC
Untuk menggunakan SSL koneksi overJDBC, Anda harus membuat keystore, mempercayai sertifikat Amazon RDS root CA, dan menggunakan cuplikan kode yang ditentukan berikut ini.
Untuk membuat keystore dalam JKS format, Anda dapat menggunakan perintah berikut. Untuk informasi selengkapnya tentang cara membuat keystore, lihat Creating a keystore
keytool -genkey -alias
client
-validity365
-keyalgRSA
-keystoreclientkeystore
Ambil langkah-langkah berikut untuk mempercayai sertifikat Amazon RDS root CA.
Untuk mempercayai sertifikat CA RDS root Amazon
-
Unduh file .pem paket sertifikat yang berfungsi untuk semua Wilayah AWS dan letakkan file di direktori ssl_wallet.
-
Ekstrak setiap sertifikat dalam file.pem ke dalam file terpisah menggunakan utilitas OS.
-
Ubah setiap sertifikat ke format.der menggunakan
openssl
perintah terpisah, ganticertificate-pem-file
dengan nama file sertifikat.pem (tanpa ekstensi.pem).openssl x509 -outform der -in
certificate-pem-file
.pem -outcertificate-pem-file
.der -
Impor setiap sertifikat ke keystore menggunakan perintah berikut.
keytool -import -alias rds-root -keystore
clientkeystore.jks
-filecertificate-pem-file
.derUntuk informasi selengkapnya, lihat Memutar sertifikat SSL TLS /Anda.
-
Konfirmasi bahwa keystore berhasil dibuat.
keytool -list -v -keystore
clientkeystore.jks
Masukkan kata sandi keystore saat diminta.
Contoh kode berikut menunjukkan cara mengatur SSL koneksi menggunakanJDBC.
import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.util.Properties; public class OracleSslConnectionTest { private static final String DB_SERVER_NAME = "
dns-name-provided-by-amazon-rds
"; private static final Integer SSL_PORT = "ssl-option-port-configured-in-option-group
"; private static final String DB_SID = "oracle-sid
"; private static final String DB_USER = "user-name
"; private static final String DB_PASSWORD = "password
"; // This key store has only the prod root ca. private static final String KEY_STORE_FILE_PATH = "file-path-to-keystore
"; private static final String KEY_STORE_PASS = "keystore-password
"; public static void main(String[] args) throws SQLException { final Properties properties = new Properties(); final String connectionString = String.format( "jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCPS)(HOST=%s)(PORT=%d))(CONNECT_DATA=(SID=%s)))", DB_SERVER_NAME, SSL_PORT, DB_SID); properties.put("user", DB_USER); properties.put("password", DB_PASSWORD); properties.put("oracle.jdbc.J2EE13Compliant", "true"); properties.put("javax.net.ssl.trustStore", KEY_STORE_FILE_PATH); properties.put("javax.net.ssl.trustStoreType", "JKS"); properties.put("javax.net.ssl.trustStorePassword", KEY_STORE_PASS); final Connection connection = DriverManager.getConnection(connectionString, properties); // If no exception, that means handshake has passed, and an SSL connection can be opened } }
catatan
Tetapkan kata sandi selain penggugah (prompt) yang ditampilkan di sini sebagai praktik terbaik keamanan.