Memperbarui aplikasi untuk terhubung ke instans Oracle DB menggunakan sertifikat baru SSL/TLS - Layanan Basis Data Relasional Amazon

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Memperbarui aplikasi untuk terhubung ke instans Oracle DB menggunakan sertifikat baru SSL/TLS

Sejak 13 Januari 2023, Amazon RDS telah menerbitkan sertifikat Otoritas Sertifikat (CA) baru untuk terhubung ke instans DB RDS menggunakan Lapisan Soket Aman atau Keamanan Lapisan Pengangkutan (SSL/TLS). Setelah itu, Anda dapat menemukan informasi tentang pembaruan aplikasi untuk menggunakan sertifikat baru.

Topik ini dapat membantu Anda menentukan apakah ada aplikasi klien yang digunakan SSL/TLS untuk terhubung ke instans DB Anda.

penting

Ketika Anda mengubah sertifikat untuk instans DB Amazon RDS for Oracle, hanya pendengar basis data yang dinyalakan ulang. Instans basis data tidak dimulai ulang. Koneksi basis data yang ada tidak terpengaruh, tetapi koneksi baru akan mengalami kesalahan selama periode waktu yang singkat sementara pendengar dimulai ulang.

Kami menyarankan Anda me-restart Oracle DB Anda untuk mencegah kesalahan koneksi.

catatan

Untuk aplikasi klien yang digunakan SSL/TLS untuk terhubung ke instans DB Anda, Anda harus memperbarui toko kepercayaan aplikasi klien Anda untuk menyertakan sertifikat CA baru.

Setelah Anda memperbarui sertifikat CA di penyimpanan kepercayaan aplikasi klien, Anda dapat merotasi sertifikat di instans DB Anda. Sebaiknya Anda menguji prosedur ini di lingkungan pengembangan dan pementasan sebelum menerapkannya di lingkungan produksi Anda.

Untuk informasi selengkapnya tentang rotasi sertifikat, lihat Memutar sertifikat Anda SSL/TLS. Untuk informasi selengkapnya tentang mengunduh sertifikat, lihat . Untuk informasi tentang penggunaan SSL/TLS dengan instans Oracle DB, lihat. Lapisan Soket Aman Oracle

Mencari tahu apakah aplikasi terhubung menggunakan SSL

Jika instans DB Oracle Anda menggunakan opsi SSL yang ditambahkan, Anda mungkin menggunakan SSL. Periksa ini dengan mengikuti petunjuk di Menampilkan daftar opsi dan pengaturan opsi untuk grup opsi. Untuk informasi tentang opsi SSL, lihat Lapisan Soket Aman Oracle.

Periksa log pendengar untuk menentukan apakah ada koneksi SSL. Berikut ini adalah output contoh di log pendengar.

date time * (CONNECT_DATA=(CID=(PROGRAM=program) (HOST=host)(USER=user))(SID=sid)) * (ADDRESS=(PROTOCOL=tcps)(HOST=host)(PORT=port)) * establish * ORCL * 0

Saat PROTOCOL memiliki nilai tcps untuk entri, itu menunjukkan koneksi SSL. Namun, saat HOST adalah 127.0.0.1, Anda dapat mengabaikan entri tersebut. Koneksi dari 127.0.0.1 adalah agen manajemen lokal di instans DB. Koneksi ini bukan koneksi SSL eksternal. Oleh karena itu, Anda memiliki aplikasi yang terhubung menggunakan SSL jika Anda melihat entri log pendengar ketika PROTOCOL adalah tcps dan HOST adalah bukan 127.0.0.1.

Untuk memeriksa log pendengar, Anda dapat mempublikasikan log ke Amazon CloudWatch Logs. Untuk informasi selengkapnya, lihat Menerbitkan log Oracle ke Amazon CloudWatch Logs.

Memperbarui penyimpanan kepercayaan aplikasi Anda

Anda dapat memperbarui toko kepercayaan untuk aplikasi yang menggunakan SQL* Plus atau JDBC untuk koneksi. SSL/TLS

Memperbarui penyimpanan kepercayaan aplikasi Anda untuk SQL*Plus

Anda dapat memperbarui toko kepercayaan untuk aplikasi yang menggunakan SQL* Plus untuk koneksi. SSL/TLS

catatan

Saat memperbarui penyimpanan kepercayaan, Anda dapat mempertahankan sertifikat lama selain menambahkan sertifikat baru.

Untuk memperbarui penyimpanan kepercayaan untuk aplikasi SQL*Plus
  1. Unduh sertifikat root baru yang berfungsi untuk semua AWS Wilayah dan letakkan file di ssl_wallet direktori.

    Untuk informasi tentang mengunduh sertifikat root, lihat .

  2. Jalankan perintah berikut untuk memperbarui dompet Oracle.

    prompt>orapki wallet add -wallet $ORACLE_HOME/ssl_wallet -trusted_cert -cert $ORACLE_HOME/ssl_wallet/ssl-cert.pem -auto_login_only

    Ganti nama file dengan nama yang Anda unduh.

  3. Jalankan perintah berikut untuk mengonfirmasi bahwa dompet berhasil diperbarui.

    prompt>orapki wallet display -wallet $ORACLE_HOME/ssl_wallet

    Output Anda harus berisi berikut ini.

    Trusted Certificates: Subject: CN=Amazon RDS Root 2019 CA,OU=Amazon RDS,O=Amazon Web Services\, Inc.,L=Seattle,ST=Washington,C=US

Memperbarui penyimpanan kepercayaan aplikasi Anda untuk JDBC

Anda dapat memperbarui toko kepercayaan untuk aplikasi yang menggunakan JDBC untuk SSL/TLS koneksi.

Untuk informasi tentang cara mengunduh sertifikat root, lihat .

Untuk contoh skrip yang mengimpor sertifikat, lihat Contoh skrip untuk mengimpor sertifikat ke trust store Anda.

Contoh kode Java untuk membangun koneksi SSL

Contoh kode berikut menunjukkan cara menyiapkan koneksi SSL menggunakan JDBC.

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 } }
penting

Setelah Anda menentukan bahwa koneksi database Anda menggunakan SSL/TLS dan telah memperbarui toko kepercayaan aplikasi Anda, Anda dapat memperbarui database Anda untuk menggunakan sertifikat rds-ca-rsa 2048-g1. Untuk petunjuk, lihat langkah 3 dalam Memperbarui sertifikat CA Anda dengan memodifikasi instans atau cluster DB Anda.