이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다배트맨 토토 PostgreSQL : 문서 : 17 : 18.9. SSL로 TCP/IP 연결 보안버전 또는 위에 나열된 다른 지원되는 버전 중 하나입니다.

17.9. 안전한 SSL과의 TCP/IP 토토 사이트 순위

PostgreSQL기본 지원이 있습니다 사용을 위해SSL토토 사이트 순위 보안 증가를 위해 클라이언트/서버 통신을 암호화합니다. 이것 필요OpenSSL가 설치되었습니다 클라이언트 및 서버 시스템 및 해당 지원에서PostgreSQL빌드 시간에 활성화되어 있습니다 (참조15 장).

withSSL지원 컴파일, 그만큼PostgreSQL서버가 될 수 있습니다 시작SSL활성화 매개 변수 설정SSLtooninpostgresql.conf. 그만큼 서버는 정상과를 모두 듣습니다.SSL동일한 TCP 포트의 토토 사이트 순위 및 의지 사용 여부에 대한 토토 사이트 순위 클라이언트와 협상SSL. 기본적으로 이것은에 있습니다 고객의 선택; 보다섹션 19.1사용해야 할 서버를 설정하는 방법SSL일부 또는 전부 사이.

PostgreSQL읽습니다 시스템 전체OpenSSL구성 파일. 기본적 으로이 파일은입니다.OpenSSL.CNF그리고 디렉토리에 있습니다 보고OpenSSL 버전 -D. 이것 환경 변수를 설정하여 기본값을 재정의 할 수 있습니다OpenSSL_CONF원하는 이름으로 구성 파일.

OpenSSL광범위한 범위를 지원합니다 암호 및 인증 알고리즘, 다양한 강도. 암호 목록은에 지정할 수 있습니다.OpenSSL구성 파일, 지정할 수 있습니다 수정하여 데이터베이스 서버에서 사용하기 위해 특별히 암호SSL_CIPHERSinpostgresql.conf.

참고 :없이 인증을받을 수 있습니다 사용하여 암호화 오버 헤드Null-Sha또는NULL-MD5암호. 그러나 a Man-in-the-Middle은 클라이언트 간의 커뮤니케이션을 읽고 통과 할 수 있습니다 그리고 서버. 또한 암호화 오버 헤드는 그것에 비해 최소입니다 인증의 오버 헤드. 이러한 이유로 널 암호는 그렇지 않습니다 추천.

시작하려면SSL모드, 파일 서버 인증서와 개인 키가 포함되어 있어야합니다. 에 의해 기본값,이 파일은 명명 될 것으로 예상Server.crtandServer.key13696_13828SSL_CERT_FILEandssl_key_file. UNIX 시스템에서 권한이Server.key세계에 대한 접근을 허용하지 않아야합니다 그룹; 명령으로 이것을 달성CHMOD 0600 Server.key. 개인 키가 암호로 보호되는 경우 서버는 암호를 신속하게하고 시작하지 않을 때까지 시작하지 않습니다. 입력되었습니다.

첫 번째 인증서Server.crt서버의 인증서는 서버의 인증서 여야합니다. 개인 키. 의 증명서"중간"증명서 당국도 가능합니다 파일에 추가되었습니다. 이렇게하면 저장의 필요성을 피할 수 있습니다 루트를 가정하고 클라이언트의 중간 인증서 중간 인증서는V3_CA확장. 이것은 더 쉽게 만료를 허용합니다 중간 증명서.

루트 인증서를 추가 할 필요는 없습니다Server.crt. 대신, 클라이언트는 근본이 있어야합니다 서버 인증서 체인의 인증서

17.9.1. 클라이언트 사용 인증서

클라이언트가 신뢰할 수있는 인증서를 제공하도록 요구하려면 루트 인증서 인증서 (CAs) 데이터 디렉토리의 파일을 신뢰합니다. 매개 변수 설정SSL_CA_FILEinpostgresql.conf새 파일 이름으로 인증 옵션 추가ClientCert = 1적절한hostsslin inPG_HBA.conf. 그러면 인증서가 될 것입니다 SSL 연결 시작 중 클라이언트로부터 요청했습니다. (보다토토 사이트 순위 : 문서 : 9.3 : SSL 지원방법에 대한 설명 클라이언트에서 인증서를 설정하려면 서버가 고객의 인증서는 신뢰할 수있는 사람 중 하나에 서명합니다. 인증 당국.

기존 루트까지 연쇄되는 중간 인증서 인증서는 파일에도 표시 될 수 있습니다root.crt저장을 피하려면 클라이언트 (루트 및 중간 인증서를 가정 한 것입니다 로 생성V3_CA확장). 인증서 취소 목록 (CRL) 항목도 매개 변수SSL_CRL_FILE가 설정되었습니다. (보다http : //h41379.www4.hpe.com/doc/83final/ba554_90007/ch04s02.htmlSSL 인증서 사용을 보여주는 다이어그램의 경우)

theClientCert옵션PG_HBA.conf모든 인증에 사용할 수 있습니다 방법, 그러나로 지정된 줄에 대해서만hostssl. 언제ClientCertIS 지정되지 않았거나 0으로 설정되어 있으면 서버는 여전히 확인합니다. CA 목록에 대한 클라이언트 인증서를 제시 한 경우 구성된 - 그러나 클라이언트 인증서가 발표.

클라이언트 인증서를 설정하는 경우 사용하고 싶을 수도 있습니다. 그만큼cert인증 방법 인증서는 사용자 인증을 제어하고 제공합니다 토토 사이트 순위 보안. 보다섹션 19.3.10자세한 내용.

17.9.2. SSL 서버 파일 사용

표 17-2요약 서버의 SSL 설정과 관련된 파일. (그만큼 표시된 파일 이름은 기본 또는 일반적인 이름입니다. 로컬 구성된 이름은 다를 수 있습니다.)

표 17-2. SSL 서버 파일 사용

파일 내용 효과
SSL_CERT_FILE($ pgdata/server.crt) 서버 인증서 서버의 ID를 표시하기 위해 클라이언트에게 전송
ssl_key_file($ pgdata/server.key) 서버 개인 키 서버 인증서가 소유자가 전송했음을 증명합니다. 그렇지 않습니다 인증서 소유자가 신뢰할 수 있음을 나타냅니다
SSL_CA_FILE($ pgdata/root.crt) 신뢰할 수있는 인증서 당국 클라이언트 인증서가 신뢰할 수있는 사람에 의해 서명되었는지 확인합니다 인증 기관
SSL_CRL_FILE($ pgdata/root.crl) 인증서 당국이 취소 한 인증서 클라이언트 인증서는이 목록에 있어야합니다

파일Server.key, Server.crt, root.crtroot.crl(또는 해당 구성된 대안 이름)은 서버 시작 중에 만 검사됩니다. 따라서 다시 시작해야합니다 발효 할 서버가 적용됩니다.

17.9.3. 인증서 만들기

서버에 대한 간단한 자체 서명 인증서를 만들려면 유효합니다. 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.crtandServer.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.crtIntermediate.crta로 연결되어야합니다 인증서 파일 번들 및 서버에 저장됩니다.Server.key서버에 저장해야합니다.root.crt클라이언트에 저장해야합니다 따라서 클라이언트는 서버의 리프 인증서가 신뢰할 수있는 루트에 토토 사이트 순위된 일련의 인증서로 서명 자격증.root.keyIntermediate.key사용하기 위해 오프라인으로 저장해야합니다 향후 인증서 생성.