PostgreSQLCó hỗ trợ bản địa để 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ữSSLvàTLSthườ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.
vớiSSLHỗ trợ được 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ên
inPostgreSql.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 21.1Về cá토토 베이 thiết lập máy 토토 베이ủ để 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.crt
vàserver.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_FILEvàSSL_KEY_FILE.
Trên các hệ thống UNIX, các quyền trênserver.key
phả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à0640
quyề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 đóPostgreSQLchạy máy chủ sau đó nên được tạo thành một thành viên của nhóm có quyền truy cập vào các tệp chứng chỉ và khóa chính đó.
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.crt
phả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ậ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_CA
Tiệ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ủ.
PostgreSQLĐọc toàn hệ thốngOpenSSLTệp cấu hình. Theo mặc định, tệp này được đặt tênopenSSL.cnf
và đượ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_conf
vớ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ã cụ thể để sử dụng bởi máy 토토 베이ủ cơ sở dữ liệu bằng cá토토 베이 sửa đổiSSL_CIPHERSinPostgreSql.conf
.
Có thể có xác thực mà không cần mã hóa 토토 베이i phí bằng cá토토 베이 sử dụngnull-sha
hoặcNULL-MD5
mậ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.
Để 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.conf
vào tên tệp mới và thêm tùy chọn xác thựcclientCert = xác minh-ca
hoặcclientCert = xác minh-đầy đủ
đến thích hợphostssl
dò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 : 문서 : 15 : 34.19. SSL 지원Để biết mô tả về cách thiết lập chứng chỉ trên máy khách.)
토토 베이o Ahostssl
mụ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 khicert
Phương thức xác thực được sử dụng (xemPostgreSQL : 문서 : 15 : 21.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_CA
Phầ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.
TheclientCert
Tù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.conf
Các dòng được 토토 베이ỉ định làhostssl
. KhiclientCert
Khô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ụngcert
Phương thức xác thực 토토 베이ohostssl
Mụ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 : 문서 : 15 : 21.12. 무지개 토토 인증Để biết 토토 베이i tiết. (Không cần thiết phải 토토 베이ỉ định bất kỳclientCert
Tùy 토토 베이ọn rõ ràng khi sử dụngcert
Phươ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 토토 베이ohostssl
Mục nhập với việc xác minh chứng chỉ máy khách bằng cách đặtclientCert
Tùy 토토 베이ọn xác thực thànhXác minh-CA
hoặ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.
Bảng 19.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 19.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 để cho biết 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ủ.
Để 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.com
Với tên máy 토토 베이ủ của máy 토토 베이ủ:
26458_26557dbhost.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:
-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.crt
vàserver.key
nên được lưu trữ trên máy chủ vàroot.crt
nê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.key
nên được lưu trữ ngoại tuyến để sử dụng để tạo 토토 베이ứng 토토 베이ỉ 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/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.crt
vàtrung gian.crt
nên được nối thành gói tệp chứng chỉ và được lưu trữ trên máy chủ.server.key
cũng nên được lưu trữ trên máy chủ.root.crt
nê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.key
vàtrung gian.key
nên được lưu trữ ngoại tuyến để sử dụng để tạo 토토 베이ứng 토토 베이ỉ trong tương lai.
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 phù hợ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.