SSL เพิ่มความปลอดภัยในการสื่อสารระหว่าง Database

 

SSL หรือ Secure Socket Layer คือเทคโนโลยีที่ช่วยเพิ่มความปลอดภัยในการสื่อสารและส่งข้อมูลบนระบบอินเตอร์เน็ต ระหว่างเครื่อง Server กับ Application หรือ Browser โดยเรียกการใช้งานผ่านโปโตคอลตามวิธีการใช้งานต่างๆ

ซึ่งเจ้า SSL จะทำการ Encrypt หรือ Query ข้อมูลต่างๆ เพื่อเข้ารหัสข้อมูลในการสื่อสารของ Database เช่น Username และ Password ของผู้ใช้งาน ซึ่งจะช่วยเสริมความปลอดภัยและป้องกันระบบจากการแฮกเกอร์ที่พยายามหาช่องโหว่เข้ามาโจมตี

วิธีการ Configure ตัว PostGresSQL Server

1. สร้าง Environment โดยเลือก New Environment และภาษาที่อยากจะ Dev

  • หรือเข้าไปที่ Market Place และค้นหา PostgreSQL

2. เริ่มทำการ Config SSL โดยเลือก Web SSH

3. เพิ่มสิ่งที่จำเป็นอย่าง Private key, Server Certificate และ trusted root certificate

4. เมื่อ Web SSH ครบแล้ว สามารถทำการ Execute ได้เลย หลังจากนั้นใส่ Passphase

“cd /var/lib/pgsql/data”

“openssl genrsa -des3 -out server.key 1024”

5.กรณีที่อยากให้ Key ทำงานสมบูรณ์ ควรลบ Passphase ของตนเอง โดย Execute ตามด้านล่าง

“openssl rsa -in server.key -out server.key”

6. หลังจากนั้นใส่ Passphase เหมือนข้อสามอีกครั้ง

7. ใส่ Permission สำหรับการเข้าถึง Private key ของตนเองด้วย Command. ดังนี้

“chmod 400 server.key”

“chown postgres.postgres server.key”

 

8. สร้าง Server Certificate ตามตัวอย่างด้านล่าง

“openssl req -new -key server.key -days 3650 -out server.crt -x509 -subj ‘/C=US/  ST=California/L=PaloAlto/O=Jelastic/CN=mysite.com/[email protected]‘”

9. หลังจากสร้าง Server Certificate เราสามารถทำให้ Certificate นี้เป็น Trusted Root Certificate ได้โดยใส่ Command ดังนี้ “cp server.crt root.crt”

10. เมื่อมี Certificate ทั้ง 3 ใบแล้ว ให้เข้าไปที่ Folder ของ Environment นั้น และเปิดไฟล์ pg_hba.conf เพื่อเปลี่ยนตัวแปรต่างๆ

11. หลังจากนั้น กดบันทึกและเข้าไปที่ไฟล์ postgresql.conf เพื่อเปลี่ยนตัวแปรให้เป็น

“ssl = on”

“ssl_ca_file = ‘root.crt’”

12. กดบันทึกและ Restart PostgreSQL โดยใช้ Command ดังนี้

“Sudo service postgresql restart”

 

ทีนี้มาดูฝั่ง Client Certificate

  1. เข้าไปที่หน้า Web SSH เพื่อเชื่อมต่อกับ PosgreSQL โดยต้อง Generate Private Key อีกครั้ง

“openssl genrsa -des3 -out /tmp/postgresql.key 1024”

“openssl rsa -in /tmp/postgresql.key -out /tmp/postgresql.key”

2. สร้าง SSL Certificate สำหรับ PosgreSQL และทำการ Sign Certificate ดังตัวอย่างด้านล่าง

openssl req -new -key /tmp/postgresql.key -out /tmp/postgresql.csr -subj ‘/C=US/ST=California/L=PaloAlto/O=Jelastic/CN=webadmin’

openssl x509 -req -in /tmp/postgresql.csr -CA root.crt -CAkey server.key -out/tmp/postgresql.crt –Cacreateserial

3. หลังจากที่มี Certificate ทั้งสามใบแล้วให้นำ Certificate ที่โหลดไว้ ย้ายไปยังโฟลเดอร์ที่ชื่อว่า .postgresql

 

พอเสร็จสิ้นเรามาลอง Establish Connection ผ่าน PgAdmin กัน

1.เชื่อมต่อกับ PostgreSQL Server โดยผ่าน SSL โดยสิ่งที่เราจะต้องมีคือ Public IP หรือ Endpoint ในกรณที่ยังไม่มี Endpoint สามารถสร้างได้โดยเข้าไปที่ Setting -> Endpoints -> add

2.หลังจากนั้นเราก็ Run pgAdmin โดยใส่ข้อมูลให้ครบถ้วนแล้วกด OK

3. กดแท็ป SSL แล้วเลือก Require และกด OK

 

เพียงเท่านี้ เราก็สามารถใช้งาน PostgreSQL database ได้อย่างปลอดภัยแล้วครับ อย่างไรก็ตาม หากท่านใดติดปัญหาในขั้นตอยต่างๆ ก็สามารถติดต่อสอบถามมาที่เราได้เลยครับ

 

สนใจทดลองใช้ PROEN Cloud ฟรี! 30 วัน ลงทะเบียนได้ที่
https://www.proen.cloud/th/get-free-trials/
Tel: 02690 3888
E-mail: [email protected]