全部产品
Search
文档中心

Hologres:Enkripsi dalam transit

更新时间:Feb 04, 2026

Untuk meningkatkan keamanan tautan data antara aplikasi client Anda dan Hologres, Anda dapat mengaktifkan enkripsi Secure Sockets Layer (SSL) dalam transit. SSL membangun koneksi terenkripsi antara instans Hologres dan client menggunakan sertifikat digital dan algoritma enkripsi, seperti Transport Layer Security (TLS), sehingga melindungi kerahasiaan dan integritas data selama transmisi.

Skenario

Enkripsi SSL dalam transit cocok untuk skenario berikut:

  • Akses database remote: Saat client perlu mengakses database dari lokasi remote, enkripsi SSL dalam transit dapat meningkatkan keamanan data selama transmisi.

  • Memenuhi persyaratan keamanan dan kepatuhan: Banyak standar industri dan regulasi mewajibkan penggunaan enkripsi untuk data dalam transit. Penggunaan enkripsi SSL membantu organisasi Anda memenuhi persyaratan keamanan dan kepatuhan tersebut.

SSL menyediakan enkripsi lapisan transport untuk koneksi jaringan, yang meningkatkan keamanan dan integritas data komunikasi, tetapi juga menambah waktu respons koneksi jaringan.

Prasyarat

  • Instans Hologres telah dibuat. Untuk informasi lebih lanjut, lihat Beli instans Hologres.

  • Client PSQL atau Java Database Connectivity (JDBC) telah diunduh dan diinstal. Untuk informasi lebih lanjut, lihat Client PSQL atau JDBC.

Peringatan

  • Hologres V1.1 dan versi yang lebih baru mendukung enkripsi dalam transit. V1.2 dan versi yang lebih baru mendukung TLS. V2.1 dan versi yang lebih baru mendukung enkripsi dalam transit, enkripsi dalam transit yang menggunakan sertifikat CA, serta pengaktifan self-service di Konsol management.

    Catatan

    Jika instans Anda lebih lama dari V1.1, kirimkan masukan Anda melalui Kesalahan umum saat persiapan upgrade gagal atau dengan bergabung ke grup DingTalk Hologres. Untuk informasi lebih lanjut, lihat Bagaimana cara mendapatkan dukungan online lebih lanjut?.

  • Mengaktifkan atau menonaktifkan enkripsi SSL dalam transit memerlukan restart instans. Lakukan dengan hati-hati karena enkripsi SSL dalam transit dinonaktifkan secara default.

    • Setelah Anda mengaktifkan enkripsi SSL dalam transit untuk Hologres, client diperbolehkan terhubung ke Hologres menggunakan SSL. Saat client terhubung ke Hologres, Anda dapat memilih apakah akan menggunakan koneksi terenkripsi, tetapi pilihan tersebut harus ditentukan secara eksplisit.

    • Setelah Anda menonaktifkan enkripsi SSL dalam transit untuk Hologres, hanya koneksi non-SSL yang didukung.

  • Hologres mendukung mode berikut untuk enkripsi SSL dalam transit:

    Mode SSL

    Versi minimum yang didukung

    Require: Hanya mengenkripsi tautan data.

    V1.1

    Verify-CA: Mengenkripsi tautan data dan menggunakan sertifikat CA untuk mengotentikasi server Hologres.

    V2.1

    Verify-Full: Mengenkripsi tautan data, menggunakan sertifikat CA untuk mengotentikasi server Hologres, dan membandingkan CN atau DNS dalam sertifikat dengan titik akhir Hologres yang dikonfigurasi untuk koneksi.

    V2.1

  • Sertifikat SSL berlaku selama satu tahun. Anda harus memperbarui sertifikat tersebut secara manual sebelum masa berlakunya habis. Jika tidak, Anda tidak dapat menggunakan enkripsi SSL untuk terhubung ke instans setelah sertifikat kedaluwarsa.

  • Mengaktifkan enkripsi SSL dalam transit meningkatkan utilisasi CPU dan latensi baca/tulis.

  • Setelah Anda mengaktifkan enkripsi SSL dalam transit, koneksi yang ada harus diputus dan disambungkan ulang agar enkripsi berlaku.

  • Mengaktifkan atau menonaktifkan enkripsi SSL dalam transit serta memperbarui sertifikat SSL akan me-restart instans Hologres Anda. Proses ini memakan waktu sekitar 3 menit. Lakukan operasi ini selama jam sepi.

Langkah 1: Aktifkan enkripsi dalam transit untuk instans Hologres

  1. Masuk ke Konsol management Hologres dan pilih wilayah di pojok kiri atas.

  2. Pada panel navigasi di sebelah kiri, klik Instances, lalu klik ID instans yang dituju.

  3. Pada halaman produk instans, klik Data Security.

  4. Pada tab SSL, aktifkan sakelar SSL Encryption.

  5. Pada kotak dialog Enable SSL Encryption, klik Enable SSL encryption.

Langkah 2: Unduh sertifikat CA

Hologres menyediakan sertifikat CA instans untuk Anda unduh. Saat Anda terhubung secara remote ke instans Hologres dari client, Anda dapat menggunakan sertifikat CA instans tersebut untuk memverifikasi keaslian instans.

  1. Masuk ke Konsol management Hologres dan pilih wilayah di pojok kiri atas.

  2. Pada panel navigasi di sebelah kiri, klik Instances, lalu klik ID instans yang dituju.

  3. Pada halaman produk instans, klik Data Security.

  4. Pada tab SSL, klik Download Certificate.

