全部产品
Search
文档中心

Hologres:Enkripsi transmisi

更新时间:Jul 02, 2025

Untuk meningkatkan keamanan transmisi data antara aplikasi klien dan Hologres, Anda dapat mengaktifkan transmisi terenkripsi Secure Socket Layer (SSL). SSL mengenkripsi koneksi jaringan antara instance Hologres dan klien menggunakan sertifikat digital dan algoritma enkripsi seperti Transport Layer Security (TLS), memastikan keamanan serta integritas data yang ditransmisikan.

Skenario

Transmisi terenkripsi SSL cocok untuk skenario berikut:

  • Akses jarak jauh ke database: Saat mengakses database secara remote dari klien, Anda dapat mengaktifkan transmisi terenkripsi SSL untuk meningkatkan keamanan selama transmisi data.

  • Kepatuhan keamanan: Jika enkripsi diperlukan untuk transmisi data berdasarkan standar industri dan peraturan, Anda dapat mengaktifkan transmisi terenkripsi SSL untuk memenuhi persyaratan keamanan.

SSL mengenkripsi koneksi jaringan pada lapisan transport. Ini meningkatkan keamanan dan integritas data yang ditransmisikan, tetapi dapat meningkatkan waktu respons koneksi jaringan.

Prasyarat

  • Sebuah instance Hologres telah dibeli. Untuk informasi lebih lanjut, lihat Beli instance Hologres.

  • Klien PostgreSQL atau driver Java Database Connectivity (JDBC) telah diunduh dan diinstal. Untuk informasi lebih lanjut, lihat Klien PostgreSQL atau JDBC.

Catatan penggunaan

  • Hologres V1.1 dan versi lebih baru mendukung enkripsi transmisi. Hologres V1.2 dan versi lebih baru mendukung Transport Layer Security (TLS). Di Hologres V2.1 dan versi lebih baru, Anda dapat menggunakan sertifikat Certificate Authority (CA) dengan transmisi terenkripsi SSL dan mengaktifkan transmisi terenkripsi SSL di konsol Hologres.

    Catatan

    Jika versi instance Hologres Anda lebih lama dari V1.1, Anda dapat secara manual memperbarui instance Hologres Anda di konsol Hologres atau bergabung dengan grup DingTalk Hologres untuk menghubungi dukungan teknis Hologres. Untuk informasi lebih lanjut tentang cara memperbarui instance Hologres Anda secara manual di konsol Hologres, lihat Pembaruan Manual (beta). Untuk informasi lebih lanjut tentang cara mendapatkan dukungan teknis, lihat Dapatkan dukungan online untuk Hologres.

  • Setiap kali Anda mengaktifkan atau menonaktifkan transmisi terenkripsi SSL untuk sebuah instance, instance tersebut akan di-restart. Lanjutkan dengan hati-hati. Secara default, transmisi terenkripsi SSL dinonaktifkan.

    • Setelah transmisi terenkripsi SSL diaktifkan untuk instance Hologres, Anda diizinkan untuk terhubung ke instance Hologres melalui koneksi SSL. Dalam hal ini, saat Anda terhubung ke instance Hologres menggunakan klien, Anda harus secara eksplisit menentukan apakah akan mengenkripsi koneksi ke Hologres.

    • Setelah transmisi terenkripsi SSL dinonaktifkan untuk instance Hologres, Anda hanya dapat terhubung ke instance Hologres melalui koneksi non-SSL.

  • Tabel berikut menjelaskan mode transmisi terenkripsi SSL yang didukung oleh Hologres.

    Mode transmisi terenkripsi SSL

    Versi yang didukung

    Require: Klien menggunakan SSL untuk mengenkripsi hanya koneksi yang digunakan untuk mentransmisikan data.

    V1.1

    Verify-CA: Klien menggunakan SSL untuk mengenkripsi koneksi yang digunakan untuk mentransmisikan data dan menggunakan sertifikat CA untuk memvalidasi server Hologres.

    V2.1

    Verify-Full: Klien menggunakan SSL untuk mengenkripsi koneksi yang digunakan untuk mentransmisikan data, menggunakan sertifikat CA untuk memvalidasi server Hologres, dan memeriksa apakah CN atau Domain Name System (DNS) yang ditentukan dalam sertifikat CA konsisten dengan titik akhir Hologres yang ditentukan selama pembuatan koneksi.

    V2.1

  • Masa berlaku sertifikat SSL adalah satu tahun. Anda perlu memperbarui sertifikat SSL secara manual setelah kedaluwarsa. Jika tidak, transmisi terenkripsi SSL tidak dapat digunakan setelah sertifikat SSL kedaluwarsa.

  • Setelah transmisi terenkripsi SSL diaktifkan, beban CPU meningkat dan latensi baca/tulis meningkat.

  • Setelah Anda mengaktifkan transmisi terenkripsi SSL, Anda harus menutup dan membuat ulang koneksi yang ada agar enkripsi berlaku.

  • Saat Anda mengaktifkan atau menonaktifkan transmisi terenkripsi SSL atau memperbarui sertifikat SSL, instance Hologres Anda akan di-restart. Restart memakan waktu sekitar 3 menit. Lakukan operasi ini selama jam-jam sepi.

