Chứng chỉ SSL cho PostgreSQL
Phần này mô tả cách thiết lập chứng chỉ ssl để kích hoạt kết nối được mã hóa từ PgAdmin trên một số máy khách đến postgresql trên máy chủ. Giả định là postgresql (được biên dịch với hỗ trợ ssl) và openssl đã được cài đặt và hoạt động trên máy chủ (Linux). PgAdmin đã được cài đặt trên máy khách (Windows hoặc Linux).Trên máy chủ, cần có ba chứng chỉ trong thư mục dữ liệu. CentOS mặc định là /var/lib/pgsql/data/:
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)
Phát hành lệnh dưới dạng root.
Mã:
sudo -
Mã:
cd /var/lib/pgsql/data
Mã:
openssl genrsa -des3 -out server.key 1024
Mã:
openssl rsa -in server.key -out server.key
Mã:
chmod 400 server.key
chown postgres.postgres server.key
-subj là phím tắt để tránh nhắc nhập thông tin.
-x509 tạo ra chứng chỉ tự ký thay vì yêu cầu chứng chỉ.
Mã:
openssl req -new -key server.key -days 3650 -out server.crt -x509 -subj '/C=CA/ST=British Columbia/L=Comox/O=TheBrain.ca/CN=thebrain.ca/[emailprotected]'
Mã:
cp server.crt root.crt
Mã:
# TYPE DATABASE USER CIDR-ADDRESS METHOD# "local" chỉ dành cho kết nối socket miền Unixlocal all all trust# IPv4 local connections:host all all 127.0.0.1/32 trust
# IPv4 remote connections for authenticated usershostssl all www-data 0.0.0.0/0 md5 clientcert=1
hostssl all postgres 0.0.0.0/0 md5 clientcert=1
Mã:
ssl = on
Mã:
/etc/init.d/postgresql restart
Trên máy khách, chúng ta cần ba tệp. Đối với Windows, các tệp này phải nằm trong thư mục %appdata%\postgresql\. Đối với Linux, thư mục ~/.postgresql/.
root.crt (chứng chỉ gốc đáng tin cậy)
postgresql.crt (chứng chỉ máy khách)
postgresql.key (khóa riêng)
Tạo các tệp cần thiết trên máy chủ, sau đó sao chép chúng vào máy khách. Chúng tôi sẽ tạo các tệp cần thiết trong thư mục /tmp/.
Trước tiên, hãy tạo khóa riêng postgresql.key cho máy khách và xóa cụm mật khẩu.
Mã:
openssl genrsa -des3 -out /tmp/postgresql.key 1024
Mã:
openssl rsa -in /tmp/postgresql.key -out /tmp/postgresql.key
Mã:
openssl req -new -key /tmp/postgresql.key -out /tmp/postgresql.csr -subj '/C=CA/ST=British Columbia/L=Comox/O=TheBrain.ca/CN=www-data'
Mã:
openssl x509 -req -in /tmp/postgresql.csr -CA root.crt -CAkey server.key -out /tmp/postgresql.crt -CAcreateserial
Sao chép chứng chỉ gốc đáng tin cậy root.crt từ máy chủ máy đến máy khách (đối với Windows pgadmin %appdata%\postgresql\ hoặc đối với Linux pgadmin ~/.postgresql/). Thay đổi quyền tệp của postgresql.key để hạn chế quyền truy cập chỉ dành cho bạn (có thể không cần thiết trên Windows vì quyền truy cập bị hạn chế đã được kế thừa). Xóa các tệp khỏi thư mục máy chủ /tmp/.