Về hệ thống database thì vấn đề security chúng ta phải đặt lên hàng đầu. Sau đây tôi sẽ hướng dẫn cách cấu hình ssl seft-signed cho postgresql.
Step 1: Thực hiện tạo key cho server
Ví dụ ở đây tôi tạo key server 10 nămsudo -iu postgres
cd $PGDATA
openssl req -new -x509 -days 3650 -nodes -text -out server.crt -keyout server.key -subj "/CN=pgserver02"
cp server.crt root.crt
chmod og-rwx server.key
Step 2: Thực hiện enable ssl cho postgresql
vi $PGDATA/postgresql.conf
ssl = on
ssl_ca_file = 'root.crt'
ssl_cert_file = 'server.crt'
ssl_crl_file = ''
ssl_key_file = 'server.key'
ssl_ciphers = 'HIGH:MEDIUM:+3DES:!aNULL' # allowed SSL ciphers
ssl_prefer_server_ciphers = on
Restart PG
pg_ctl restart -D $PGDATA
Step 3: Thực hiện tạo key và certificate cho user
Ví dụ tạo key 1 năm cho usercd /home/postgres/test
Thực hiện tạo keyopenssl req -new -nodes -keyout testuser.key -out testuser.csr -subj '/CN=testuser'
Tạo certificate 1 năm cho useropenssl x509 -days 365 -req -CAcreateserial -in testuser.csr -CA $PGDATA/root.crt -CAkey $PGDATA/server.key -out testuser.crt
Cấu hình quyền cho file private keychmod og-rwx testuser.key
Kiểm tra certificate của user vừa tạoopenssl verify -CAfile $PGDATA/root.crt -purpose sslclient testuser.crt
Step 4: Thực hiện cho phép user và client kết nối đến server
sudo su - postgres
vi $PGDATA/pg_hba.conf
hostssl <dbname> <username> <Client IP Adress>/32 cert
ví dụ:hostssl dbname01 testuser 192.168.56.102/32 cert
:wq
pg_ctl -D $PGDATA reload
Step 5: Thực hiện testing kết nối từ client đến server với user key và chứng thực vừa tạo
psql 'host=192.168.56.102 port=5432 dbname=dbname01 user=testuser sslmode=verify-full sslcert=testuser.crt sslkey=testuser.key sslrootcert=root.crt'
Vậy là chúng ta đã cấu hình xong ssl self-signed cho postgresql. Do khá bận nên tôi chỉ viết ngắn gọn cho trường hợp ssl mode verify-full. Bạn có thể tìm hiều và thử thêm cho các trường hợp khác. Hy vọng sẽ giúp ích được cho bạn!!! Cảm ơn
* KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE trực tiếp từ tôi giúp bạn bước đầu trở thành những chuyên gia DBA, đủ kinh nghiệm đi thi chứng chỉ OA/OCP, đặc biệt là rất nhiều kinh nghiệm, bí kíp thực chiến trên các hệ thống Core tại VN chỉ sau 1 khoá học.
* CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
* Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile/Zalo: 0902912888
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: https://www.youtube.com/@binhguru
👨 Tiktok: https://www.tiktok.com/@binhguru
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhguru
👨 Podcast: https://www.podbean.com/pu/pbblog-eskre-5f82d6
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội
=============================