Langkah 3: Terhubung ke Hologres

Anda dapat terhubung ke Hologres menggunakan client PSQL atau JDBC. Selama prosedur koneksi, Anda dapat mengonfigurasi parameter untuk memilih apakah akan mengaktifkan enkripsi SSL dalam transit.

Gunakan command line PSQL untuk terhubung ke Hologres

  • Pernyataan koneksi.

    PG_USER=<AccessKey ID> 
    PG_PASSWORD=<AccessKey Secret> 
    PG_SSLMODE=<SSL Mode> 
    PG_SSLROOTCERT=<certificate folder> 
    PGSSLMODE=$PG_SSLMODE PGSSLROOTCERT=$PG_SSLROOTCERT PGUSER=$PG_USER PGPASSWORD=$PG_PASSWORD psql -p <Port> -h <Endpoint> -d <Database>
  • Deskripsi parameter.

    Parameter

    Deskripsi

    AccessKey ID

    ID AccessKey Akun Alibaba Cloud Anda.

    Buka AccessKey Management untuk mendapatkan ID AccessKey.

    Gunakan variabel lingkungan untuk username dan password guna mengurangi risiko kebocoran kredensial.

    AccessKey Secret

    Rahasia AccessKey Akun Alibaba Cloud Anda.

    Buka AccessKey Management untuk mendapatkan rahasia AccessKey.

    Gunakan variabel lingkungan untuk username dan password guna mengurangi risiko kebocoran kredensial.

    SSL Mode

    Mode enkripsi dalam transit untuk menghubungkan ke Hologres menggunakan PSQL. Nilai yang valid:

    • require: Menggunakan enkripsi dalam transit. Hanya tautan data yang dienkripsi.

    • verify-ca: Mengenkripsi tautan data dan mengotentikasi instans Hologres.

    • verify-full: Mengenkripsi tautan data, mengotentikasi instans Hologres, dan membandingkan CN atau DNS dalam sertifikat dengan titik akhir database yang dikonfigurasi untuk koneksi.

    • disable: Tidak menggunakan enkripsi dalam transit.

    certificate folder

    Jalur penyimpanan sertifikat CA.

    Parameter ini wajib jika parameter SSL Mode diatur ke verify-ca atau verify-full.

    Port

    Port publik instans Hologres.

    Contoh: 80.

    Endpoint

    Titik akhir publik instans Hologres.

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

    Database

    Nama database Hologres.

    Setelah Anda membuat instans Hologres, sistem secara otomatis membuat database postgres.

    Anda dapat menggunakan database postgres untuk terhubung ke Hologres. Namun, database ini dialokasikan sumber daya yang terbatas. Buat database baru untuk pengembangan bisnis Anda. Untuk informasi lebih lanjut, lihat Buat database.

    Contoh: mydb.

  • Validasi koneksi.

    Jika Anda mengatur PGSSLMODE ke require, prompt berikut muncul saat Anda terhubung ke Hologres. Hal ini menunjukkan bahwa koneksi terenkripsi SSL digunakan.传输加密

Gunakan JDBC untuk terhubung ke Hologres

Saat Anda menggunakan JDBC untuk terhubung ke Hologres, Anda dapat menggunakan parameter konfigurasi koneksi ssl dan sslmode untuk mengontrol apakah akan menggunakan enkripsi SSL dalam transit. Hasil di Hologres bervariasi tergantung pada nilai parameter tersebut, seperti yang ditunjukkan pada tabel berikut.

Apakah enkripsi dalam transit diaktifkan untuk instans Hologres?

Konfigurasi SSL

Konfigurasi sslmode

Hasil

Ya

true

  • require

  • verify-ca

  • verify-full

Anda dapat terhubung ke server dan melakukan operasi. Enkripsi dalam transit digunakan selama transmisi data.

Ya

false

  • require

  • verify-ca

  • verify-full

Anda dapat terhubung ke server dan melakukan operasi. Enkripsi dalam transit tidak digunakan selama transmisi data.

Tidak

true

  • require

  • verify-ca

  • verify-full

Terjadi error. Pesan error sebagai berikut:

image.png

Tidak

false

  • require

  • verify-ca

  • verify-full

Anda dapat terhubung ke server dan melakukan operasi. Enkripsi dalam transit tidak digunakan selama transmisi data.

Kode berikut memberikan contoh.

 // Set the endpoint of the Hologres instance.
 String hostname = "hgxxxxxxx-cn-hangzhou-vpc.hologres.aliyuncs.com:80";
 // Set the port of the Hologres instance.
 String port = "80";
 // Set the name of the database to connect to.
 String dbname = "postgres";

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

 Properties properties = new Properties();
 // Set the username for the database connection. Use an environment variable to reduce the risk of credential leaks.
 properties.setProperty("user", "accessid");
 // Set the password for the database connection. Use an environment variable to reduce the risk of credential leaks.
 properties.setProperty("password", "accesskey");

  // Configure access over SSL.
  properties.setProperty("ssl", "true");

  // Set the name of the public key of the certificate authority.
  properties.setProperty("sslrootcert", path + "/" + "hologres_certificate.crt");

  // Configure the SSL mode. Valid values are require, verify-ca, and verify-full.
  properties.setProperty("sslmode", "verify-full");

  try {
      Class.forName("org.postgresql.Driver");
      Connection connection = DriverManager.getConnection(jdbcUrl, properties);
      // In this example, assume that a table named example exists in the postgres database. The following code queries data from the example table.
      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();
  }