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 tỷ lệ kèo bóng đá tối nay

PostgreSQLCó hỗ trợ gốc để sử dụngsoi kèo bóng đá truoctran:Kết tỷ lệ kèo bóng đá tối nay để 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).

18.9.1. Thiết lập cơ bản

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

Để bắt đầu trongtỷ lệ kèo bóng đá tối nayMODE, 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.PostgreSQL14791_14899

Nếu thư mục dữ liệu cho phép truy cập đọc nhóm thì các tệp chứng chỉ có thể cần được đặt bên ngoài thư mục dữ liệu để tuân thủ các yêu cầu bảo mật được nêu ở trên. Nói chung, quyền truy cập nhóm được bật để cho phép người dùng không có đặc quyền sao lưu cơ sở dữ liệu và trong trường hợp đó, phần mềm sao lưu sẽ không thể đọc các tệp chứng chỉ và có thể sẽ xảy ra lỗi.

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. Sử dụng cụm mật khẩu theo mặc định vô hiệu hóa khả năng thay đổi cấu hình tỷ lệ kèo bóng đá tối nay của máy chủ mà không cần khởi động lại máy chủ, nhưng xemSSL_Passphrase_Command_Supports_Reload. Hơn nữa, các khóa riêng được bảo vệ bằng cụm mật khẩu không thể được sử dụng ở tất cả các cửa sổ.

Chứng chỉ đầu tiên trongserver.crtphải là chứng chỉ của máy chủ vì nó phải khớp tỷ lệ kèo bóng đá tối nay khóa riêng của máy chủ. Giấy chứng nhậnTrung cấpCơ 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đếnTRUE.) Điều này cho phép hết hạn các chứng chỉ trung gian dễ dàng hơn.

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.2. Cấu hình openSSL

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ởiPhiên bản OpenSSL -D. Mặc định này có thể được ghi đè bằng cách đặt biến môi trườngopenSSL_conftỷ lệ kèo bóng đá tối nay 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 bởi máy chủ cơ sở dữ liệu bằng cách 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 sử dụngnull-shahoặcNULL-MD5mật mã. Tuy nhiên, một người đàn ông có thể đọc và truyền thông tin liên lạc giữa máy khách và máy chủ.

18.9.3. 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 = 1đến thích hợphostssldò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 tỷ lệ kèo bóng đá tối nay.Phần 34.18Để biết mô tả về cách thiết lập chứng chỉ trên máy khách.) Máy chủ sẽ xác minh rằng chứng chỉ của khách hàng được ký bởi một trong các cơ quan chứng chỉ đáng tin cậy.

Chứng chỉ trung gian chuỗi lên đến chứng chỉ gốc hiện tại cũng có thể xuất hiện trongSSL_CA_FILETệp nế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. KhiclientCertkhông được chỉ định hoặc được đặt thành 0, máy chủ vẫn sẽ xác minh bất kỳ chứng chỉ máy khách nào được trình bày đối tỷ lệ kèo bóng đá tối nay tệp CA của nó, nếu một người được cấu hình - nhưng nó sẽ không nhấn mạnh rằng chứng chỉ máy khách được trình bày.

​​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 kết tỷ lệ kèo bóng đá tối nay. Nhìn thấyPhần 20.12Để 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.4. Sử dụng tệp máy chủ tỷ lệ kèo bóng đá tối nay

Bảng 18.2Tóm tắt các tệp có liên quan đến thiết lập tỷ lệ kèo bóng đá tối nay trên máy chủ. (Tên tệp được hiển thị là tên mặc đị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ủ tỷ lệ kèo bóng đá tối nay

FILE Nội dung Hiệu ứng
SSL_CERT_FILE($ pgdata/server.crt) Chứng chỉ máy chủ Đã gửi đến máy khách để cho biết danh tính của máy chủ
SSL_KEY_FILE($ pgdata/server.key) Khóa riêng của máy chủ chứng minh chứng chỉ máy chủ được gửi bởi chủ sở hữu; không cho biết chủ sở hữu chứng chỉ là đáng tin cậy
SSL_CA_FILE Cơ quan chứng chỉ đáng tin cậy Kiểm tra xem chứng chỉ máy khách có được ký bởi cơ quan chứng chỉ đáng tin cậy
SSL_CRL_FILE 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

Máy chủ đọc các tệp này khi khởi động máy chủ và bất cứ khi nào cấu hình máy chủ được tải lại. TRÊNWindowsHệ thống, chúng cũng được đọc lại bất cứ khi nào một quy trình phụ trợ mới được sinh ra cho kết tỷ lệ kèo bóng đá tối nay máy khách mới.

Nếu một lỗi trong các tệp này được phát hiện khi khởi động máy chủ, máy chủ sẽ từ chối khởi động. Nhưng nếu một lỗi được phát hiện trong quá trình tải lại cấu hình, các tệp sẽ bị bỏ qua và cấu hình tỷ lệ kèo bóng đá tối nay cũ tiếp tục được sử dụng.WindowsHệ thống, nếu một lỗi trong các tệp này được phát hiện khi bắt đầu phụ trợ, phần phụ trợ đó sẽ không thể thiết lập kết nối tỷ lệ kèo bóng đá tối nay. Trong tất cả các trường hợp này, điều kiện lỗi được báo cáo trong nhật ký máy chủ.

18.9.5. 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 sauOpenSSLlệnh, thay thếdbhost.yourdomain.comtỷ lệ kèo bóng đá tối nay tên máy chủ của máy chủ:

24542_24641dbhost.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 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 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 \root.yourdomain.com"

Sau đó, hãy ký 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):

25947_26086

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

openSSL req -new -nodes -text -out server.csr \dbhost.yourdomain.com"

server.crtserver.keynên được lưu trữ trên máy chủ và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 chứng chỉ gốc đáng tin cậy.root.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:

# Rootroot.yourdomain.com"trung gian.yourdomain.com"dbhost.yourdomain.com"

server.crttrung gian.crtnên được tỷ lệ kèo bóng đá tối nay vào 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 kết tỷ lệ kèo bóng đá tối nay chứng chỉ gốc đáng tin cậy của nó.root.keytrung gian.keynên được lưu trữ ngoại tuyến để sử dụng để tạo chứng chỉ trong tương lai.