PostgreSQL사용에 대한 기본 지원SSL보안 강화를 위해 클라이언트/서버 통신 암호화에 대한 연결. 이것은 필요합니다OpenSSL클라이언트와 서버 시스템 모두에 설치되고 해당 지원PostgreSQL빌드 시간에 활성화되어 있습니다 (참조17 장).
withSSL지원 컴파일,PostgreSQL서버를 시작할 수 있습니다SSL매개 변수를 설정하여 활성화SSLtoon
inpostgresql.conf
. 서버는 정상과를 모두 듣습니다.SSL동일한 TCP 포트의 연결 및 사용 여부에 대해 연결 클라이언트와 협상 할 것입니다SSL. 기본적으로 이것은 클라이언트의 옵션입니다. 보다섹션 21.1사용해야 할 서버를 설정하는 방법SSL일부 또는 모든 연결의 경우
시작하려면SSL모드, 서버 메이저 토토 사이트와 개인 키가 포함 된 파일이 있어야합니다. 기본적 으로이 파일은 명명 될 것으로 예상Server.crt
andServer.key
각각 서버의 데이터 디렉토리에서 구성하지만 구성 매개 변수를 사용하여 다른 이름과 위치를 지정할 수 있습니다.SSL_CERT_FILEandssl_key_file.
UNIX 시스템에서 권한Server.key
세계 또는 그룹에 대한 접근을 허용하지 않아야합니다. 명령으로 이것을 달성CHMOD 0600 Server.key
. 또는 파일은 루트가 소유 할 수 있으며 Group Read Access (즉,0640
권한). 이 설정은 운영 체제에서 인증서 및 키 파일을 관리하는 설치를위한 것입니다.PostgreSQL서버 실행은 해당 메이저 토토 사이트 및 키 파일에 액세스 할 수있는 그룹 구성원이되어야합니다.
데이터 디렉토리에서 그룹 읽기 액세스를 허용하는 경우 위에서 설명한 보안 요구 사항을 준수하려면 메이저 토토 사이트 파일이 데이터 디렉토리 외부에 위치해야 할 수 있습니다. 일반적으로 그룹 액세스는 비전지가없는 사용자가 데이터베이스를 백업 할 수 있도록 할 수 있으며,이 경우 백업 소프트웨어는 메이저 토토 사이트 파일을 읽을 수 없으며 오류가 발생할 수 있습니다..
개인 키가 암호로 보호되는 경우 서버는 암호를 자랑하고 입력 될 때까지 시작되지 않습니다. 기본적으로 암호를 사용하면 서버 재시작없이 서버의 SSL 구성을 변경하는 기능이 비활성화되지만 참조ssl_passphrase_command_supports_reload. 또한 Windows에서는 PassPhrase로 보호 된 개인 키를 전혀 사용할 수 없습니다.
첫 번째 메이저 토토 사이트Server.crt
서버의 개인 키와 일치해야하므로 서버의 메이저 토토 사이트 여야합니다. 의 증명서“중간”인증 기관도 파일에 추가 될 수 있습니다. 이렇게하면 루트 및 중간 인증서가로 작성되었다고 가정 할 때 중간 인증서를 클라이언트에 저장할 필요가 없습니다.V3_CA
확장. (이것은 메이저 토토 사이트의 기본 제약 조건을 설정합니다CA
toTrue
.) 이것은 중간 증명서를보다 쉽게 만료 할 수 있습니다.
루트 메이저 토토 사이트를 추가 할 필요는 없습니다Server.crt
. 대신 클라이언트는 서버 인증 체인의 루트 메이저 토토 사이트를 가져야합니다.
PostgreSQL시스템 전체를 읽습니다OpenSSL구성 파일. 기본적 으로이 파일은입니다.OpenSSL.CNF
|OpenSSL 버전 -D
. 이 기본값은 환경 변수를 설정하여 재정의 할 수 있습니다OpenSSL_CONF
원하는 구성 파일의 이름으로.
OpenSSL다양한 강도의 광범위한 암호 및 인증 알고리즘을 지원합니다. 암호 목록은에 지정할 수 있습니다.OpenSSL구성 파일, 수정하여 데이터베이스 서버에서 사용하기 위해 특별히 암호를 지정할 수 있습니다SSL_CIPHERSinpostgresql.conf
.
사용하여 암호화 오버 헤드없이 인증을 가질 수 있습니다Null-Sha
또는NULL-MD5
암호. 그러나 중간에 사람은 클라이언트와 서버 간의 통신을 읽고 통과 할 수 있습니다. 또한 인증 오버 헤드에 비해 암호화 오버 헤드가 최소화됩니다. 이러한 이유로 Null 암호는 권장되지 않습니다.
고객이 신뢰할 수있는 메이저 토토 사이트를 제공하도록 요구하려면 루트 메이저 토토 사이트 당국의 메이저 토토 사이트를 배치하십시오 (CAs) 데이터 디렉토리의 파일을 신뢰하고 매개 변수를 설정SSL_CA_FILEinpostgresql.conf
새 파일 이름으로 인증 옵션을 추가하십시오ClientCert = Verify-CA
또는clientCert = verify-full
적절한hostssl
in inPG_HBA.conf
. 그런 다음 SSL 연결 시작 중에 클라이언트에게 인증서를 요청합니다. (보다토토 사이트 : 문서 : 14 : 34.19. SSL 지원클라이언트에서 메이저 토토 사이트를 설정하는 방법에 대한 설명.)
aHostssl
입장ClientCert = Verify-CA
, 서버는 고객의 메이저 토토 사이트가 신뢰할 수있는 메이저 토토 사이트 중 하나에 의해 서명되었는지 확인합니다. 만약에clientCert = verify-full
지정되어 있으면 서버는 인증 체인을 확인할뿐만 아니라 사용자 이름이나 매핑이와 일치하는지 확인합니다.CN
(공통 이름) 제공 메이저 토토 사이트. 메이저 토토 사이트 체인 검증은 항상를 보장합니다.cert
인증 방법이 사용됩니다 (참조PostgreSQL : 문서 : 14 : 21.12. 메이저 토토 사이트 인증).
기존 루트 인증서까지 체인하는 중간 인증서SSL_CA_FILE클라이언트에 저장을 피하려면 파일 (루트 및 중간 인증서가 생성되었다고 가정합니다V3_CA
확장). 인증서 취소 목록 (CRL) 항목도 매개 변수을 확인합니다.SSL_CRL_FILE또는SSL_CRL_DIR가 설정되었습니다.
theClientCert
인증 옵션은 모든 인증 방법에 사용할 수 있지만pg_hba.conf
로 지정된 줄hostssl
. 언제ClientCert
지정되지 않은 경우 서버는 클라이언트 인증서가 제시되고 CA가 구성된 경우에만 CA 파일에 대한 클라이언트 인증서를 확인합니다..
로그인하는 동안 사용자가 메이저 토토 사이트를 제공한다는 두 가지 접근 방식이 있습니다.
첫 번째 접근 방식은를 사용합니다.cert
인증 방법hostssl
출품작PG_HBA.conf
, 인증서 자체가 인증에 사용되면서 SSL 연결 보안을 제공합니다. 보다PostgreSQL : 문서 : 14 : 21.12. 메이저 토토 사이트 인증자세한 내용. (어떤 것을 지정할 필요는 없습니다ClientCert
옵션을 사용할 때 옵션cert
인증 방법.)이 경우CN
(공통 이름) 인증서에 제공된 사람은 사용자 이름 또는 해당 매핑에 대해 확인됩니다.
두 번째 접근 방식은에 대한 인증 방법을 결합합니다.hostssl
설정하여 클라이언트 메이저 토토 사이트 확인이있는 항목ClientCert
인증 옵션verify-ca
또는verify-full
. 전자 옵션은 메이저 토토 사이트가 유효하다는 것을 강요하는 반면, 후자는CN
(공통 이름) 인증서의 사용자 이름 또는 해당 매핑과 일치합니다.
표 19.2서버의 SSL 설정과 관련된 파일을 요약합니다. (표시된 파일 이름은 기본 이름입니다. 로컬로 구성된 이름은 다를 수 있습니다.)
표 19.2. SSL 서버 파일 사용
파일 | 내용 | 효과 |
---|---|---|
SSL_CERT_FILE($ pgdata/server.crt ) |
서버 메이저 토토 사이트 | 서버의 ID를 표시하기 위해 클라이언트에게 보냈습니다 |
ssl_key_file($ pgdata/server.key ) |
서버 개인 키 | 서버 메이저 토토 사이트가 소유자가 전송했음을 증명합니다. 인증서 소유자가 신뢰할 수 있음을 나타내지 않습니다 |
SSL_CA_FILE | 신뢰할 수있는 메이저 토토 사이트 당국 | 신뢰할 수있는 메이저 토토 사이트에 의해 고객 메이저 토토 사이트가 서명되었는지 확인 |
SSL_CRL_FILE | 메이저 토토 사이트 당국이 취소 한 메이저 토토 사이트 | 클라이언트 메이저 토토 사이트는이 목록에 있어야합니다 |
서버는 서버 시작과 서버 구성이 다시로드 될 때 마다이 파일을 읽습니다. 에Windows시스템, 새로운 클라이언트 연결을 위해 새 백엔드 프로세스가 생성 될 때마다 다시 읽습니다.
서버 시작시 이러한 파일의 오류가 감지되면 서버가 시작을 거부합니다. 그러나 구성 재 장전 중에 오류가 감지되면 파일이 무시되고 이전 SSL 구성이 계속 사용됩니다. 에Windows시스템,이 파일의 오류가 백엔드 시작에서 감지되면 해당 백엔드는 SSL 연결을 설정할 수 없습니다. 이 모든 경우에 오류 조건은 서버 로그 에보 고됩니다.
365 일 동안 유효한 서버에 대한 간단한 자체 서명 메이저 토토 사이트를 작성하려면 다음을 사용하십시오OpenSSL명령, 교체dbhost.yourdomain.com
서버 호스트 이름 :
OpenSSL REQ -New -X509 -Days 365 -Nodes -Text -out Server.crt \
-keyout server.key -subj "/cn =dbhost.yourdomain.com
"
그런 다음 :
CHMOD OG-RWX Server.key
권한이 이것보다 더 자유 롭다면 서버가 파일을 거부하기 때문에. 서버 개인 키 및 인증서를 만드는 방법에 대한 자세한 내용은를 참조하십시오.OpenSSL문서.
자체 서명 된 메이저 토토 사이트는 테스트에 사용될 수 있지만 인증 기관이 서명 한 메이저 토토 사이트 (CA) (일반적으로 기업 전역의 루트CA) 생산에 사용해야합니다.
클라이언트가 신원을 검증 할 수있는 서버 메이저 토토 사이트를 작성하려면 먼저 인증서 서명 요청을 만듭니다 (CSR) 및 공개/개인 키 파일 :
OpenSSL REQ -New -Nodes -text -out root.csr \
-keyout root.key -subj "/cn =root.yourdomain.com
"
chmod og-rwx root.key
그런 다음, 키로 요청에 서명하여 루트 메이저 토토 사이트 권한을 생성합니다 (기본값 사용OpenSSL구성 파일 위치Linux) :
OpenSSL x509 -req -in root.csr -text -days 3650 \ -extfile /etc/ssl/openssl.cnf -extensions v3_ca \ -signkey root.key -out root.crt
마지막으로 새 루트 인증서에 의해 서명 된 서버 메이저 토토 사이트 작성 :
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 -days 365 \
-ca root.crt -cakey root.key -cacreateserial \
-out server.crt
Server.crt
andServer.key
서버에 저장해야하며root.crt
클라이언트에 저장되어 클라이언트가 서버의 리프 메이저 토토 사이트에 신뢰할 수있는 루트 메이저 토토 사이트로 서명되었는지 확인할 수 있습니다.root.key
향후 메이저 토토 사이트 생성에 사용하기 위해 오프라인으로 저장해야합니다.
중간 인증서를 포함하는 신뢰 체인을 만들 수도 있습니다.
# 루트 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 -days 3650 \ -extfile /etc/ssl/openssl.cnf -extensions v3_ca \ -signkey root.key -out root.crt # 중간 OpenSSL REQ -New -Nodes -text -out intermediate.csr \ -keyout intermediate.key -subj "/cn =intermediate.yourdomain.com
" CHMOD OG-RWX Intermediate.key OpenSSL x509 -req -in intermediate.csr -text -days 1825 \ -extfile /etc/ssl/openssl.cnf -extensions v3_ca \ -ca root.crt -cakey root.key -cacreateserial \ -out intermediate.crt # 잎 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 -days 365 \ -ca intermediate.crt -cakey intermediate.key -cacreateserial \ -out server.crt
Server.crt
및intermediate.crt
인증서 파일 번들에 연결되어 서버에 저장해야합니다.Server.key
서버에 저장해야합니다.root.crt
클라이언트에 저장되어 클라이언트가 서버의 리프 메이저 토토 사이트가 신뢰할 수있는 루트 메이저 토토 사이트에 연결된 일련의 메이저 토토 사이트로 서명했는지 확인할 수 있습니다.root.key
andIntermediate.key
향후 메이저 토토 사이트 생성에 사용하기 위해 오프라인으로 저장해야합니다.
문서에 올바른 것이 없으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면