Langkah 1: Aktifkan transmisi terenkripsi SSL untuk instance Hologres

  1. Masuk ke konsol Hologres. Di pojok kiri atas, pilih wilayah.

  2. Di panel navigasi sebelah kiri, klik Instances. Pada halaman yang muncul, klik ID instance yang diinginkan.

  3. Di panel navigasi di sebelah kiri halaman Detail Instance, klik Data Security.

  4. Pada tab SSL, aktifkan saklar SSL Encryption.

  5. Dalam pesan Enable SSL Encryption, klik Enable SSL encryption.

Langkah 2: Unduh sertifikat CA

Hologres menyediakan sertifikat CA. Saat Anda terhubung secara remote ke instance Hologres dari klien Anda, Anda dapat menggunakan sertifikat CA dari instance untuk memvalidasi instance Hologres.

  1. Masuk ke konsol Hologres. Di pojok kiri atas, pilih wilayah.

  2. Di panel navigasi di sebelah kiri, klik Instances. Pada halaman yang muncul, klik ID instance yang diinginkan.

  3. Di panel navigasi di sebelah kiri halaman Detail Instance, klik Data Security.

  4. Pada tab SSL, klik Download Certificate.

Langkah 3: Terhubung ke instance Hologres

Anda dapat menggunakan klien PostgreSQL atau driver JDBC untuk terhubung ke instance Hologres. Anda dapat mengonfigurasi parameter untuk mengaktifkan transmisi terenkripsi SSL untuk koneksi tersebut.

Gunakan CLI PostgreSQL untuk terhubung ke instance Hologres

  • Perintah

    PG_USER=<ID AccessKey> 
    PG_PASSWORD=<Rahasia AccessKey> 
    PG_SSLMODE=<Mode SSL> 
    PG_SSLROOTCERT=<folder sertifikat> 
    PGSSLMODE=$PG_SSLMODE PGSSLROOTCERT=$PG_SSLROOTCERT PGUSER=$PG_USER PGPASSWORD=$PG_PASSWORD psql -p <Port> -h <Titik akhir> -d <Database>
  • Parameter

    Parameter

    Deskripsi

    ID AccessKey

    ID AccessKey dari akun Alibaba Cloud.

    Anda dapat memperoleh ID AccessKey dari halaman Pasangan AccessKey.

    Kami merekomendasikan Anda mengonfigurasi variabel lingkungan dan memperoleh ID AccessKey dan Rahasia AccessKey dari variabel lingkungan. Ini membantu mengurangi risiko kebocoran.

    Rahasia AccessKey

    Rahasia AccessKey dari akun Alibaba Cloud.

    Anda dapat memperoleh Rahasia AccessKey dari halaman Pasangan AccessKey.

    Kami merekomendasikan Anda mengonfigurasi variabel lingkungan dan memperoleh ID AccessKey dan Rahasia AccessKey dari variabel lingkungan. Ini membantu mengurangi risiko kebocoran.

    Mode SSL

    Mode enkripsi di mana klien PostgreSQL terhubung ke instance Hologres. Nilai valid:

    • require: Klien menggunakan SSL untuk mengenkripsi koneksi yang digunakan untuk mentransmisikan data.

    • verify-ca: Klien menggunakan SSL untuk mengenkripsi koneksi yang digunakan untuk mentransmisikan data dan memvalidasi instance Hologres.

    • verify-full: Klien menggunakan SSL untuk mengenkripsi koneksi yang digunakan untuk mentransmisikan data, memvalidasi instance Hologres, dan memeriksa apakah CN atau DNS yang ditentukan dalam sertifikat CA konsisten dengan titik akhir Hologres yang ditentukan selama pembuatan koneksi.

    • disable: Klien tidak menggunakan SSL untuk transmisi terenkripsi.

    folder sertifikat

    Lokasi penyimpanan sertifikat CA.

    Jika Anda mengatur Mode SSL ke verify-ca atau verify-full, Anda harus mengonfigurasi parameter ini.

    Port

    Nomor port publik instance Hologres.

    Contoh: 80.

    Titik akhir

    Titik akhir publik instance Hologres.

    Contoh: xxx-cn-hangzhou.hologres.aliyuncs.com.

    Database

    Nama database Hologres yang ingin Anda hubungkan.

    Setelah Anda membeli instance Hologres, database bernama postgres dibuat secara otomatis.

    Anda dapat terhubung ke database postgres. Namun, sumber daya terbatas dialokasikan ke database ini. Kami merekomendasikan Anda pergi ke konsol Hologres dan membuat database untuk memastikan sumber daya yang cukup untuk bisnis Anda. Untuk informasi lebih lanjut, lihat Buat database.

    Contoh: mydb.

  • Verifikasi

    Jika Anda mengatur parameter PGSSLMODE ke require dan pesan berikut muncul saat Anda terhubung ke Hologres, koneksi dienkripsi menggunakan SSL.传输加密

