PostgreSQL hỗ trợ kết nối SSL cho phép người dùng kết nối an toàn với cơ sở dữ liệu của họ. Trong bài viết này, chúng ta sẽ xem xét cách bật SSL trong cơ sở dữ liệu PostgreSQL.
Cách bật SSL trong PostgreSQL
Dưới đây là các bước để kích hoạt kết nối SSL trong PostgreSQL. Trên máy chủ PostgreSQL, chúng ta cần 3 chứng chỉ trong thư mục dữ liệu để cấu hình SSL. Đó là:
- root.crt (chứng chỉ gốc đáng tin cậy)
- server.crt (chứng chỉ máy chủ)
- server.key (khóa riêng)
Mở terminal và chạy lệnh sau để chạy dưới dạng root
$ sudo -
$ cd /var/lib/pgsql/data
Tạo khóa cá nhân bằng openssl. Bạn sẽ được nhắc nhập cụm mật khẩu.
$ openssl genrsa -des3 -out server.key 1024
Xóa cụm mật khẩu
$ openssl rsa -in server.key -out server.key
Phần thưởng đã đọc:Các blog cơ sở dữ liệu hàng đầu để theo dõi
Cập nhật quyền đối với tệp và quyền sở hữu tệp khóa cá nhân.
$ chmod 400 server.key
$ chown postgres.postgres server.key
Tương tự, tạo chứng chỉ máy chủ
$ openssl req -new -key server.key -days 3650 -out server.crt -x509
Trong câu lệnh trên, -x509 chỉ ra một chứng chỉ tự ký. Bạn sẽ được nhắc về các chi tiết như email, quốc gia, v.v. Hãy nhập nó và hoàn tất việc tạo chứng chỉ.
Vì chúng tôi đang sử dụng chứng chỉ tự ký nên chúng tôi sẽ sử dụng khóa máy chủ của mình làm chứng chỉ gốc.
$ cp server.crt root.crt
Cập nhật pg_hba.conf để thêm các dòng sau
# IPv4 remote connections for authenticated users hostssl all www-data 0.0.0.0/0 md5 clientcert=1 hostssl all postgres 0.0.0.0/0 md5 clientcert=1
Chỉnh sửa postgresql.conf để thêm dòng sau
ssl = on
Khởi động lại Máy chủ PostgreSQL
$ /etc/init.d/postgresql restart
Phần thưởng đọc:Cách tăng kết nối tối đa trong PostgreSQL
Bật SSL trong ứng dụng khách PostgreSQL
Chúng tôi cũng cần 3 tệp để kích hoạt SSL trong ứng dụng khách PostgreSQL. Chúng tôi sẽ lưu trữ chúng tại ~ / .postgresql / thư mục
- root.crt (chứng chỉ gốc đáng tin cậy)
- postgresql.crt (chứng chỉ khách hàng)
- postgresql.key (khóa riêng)
Tạo postgresql.key trên máy khách và xóa cụm mật khẩu.
$openssl genrsa -des3 -out /tmp/postgresql.key 1024
$openssl rsa -in /tmp/postgresql.key -out /tmp/postgresql.key
Phần thưởng đọc:Mẹo điều chỉnh hiệu suất PostgreSQL
Tiếp theo, chúng tôi tạo postgresql.crt và ký nó bằng cách sử dụng thư mục gốc đáng tin cậy (tệp khóa cá nhân từ máy chủ). Xin lưu ý , khi bạn được nhắc nhập tên chung của chứng chỉ (CN), hãy đặt nó thành tên cơ sở dữ liệu.
$openssl req -new -key /tmp/postgresql.key -out /tmp/postgresql.csr
$openssl x509 -req -in server.req -out /tmp/postgresql.csr -CA root.crt -CAkey server.key -out /tmp/postgresql.crt -CAcreateserial
Sao chép ba tệp được tạo trong thư mục / tmp của máy chủ vào máy khách. Sao chép root.crt từ thư mục server / tmp vào ~ / .postgresql / của ứng dụng khách thư mục.
Hy vọng rằng, bài viết này sẽ giúp bạn kích hoạt SSL trong PostgreSQL.