Phiên bản được hỗ trợ:hiện tại(17) /16 / 15 / 14 / 13
Phiên bản phát triển:18 / Devel
Phiên bản không được hỗ trợ:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1
Tài liệu này dành cho phiên bản không được hỗ trợ của PostgreSQL.
Bạn có thể muốn xem cùng một trang chohiện tạiPhiên bản hoặc một trong các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

18.9. Kết nối TCP/IP an toàn với cách đọc kèo bóng đá

PostgreSQLCó hỗ trợ gốc để sử dụngkèo bóng đá cúp c2: Tài liệu: 9.6: Càcách đọc kèo bóng đá để mã hóa giao tiếp máy khách/máy chủ để tăng bảo mật. Điều này yêu cầu rằngOpenSSLđược cài đặt trên cả hệ thống máy khách và máy chủ và hỗ trợ trongPostgreSQLđược bật tại thời điểm xây dựng (xemChương 16).

cách đọc kèo bóng đácách đọc kèo bóng đáHỗ trợ biên dịch trong,PostgreSQLMáy chủ có thể được bắt đầu bằngcách đọc kèo bóng đáđược bật bằng cách đọc kèo bóng đá đặt tham sốcách đọc kèo bóng đáđếntrêninPostgreSql.conf. Máy chủ sẽ lắng nghe cả bình thường vàPostgreSQL: Tài kèo bóng đá hom nay:cách đọc kèo bóng đá trên cùng một cổng TCP và sẽ thương lượng với bất kỳ máy khách cách đọc kèo bóng đá nào về việc có sử dụngcách đọc kèo bóng đá. Theo mặc định, đây là tùy chọn của khách hàng; nhìn thấyPhần 20.1Giới thiệu về cách đọc kèo bóng đá thiết lập máy chủ để yêu cầu sử dụngcách đọc kèo bóng đáĐối với một số hoặc tất cả các cách đọc kèo bóng đá.

PostgreSQLĐọc toàn hệ thốngOpenSSLTệp cấu hình. Theo mặc định, tệp này được đặt tênopenSSL.cnfvà nằm trong thư mục được báo cáo bởiOpenSSL phiên bản -D. Mặc định này có thể được ghi đè bằng cách đọc kèo bóng đá đặt biến môi trườngopenSSL_confcách đọc kèo bóng đá tên của tệp cấu hình mong muốn.

OpenSSLHỗ trợ một loạt các mật mã và thuật toán xác thực, có sức mạnh khác nhau. Trong khi một danh sách các mật mã có thể được chỉ định trongOpenSSLTệp cấu hình, bạn có thể chỉ định các mật mã cụ thể để sử dụng máy chủ cơ sở dữ liệu bằng cách đọc kèo bóng đá sửa đổiSSL_CIPHERSinPostgreSql.conf.

Lưu ý:Có thể có xác thực mà không cần mã hóa chi phí bằng cách đọc kèo bóng đá sử dụngnull-shahoặcNULL-MD513288_13523

Để bắt đầu trongcách đọc kèo bóng đáMODE, các tệp chứa chứng chỉ máy chủ và khóa riêng phải tồn tại. Theo mặc định, các tệp này dự kiến ​​sẽ được đặt tênserver.crtserver.key, tương ứng, trong thư mục dữ liệu của máy chủ, nhưng các tên và vị trí khác có thể được chỉ định bằng các tham số cấu hìnhSSL_CERT_FILESSL_KEY_FILE.

Trên các hệ thống Unix, các quyền trênserver.keyphải không cho phép mọi quyền truy cập vào thế giới hoặc nhóm; Đạt được điều này bằng lệnhChmod 0600 Server.key. Ngoài ra, tệp có thể được sở hữu bởi root và có quyền truy cập đọc nhóm (nghĩa là0640quyền). Thiết lập đó được dành cho các cài đặt trong đó chứng chỉ và các tệp khóa được quản lý bởi hệ điều hành. Người dùng theo đóPostgreSQL14592_14700

Nếu khóa riêng được bảo vệ bằng cụm mật khẩu, máy chủ sẽ nhắc cho cụm mật khẩu và sẽ không bắt đầu cho đến khi nó được nhập.

