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

19.9. Kết nối TCP/IP an toàn với kèo bóng đá cúp c2#

PostgreSQLCó hỗ trợ gốc để sử dụngPostgreSQL: TàKết kèo bóng đá cúp c2 để 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 17).

Các thuật ngữkèo bóng đá cúp c2TLSthường được sử dụng thay thế cho nhau có nghĩa là kết kèo bóng đá cúp c2 được mã hóa an toàn bằng cách sử dụngTLSGiao thức.kèo bóng đá cúp c2Giao thức là tiền thân củaTLSGiao thức và thuật ngữkèo bóng đá cúp c2vẫn được sử dụng cho các kết kèo bóng đá cúp c2 được mã hóa mặc dùkèo bóng đá cúp c2Giao thức không còn được hỗ trợ.kèo bóng đá cúp c2được sử dụng thay thế choTLSinPostgreSQL.

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

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

Để bắt đầu trongkèo bóng đá cúp c2MODE, 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ách sử dụng 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 đóPostgreSQL15193_15301

15311_15696

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 kèo bóng đá cúp c2 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 kèo bóng đá cúp c2 khóa riêng của máy chủ. Giấy chứng nhậnTrung cấpHồiCơ 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ủ.

19.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ởiOpenSSL phiên bản -D. Mặc định này có thể được ghi đè bằng cách đặt biến môi trườngopenSSL_confkèo bóng đá cúp c2 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ủ. Ngoài ra, chi phí mã hóa là tối thiểu so kèo bóng đá cúp c2 chi phí xác thực. Vì những lý do này không được khuyến khích.

19.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 = xác minh-cahoặcclientCert = xác minh-đầy đủđế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 kèo bóng đá cúp c2. (Nhìn thấyPhần 34.19Để biết mô tả về cách thiết lập chứng chỉ trên máy khách.)

19880_19888hostsslmục nhập kèo bóng đá cúp c2clientCert = xác minh-ca, 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. Nếu nhưclientCert = xác minh-đầy đủđược chỉ định, máy chủ sẽ không chỉ xác minh chuỗi chứng chỉ mà còn kiểm tra xem tên người dùng hay ánh xạ của nó có khớp kèo bóng đá cúp c2CN(Tên chung) của chứng chỉ được cung cấp. Lưu ý rằng xác thực chuỗi chứng chỉ luôn được đảm bảo khicertPhương thức xác thực được sử dụng (xemPhần 21.12).

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ằng20939_20946Phầ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_FILEhoặcSSL_CRL_DIRđượ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. KhiclientCert21503_21654

Có hai cách tiếp cận để thực thi rằng người dùng cung cấp chứng chỉ trong quá trình đăng nhập.

Cách tiếp cận đầu tiên sử dụngcertPhương thức xác thực chohostsslMục nhập trongpg_hba.conf, bản thân chứng chỉ được sử dụng để xác thực đồng thời cung cấp bảo mật kết nối kèo bóng đá cúp c2. Nhìn thấyPhần 21.12Để biết chi tiết. (Không cần thiết phải chỉ định bất kỳclientCertTùy chọn rõ ràng khi sử dụngcertPhương thức xác thực.) Trong trường hợp này,CN(Tên chung) Được cung cấp trong chứng chỉ được kiểm tra đối kèo bóng đá cúp c2 tên người dùng hoặc ánh xạ áp dụng.

Cách tiếp cận thứ hai kết hợp bất kỳ phương thức xác thực nào chohostsslMục nhập kèo bóng đá cúp c2 việc xác minh chứng chỉ máy khách bằng cách đặtclientCertTùy chọn xác thực thànhXác minh-CAhoặcxác minh-đầy đủ. Tùy chọn trước chỉ thực thi rằng chứng chỉ là hợp lệ, trong khi cái sau cũng đảm bảo rằngCN(tên chung) trong chứng chỉ khớp kèo bóng đá cúp c2 tên người dùng hoặc ánh xạ áp dụng.

19.9.4. Sử dụng tệp máy chủ kèo bóng đá cúp c2#

Bảng 19.2Tóm tắt các tệp có liên quan đến thiết lập kèo bóng đá cúp c2 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 19.2. Sử dụng tệp máy chủ kèo bóng đá cúp c2

Tệp Nội dung Hiệu ứng
SSL_CERT_FILE($ pgdata/server.crt) 24320_24340 Đã gửi đến máy khách để chỉ ra danh tính của máy chủ
SSL_KEY_FILE(24577_24597) Phím riêng của máy chủ 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 kèo bóng đá cúp c2 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 kèo bóng đá cúp c2 cũ tiếp tục được sử dụng. TRÊNWindowsHệ 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 kèo bóng đá cúp c2. 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ủ.

19.9.5. Tạo chứng chỉ#

26472_26571OpenSSLlệnh, thay thếdbhost.yourdomain.comkèo bóng đá cúp c2 tên máy chủ của máy chủ:

26758_26857dbhost.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.

27260_27368CA) (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 \
  -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/kèo bóng đá cúp c2/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:

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 root.crt -cakey root.key -cacreateserial \
  -out server.crt

server.crtserver.keynên được lưu trữ trên máy chủ vàroot.crt28896_29034root.keynên được lưu trữ ngoại tuyến để sử dụng để 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/kèo bóng đá cúp c2/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/kèo bóng đá cúp c2/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 kèo bóng đá cúp c2 thành gói tệp chứng chỉ và được lưu trữ trên máy chủ.30489_30501cũng nên được lưu trữ trên máy chủ.root.crt30582_30754root.keytrung gian.keynên được lưu trữ ngoại tuyến để sử dụng để tạo chứng chỉ trong tương lai.

Gửi hiệu chỉnh

Nếu bạn thấy bất cứ điều gì trong tài liệu không chính xác, không khớp Kinh nghiệm của bạn kèo bóng đá cúp c2 tính năng cụ thể hoặc yêu cầu làm rõ thêm, Vui lòng sử dụngMẫu nàyĐể báo cáo vấn đề tài liệu.