Gunakan driver JDBC untuk terhubung ke instance Hologres

Jika Anda menggunakan driver JDBC untuk terhubung ke instance Hologres, Anda dapat menggunakan parameter ssl dan sslmode untuk menentukan apakah akan mengaktifkan transmisi terenkripsi SSL. Hasil koneksi di Hologres bervariasi berdasarkan nilai setiap parameter. Tabel berikut menjelaskan pemetaan antara nilai dan hasil.

Transmisi terenkripsi SSL diaktifkan untuk instance Hologres

ssl

sslmode

Hasil

Ya

true

  • require

  • verify-ca

  • verify-full

Anda dapat menghubungkan klien ke instance Hologres dan melakukan operasi. Data dienkripsi saat ditransmisikan antara klien dan instance Hologres.

Ya

false

  • require

  • verify-ca

  • verify-full

Anda dapat menghubungkan klien ke instance Hologres dan melakukan operasi. Data tidak dienkripsi saat ditransmisikan antara klien dan instance Hologres.

Tidak

true

  • require

  • verify-ca

  • verify-full

Pesan kesalahan yang ditunjukkan pada gambar berikut dilaporkan.

image.png

Tidak

false

  • require

  • verify-ca

  • verify-full

Anda dapat menghubungkan klien ke instance Hologres dan melakukan operasi. Data tidak dienkripsi saat ditransmisikan antara klien dan instance Hologres.

Kode contoh

// Tentukan titik akhir instance Hologres.
 String hostname = "hgxxxxxxx-cn-hangzhou-vpc.hologres.aliyuncs.com:80";
 // Tentukan nomor port instance Hologres.
 String port = "80";
 //Tentukan nama database yang ingin Anda hubungkan.
 String dbname = "postgres";

 String jdbcUrl = "jdbc:postgresql://" + hostname + ":" + port + "/" + dbname+"?binaryTransfer=true";

 Properties properties = new Properties();
 // Tentukan ID AccessKey yang digunakan untuk terhubung ke database. Kami merekomendasikan Anda mengonfigurasi variabel lingkungan dan memperoleh ID AccessKey dari variabel lingkungan. 
 properties.setProperty("user", "accessid");
 // Tentukan Rahasia AccessKey yang digunakan untuk terhubung ke database. Kami merekomendasikan Anda mengonfigurasi variabel lingkungan dan memperoleh Rahasia AccessKey dari variabel lingkungan. 
 properties.setProperty("password", "accesskey");

  // Gunakan SSL untuk transmisi terenkripsi.
  properties.setProperty("ssl", "true");

  // Tentukan kunci publik CA.
  properties.setProperty("sslrootcert", path + "/" + "hologres_certificate.crt");

  // Tentukan mode koneksi SSL. Nilai valid: require, verify-ca, dan verify-full.
  properties.setProperty("sslmode", "verify-full");

  try {
      Class.forName("org.postgresql.Driver");
      Connection connection = DriverManager.getConnection(jdbcUrl, properties);
      // Dalam contoh ini, database bernama postgres berisi tabel bernama example, dan data di-query dari tabel. 
      PreparedStatement preparedStatement = connection.prepareStatement("select * from " +
              "example");
      ResultSet resultSet = preparedStatement.executeQuery();
      while (resultSet.next()) {
          ResultSetMetaData rsmd = resultSet.getMetaData();
          int columnCount = rsmd.getColumnCount();
          Map map = new HashMap();
          for (int i = 0; i < columnCount; i++) {
              map.put(rsmd.getColumnName(i + 1).toLowerCase(), resultSet.getObject(i + 1));
          }
          System.out.println(map);
      }
  } catch (Exception exception) {
      exception.printStackTrace();
  }