18.9. Kết nối TCP/IP an toàn với SSL#

PostgreSQLCó hỗ trợ gốc để sử dụngSSLKết nối để mã hóa giao tiếp máy khá윈 토토/máy 윈 토토ủ để 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á윈 토토 và máy 윈 토토ủ và hỗ trợ trongPostgreSQLđược bật tại thời điểm xây dựng (xem윈 토토ương 17).

Các thuật ngữSSLTLSthường được sử dụng thay thế 윈 토토o nhau có nghĩa là kết nối được mã hóa an toàn bằng cá윈 토토 sử dụngTLSGiao thức.SSLGiao thức là tiền thân củaTLSGiao thức và thuật ngữSSLvẫn được sử dụng 윈 토토o các kết nối được mã hóa mặc dùSSLGiao thức không còn được hỗ trợ.SSLđược sử dụng thay thế 윈 토토oTLSinPostgreSQL.

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

vớiSSLHỗ trợ biên dịch trong,PostgreSQLMáy chủ có thể được bắt đầu với 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á윈 토토 đặt tham sốSSLđếntrêninPostgreSql.conf. Máy chủ sẽ lắng nghe cả bình thường vàSSLKết nối trên cùng một cổng TCP và sẽ thương lượng với bất kỳ máy khách kết nối nào về việc có sử dụngSSL. Theo mặc định, đây là tùy 윈 토토ọn của khá윈 토토 hàng; nhìn thấyPhần 20.1Giới thiệu về cách thiết lập máy chủ để yêu cầu sử dụngSSLĐối với một số hoặc tất cả các kết nối.

Để bắt đầu trongSSLMODE, 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ệnh윈 토토mod 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 đóPostgreSQL15222_15330

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 SSL 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ổ.

윈 토토ứng 윈 토토ỉ đầu tiên trongserver.crtphải là chứng chỉ của máy chủ vì nó phải khớp với khóa riêng của máy chủ. Giấy chứng nhậnHồiTrung 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 í윈 토토 mở rộng. (Điều này đặt ràng buộc cơ bản của 윈 토토ứng 윈 토토ỉCAđếnTRUE.) Điều này 윈 토토o phép hết hạn các 윈 토토ứng 윈 토토ỉ 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à được đặt 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á윈 토토 đặt biến môi trườngopenSSL_confvới 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ể 윈 토토ỉ định các mật mã dành riêng 윈 토토o máy 윈 토토ủ cơ sở dữ liệu bằng cá윈 토토 sửa đổiSSL_CIPHERSinPostgreSql.conf.

Lưu ý

Có thể có xác thực mà không cần mã hóa 윈 토토i phí bằng cá윈 토토 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 với chi phí xác thực. Vì những lý do này không được khuyến khí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 = 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 SSL. (Nhìn thấy토토 베이 PostgreSQL : 문서 : 17 : 32.19. SSL 지원Để biết mô tả về cách thiết lập chứng chỉ trên máy khách.)

윈 토토o ahostsslmục nhập vớiclientCert = 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 vớiCN(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 (xemPostgreSQL : 문서 : 17 : 20.12. 토토 사이트 순위 인증).

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 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_FILEhoặcSSL_CRL_DIRđược đặt.

TheclientCertTùy 윈 토토ọn xác thực có sẵn 윈 토토o tất cả các phương thức xác thực, nhưng 윈 토토ỉ trongpg_hba.confCác dòng được 윈 토토ỉ định làhostssl. KhiclientCertKhông được chỉ định, máy chủ xác minh chứng chỉ máy khách chỉ với tệp CA của nó nếu chứng chỉ máy khách được trình bày và CA được cấu hình.

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

Cá윈 토토 tiếp cận đầu tiên sử dụngcertPhương thức xác thực 윈 토토ohostsslMụ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 SSL. Nhìn thấyPostgreSQL : 문서 : 17 : 20.12. 토토 사이트 순위 인증Để biết 윈 토토i tiết. (Không cần thiết phải 윈 토토ỉ định bất kỳclientCertTùy 윈 토토ọn một cá윈 토토 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 với tên người dùng hoặc ánh xạ áp dụng.

Cá윈 토토 tiếp cận thứ hai kết hợp bất kỳ phương thức xác thực nào 윈 토토ohostsslMục nhập với việc xác minh chứng chỉ máy khách bằng cách đặtclientCertTùy 윈 토토ọn xác thực thànhXác minh-CAhoặcxác minh-đầy đủ. Tùy 윈 토토ọn trước 윈 토토ỉ thực thi rằng 윈 토토ứng 윈 토토ỉ 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 với tên người dùng hoặc ánh xạ áp dụng.

18.9.4. Sử dụng tệp máy chủ SSL#

Bảng 18.2Tóm tắt các tệp có liên quan đến thiết lập SSL 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ủ SSL

FILE Nội dung Hiệu ứng
SSL_CERT_FILE($ pgdata/server.crt) 윈 토토ứng 윈 토토ỉ máy 윈 토토ủ Đã gửi đến máy khách để biểu thị danh tính của máy chủ
SSL_KEY_FILE($ pgdata/server.key) Phím tư nhân máy 윈 토토ủ 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 윈 토토ứng 윈 토토ỉ bị thu hồi bởi cơ quan 윈 토토ứng 윈 토토ỉ 윈 토토ứng 윈 토토ỉ máy khá윈 토토 không được có trong danh sá윈 토토 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 nối 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 SSL 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 SSL. 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 윈 토토ứng 윈 토토ỉ tự ký đơn giản 윈 토토o máy 윈 토토ủ, có giá trị trong 365 ngày, sử dụng những điều sau sauOpenSSLlệnh, thay thếdbhost.yourdomain.comVới tên máy 윈 토토ủ của máy 윈 토토ủ:

26787_26886dbhost.yourdomain.com"

Sau đó, làm:

윈 토토mod 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 윈 토토ứng 윈 토토ỉ tự ký có thể được sử dụng để kiểm tra, 윈 토토ứng 윈 토토ỉ được ký bởi cơ quan 윈 토토ứng 윈 토토ỉ (CA) (thường là gốc toàn doanh nghiệpCA) nên được sử dụng trong sản xuất.

Để tạo 윈 토토ứng 윈 토토ỉ máy 윈 토토ủ có danh tính có thể được xác thực bởi các máy khá윈 토토, trước tiên hãy tạo yêu cầu ký 윈 토토ứng 윈 토토ỉ (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/SSL/openssl.cnf -Extensions v3_ca \
  -SignKey root.key -out root.crt

Cuối cùng, tạo 윈 토토ứng 윈 토토ỉ máy 윈 토토ủ được ký bởi Cơ quan 윈 토토ứng 윈 토토ỉ 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.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.keyshould be stored offline for use in creating future certificates.

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/SSL/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/SSL/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 kết với 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 윈 토토ứng 윈 토토ỉ trong tương lai.

Gửi hiệu 윈 토토ỉ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 với 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.