Cara Mengaktifkan SSL Certificate Dengan PostgreSQL

Jika perusahaan Anda menggunakan aplikasi website dalam melakukan transmisi data seperti informasi kartu kredit, nama pengguna dan password account, semua informasi sensitif lainnya, maka diperlukan lapisan keamanan untuk menjaga kerahasiaan data. Sebagai programmer, Anda pasti mengetahui bahwa salah satu langkah yang harus diambil demi mengamankan data penting dari website perusahaan adalah dengan mengaplikasikan SSL (Secured Socket Layer) Certificate.

SSL Certificate bisa dibilang sebagai protokol keamanan yang paling umum digunakan dalam mengamankan transmisi data melalui web dengan melakukan enkripsi. Dengan fitur enkripsi, SSL dapat mencegah orang lain yang menyadap trafik internet dan mengintip password atau yang sering disebut sebagai eavesdropping, pencurian data pada saat proses transaksi online, dan lain-lain.

SSL Certificate dapat diaktifkan pada berbagai jenis database yang menyimpan semua data penting, namun pada artikel kali ini, i3 akan membagikan langkah-langkah mengaktifkan SSL Certificate untuk perusahaan yang menggunakan database PostgreSQL.

Generate SSL dengan menggunakan OpenSSL

  • Generate SSL baru seperti yang dapat dilihat pada perintah di bawah:

openssl req -new -text -out server.req

Country Name (2 letter code) [XX]:US

State or Province Name (full name) []:Ohio

Locality Name (eg, city) [Default City]:Columbus

Organization Name (eg, company) [Default Company Ltd]:Me Inc

Organizational Unit Name (eg, section) []:IT

Common Name (eg, your name or your server's hostname) []:my.me.inc

Email Address []:me@meinc.com

  • Hapus passphrase untuk Automatic Server Start Up dengan melakukan perintah berikut:

openssl rsa -in privkey.pem -out server.key && rm privkey.pem

  • Modifikasi file menjadi self-signed dan generate .key dan .crt file hingga terlihat seperti perintah berikut:

openssl req -x509 -in server.req -text -key server.key -out server.crt

  • Pindahkan file SSL ke directory yang diinginkan, biasanya file SSL akan disimpan pada directory data cluster PostgreSQL dengan melakukan perintah berikut:

cp server.key server.crt $PGDATA

  • Ubah permissions dari file SSL agar file tersebut tidak dapat diakses selain oleh user PostgreSQL.

chmod og-rwx server.key

Note: Pastikan hostname yang diisi sesuai dengan nama hostname pada server yang digunakan. Jika sudah ada file SSL, maka tidak perlu untuk membuat SSL baru.

Setting SSL di file postgresql.conf

  • Buka file postgresql.conf

vi </lokasi/data/cluster>/postgresql.conf

  • Cari parameter SSL dan konfigurasikan agar PostgreSQL menggunakan SSL

ssl = on

ssl_ciphers = 'HIGH:MEDIUM:+3DES:!aNULL'

ssl_cert_file = '</lokasi/file>/server.crt'

ssl_key_file = '</lokasi/file>/server.key'

password_encryption = scram-sha-256

  • Restart Database

Menggunakan systemctl restart postgresql

Menggunakan pg_ctl restart utility

Cek Status SSL

  • Masuk ke dalam user yang digunakan untuk mengakses database:

su – postgres

  • Cek status dengan menggunakan perintah berikut:

psql -c "show ssl;"

Jika output dari query tersebut adalah on, maka SSL sudah aktif dan siap digunakan.

  • Login database menggunakan koneksi SSL

psql 'host=localhost user=postgres sslmode=require'

Setting pg_hba.conf

  • Tambahkan konfigurasi dibawah ini untuk mengatur bahwa hanya user postgres yang menggunakan koneksi SSL yang dapat mengakses database dan menolak semua koneksi user postgres tanpa SSL. Pastikan juga status listen_addresses telah diatur menjadi ‘*’ pada file postgresql.conf.

  • Lakukan reload database dengan menggunakan perintah pg_ctl reload utility

    Jika PostgreSQL tidak support untuk SSL, maka harus dilakukan instal ulang binary dengan mengikutsertakan perintah –with-openssl.

Tujuan utama pemasangan SSL adalah sebagai pengaman pertukaran data yang terjadi melalui jaringan internet. Oleh karena itu penggunaan SSL merupakan hal yang harus diperhatikan bagi tim IT demi mengamankan data atau informasi penting perusahaan. Untuk itu, sebagai salah satu IT expert di Indonesia, i3 telah terbukti mampu menjawab segala kebutuhan IT pada bisnis, termasuk dalam mengelola dan mengamankan data. Dengan adanya solusi PostgreSQL yang telah terjamin keamanannya, i3 akan membantu Anda dalam mengelola dan menganalisis data dengan mudah dan aman.

Tentang i3

PT Inovasi Informatika Indonesia (i3) dikenal sebagai perusahaan penyedia solusi dan layanan IT yang berfokus pada Open Source, Security, Big Data dan Cloud bagi bisnis. i3 menyediakan layanan IT yang komprehensif, meliputi konsultasi, migrasi dan implementasi, pelatihan, troubleshooting, dan managed services. Untuk informasi lebih lanjut perihal layanan dan solusi yang ditawarkan, Anda dapat menghubungi kami melalui info@i-3.co.id.