Chứng chỉ đầu tiên trongserver.crtphải là chứng chỉ của máy chủ vì nó phải khớp cách đọc kèo bóng đá khóa riêng của máy chủ. Giấy chứng nhận"Trung cấp"Cơ quan chứng chỉ cũng có thể được thêm vào tệp. Làm điều này tránh sự cần thiết của việc lưu trữ chứng chỉ trung gian trên máy khách, giả sử các chứng chỉ gốc và trung gian đã được tạo bằngV3_CATiện ích mở rộng. (Điều này đặt ràng buộc cơ bản của chứng chỉCAđếnTRUE15414_15478

Không cần thiết phải thêm chứng chỉ gốc vàoserver.crt. Thay vào đó, khách hàng phải có chứng chỉ gốc của chuỗi chứng chỉ của máy chủ.

18.9.1. Sử dụng Chứng chỉ Máy khách

Để yêu cầu khách hàng cung cấp chứng chỉ đáng tin cậy, đặt chứng chỉ của cơ quan chứng chỉ gốc (CAS) Bạn tin tưởng vào một tệp trong thư mục dữ liệu, đặt tham sốSSL_CA_FILEinPostgreSql.confvào tên tệp mới và thêm tùy chọn xác thựcclientCert = 116230_16252hostssldòng trongpg_hba.conf. Một chứng chỉ sau đó sẽ được yêu cầu từ máy khách trong khi khởi động kết nối cách đọc kèo bóng đá. (Nhìn thấyPhần 32.1816464_16640

Chứng chỉ trung gian chuỗi lên đến chứng chỉ gốc hiện có cũng có thể xuất hiện trong tệproot.crtNếu bạn muốn tránh lưu trữ chúng trên máy khách (giả sử các chứng chỉ gốc và trung gian được tạo bằngV3_CAPhần mở rộng). Các mục nhập Danh sách thu hồi chứng chỉ (CRL) cũng được kiểm tra nếu tham sốSSL_CRL_FILEđược đặt.

TheclientCertTùy chọn xác thực có sẵn cho tất cả các phương thức xác thực, nhưng chỉ trongpg_hba.confCác dòng được chỉ định làhostssl. KhiclientCert17351_17556

Nếu bạn đang thiết lập chứng chỉ máy khách, bạn có thể muốn sử dụngcertPhương thức xác thực, để chứng chỉ kiểm soát xác thực người dùng cũng như cung cấp bảo mật cách đọc kèo bóng đá. Nhìn thấyPhần 20.3.9Để biết chi tiết. (Không cần thiết phải chỉ địnhclientCert = 1rõ ràng khi sử dụngcertPhương pháp xác thực.)

18.9.2. Sử dụng tệp máy chủ cách đọc kèo bóng đá

Bảng 18-2Tóm tắt các tệp có liên quan đến thiết lập cách đọc kèo bóng đá trên máy chủ. (Tên tệp được hiển thị là tên mặc định hoặc điển hình. Các tên được cấu hình cục bộ có thể khác nhau.)

Bảng 18-2. Sử dụng tệp máy chủ cách đọc kèo bóng đá

FILE Nội dung Hiệu ứng
SSL_CERT_FILE($ pgdata/server.crt) Chứng chỉ máy chủ Đã gửi cho máy khách để chỉ ra danh tính của máy chủ
SSL_KEY_FILE($ pgdata/server.key) Phím tư nhân máy chủ proves server certificate was sent by the owner; không cho biết chủ sở hữu chứng chỉ là đáng tin cậy
SSL_CA_FILE($ pgdata/root.crt) Cơ quan chứng chỉ đáng tin cậy 19315_19392
SSL_CRL_FILE($ pgdata/root.crl) Chứng chỉ bị thu hồi bởi cơ quan chứng chỉ Chứng chỉ máy khách không được có trong danh sách này

Các tệpserver.key, server.crt, root.crtroot.crl(hoặc tên thay thế được cấu hình của chúng) chỉ được kiểm tra trong khi khởi động máy chủ; Vì vậy, bạn phải khởi động lại máy chủ để các thay đổi trong chúng có hiệu lực.

18.9.3. Tạo chứng chỉ

Để tạo chứng chỉ tự ký đơn giản cho máy chủ, có giá trị trong 365 ngày, sử dụng những điều sau đâyOpenSSLlệnh, thay thếdbhost.yourdomain.comcách đọc kèo bóng đá tên máy chủ của máy chủ:

20415_20513dbhost.yourdomain.com"

Sau đó, làm:

Chmod OG-RWX Server.key

Vì máy chủ sẽ từ chối tệp nếu quyền của nó tự do hơn thế này. Để biết thêm chi tiết về cách đọc kèo bóng đá tạo khóa và chứng chỉ riêng của máy chủ của bạn, hãy tham khảoOpenSSLTài liệu.

Trong khi chứng chỉ tự ký có thể được sử dụng để kiểm tra, chứng chỉ được ký bởi cơ quan chứng chỉ (CA) (thường là gốc toàn doanh nghiệpCA) nên được sử dụng trong sản xuất.

Để tạo chứng chỉ máy chủ có danh tính có thể được xác thực bởi các máy khách, trước tiên hãy tạo một yêu cầu ký chứng chỉ (CSR) và tệp khóa công khai/riêng tư:

openSSL req -new -nodes -text -out root.csr \
  -keyout root.key -subj "/cn =root.yourdomain.com"
chmod og-rwx root.key

Sau đó, hãy ký vào yêu cầu bằng khóa để tạo thẩm quyền chứng chỉ gốc (sử dụng mặc địnhOpenSSLVị trí tệp cấu hình trênLinux):

OpenSSL X509 -req -in root.csr -text -way 3650 \
  -EXTFILE /ETC/cách đọc kèo bóng đá/openssl.cnf -Extensions v3_ca \
  -SignKey root.key -out root.crt

Cuối cùng, hãy tạo chứng chỉ máy chủ được ký bởi Cơ quan chứng chỉ gốc mới:

22022_22104dbhost.yourdomain.com"
Chmod OG-RWX Server.Key

OpenSSL X509 -Req -in server.csr -text -way 365 \
  -Ca root.crt -cakey root.key -cacreateserial \
  -out server.crt

server.crtserver.keynên được lưu trữ trên máy chủ vàroot.crt22457_22595root.keynên được lưu trữ ngoại tuyến để sử dụng trong việc tạo chứng chỉ trong tương lai.

Cũng có thể tạo một chuỗi niềm tin bao gồm các chứng chỉ trung gian:

# Root
openSSL req -new -nodes -text -out root.csr \
  -keyout root.key -subj "/cn =root.yourdomain.com"
Chmod OG-RWX Root.Key
OpenSSL X509 -req -in root.csr -Text -ways 3650 \
  -EXTFILE /ETC/cách đọc kèo bóng đá/openssl.cnf -Extensions v3_ca \
  -signkey root.key -out root.crt

# trung cấp
openSSL req -new -nodes -text -out idmediate.csr \
  -Keyout trung gian.key -subj "/cn =trung gian.yourdomain.com"
Chmod OG-RWX trung gian.KEY
OpenSSL X509 -Req -in idmediate.csr -text -ways 1825 \
  -EXTFILE /ETC/cách đọc kèo bóng đá/openssl.cnf -Extensions v3_ca \
  -Ca root.crt -cakey root.key -cacreateserial \
  -Out trung gian.crt

# lá cây
openSSL req -new -nodes -text -out server.csr \
  -keyout server.key -subj "/cn =dbhost.yourdomain.com"
Chmod OG-RWX Server.Key
OpenSSL X509 -Req -in server.csr -text -way 365 \
  -Ca trung gian.crt -cakey trung gian.key -cacreateserial \
  -out server.crt

server.crttrung gian.crtnên được nối thành gói tệp chứng chỉ và được lưu trữ trên máy chủ.server.keycũng nên được lưu trữ trên máy chủ.root.crtnên được lưu trữ trên máy khách để máy khách có thể xác minh rằng chứng chỉ lá của máy chủ đã được ký bởi một chuỗi các chứng chỉ được liên cách đọc kèo bóng đá với chứng chỉ gốc đáng tin cậy của nó.root.keytrung gian.key24330_24398