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

18.9. SSL을 통한 보안 TCP/IP 연결

포스트그레SQL사용에 대한 기본 지원이 있습니다SSL11805_11903오픈SSL클라이언트 및 서버 시스템 모두에 설치되며 다음을 지원합니다.PostgreSQL빌드 시 활성화됩니다(참조16장).

함께SSL지원이 컴파일되었습니다.포스트그레SQL서버를 다음으로 시작할 수 있습니다.SSL매개변수 설정으로 활성화됨ssl켜짐inpostgresql.conf. 서버는 일반 및SSL동일한 TCP 포트에 연결하고 연결 클라이언트와 사용 여부를 협상합니다SSL. 기본적으로 이는 클라이언트의 선택입니다. 보다섹션 20.1다음을 사용해야 하는 서버를 설정하는 방법에 대해SSL일부 또는 모든 연결에 대해.

포스트그레SQL시스템 전체를 읽습니다.오픈SSL구성 파일. 기본적으로 이 파일의 이름은openssl.cnf그리고 보고된 디렉토리에 위치합니다.openssl 버전 -d. 이 기본값은 환경 변수를 설정하여 재정의할 수 있습니다.OPENSSL_CONF원하는 구성 파일의 이름으로.

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

참고

이용하여 암호화 오버헤드 없이 인증이 가능합니다.NULL-SHA또는NULL-MD5암호. 그러나 중간자(man-in-the-middle)는 클라이언트와 서버 간의 통신을 읽고 전달할 수 있습니다. 또한 인증에 비해 암호화 오버헤드가 최소화됩니다. 이러한 이유로 NULL 암호화는 권장되지 않습니다.

시작하려면SSL모드에서는 서버 스포츠 토토와 개인 키가 포함된 파일이 존재해야 합니다. 기본적으로 이러한 파일의 이름은 다음과 같습니다.서버.crt그리고서버.키, 각각 서버의 데이터 디렉터리에 있지만 구성 매개변수를 사용하여 다른 이름과 위치를 지정할 수 있습니다.ssl_cert_file그리고ssl_key_file.

Unix 시스템에서 다음에 대한 권한은서버.키세계나 그룹에 대한 모든 접근을 허용하지 않아야 합니다. 다음 명령으로 이를 달성합니다.chmod 0600 서버.키. 또는 루트가 파일을 소유하고 그룹 읽기 액세스 권한을 가질 수 있습니다(즉,0640권한). 해당 설정은 운영 체제에서 스포츠 토토 및 키 파일을 관리하는 설치를 위한 것입니다. 해당 사용자는PostgreSQL서버 실행은 해당 스포츠 토토 및 키 파일에 액세스할 수 있는 그룹의 구성원이 되어야 합니다.

개인 키가 암호로 보호되는 경우, 서버는 암호를 입력하라는 메시지를 표시하고 암호를 입력할 때까지 시작되지 않습니다. 암호를 사용하면 서버를 다시 시작하지 않고 서버의 SSL 구성을 변경하는 기능도 비활성화됩니다. 또한 암호로 보호된 개인 키는 Windows에서 전혀 사용할 수 없습니다.

첫 번째 스포츠 토토서버.crt서버의 개인 키와 일치해야 하므로 서버의 스포츠 토토여야 합니다. 의 스포츠 토토중급인증 기관을 파일에 추가할 수도 있습니다. 이렇게 하면 루트 및 중간 스포츠 토토가 다음을 사용하여 생성되었다고 가정하여 클라이언트에 중간 스포츠 토토를 저장할 필요가 없습니다.v3_ca확장. (이것은 스포츠 토토의 기본 제약 조건을 설정합니다.캘리포니아.) 이렇게 하면 중간 스포츠 토토가 더 쉽게 만료될 수 있습니다.

루트 스포츠 토토를 추가할 필요는 없습니다.서버.crt. 대신 클라이언트에는 서버 스포츠 토토 체인의 루트 스포츠 토토가 있어야 합니다.

18.9.1. 클라이언트 스포츠 토토 사용

클라이언트가 신뢰할 수 있는 스포츠 토토를 제공하도록 요구하려면 루트 인증 기관의 스포츠 토토를 배치하십시오(캘리포니아s) 데이터 디렉터리의 파일을 신뢰하고 매개변수를 설정합니다.ssl_ca_filepostgresql.conf새 파일 이름에 인증 옵션을 추가클라이언트스포츠 토토=1해당하는 사람에게hostsslpg_hba.conf. 그런 다음 SSL 연결 시작 중에 클라이언트에서 스포츠 토토가 요청됩니다. (보다토토 꽁 머니 : 문서 : 10 : 33.18. SSL 지원클라이언트에서 스포츠 토토를 설정하는 방법에 대한 설명입니다.) 서버는 클라이언트의 스포츠 토토가 신뢰할 수 있는 인증 기관 중 하나에 의해 서명되었는지 확인합니다.

기존 루트 스포츠 토토에 연결되는 중간 스포츠 토토도 파일에 나타날 수 있습니다.루트.crt클라이언트에 저장하지 않으려는 경우(루트 및 중간 스포츠 토토가 다음으로 생성되었다고 가정)v3_ca확장). 매개변수가 다음과 같은 경우 스포츠 토토 해지 목록(CRL) 항목도 확인됩니다.ssl_crl_file설정되었습니다.

클라이언트스포츠 토토인증 옵션은 모든 인증 방법에 사용할 수 있지만pg_hba.conf다음으로 지정된 줄hostssl. 언제클라이언트스포츠 토토이 지정되지 않거나 0으로 설정된 경우 서버는 CA 파일(구성된 경우)에 대해 제시된 클라이언트 스포츠 토토를 계속 확인하지만 클라이언트 스포츠 토토 제시를 요구하지는 않습니다.

클라이언트 스포츠 토토를 설정하는 경우 다음을 사용할 수 있습니다.스포츠 토토인증 방법을 사용하여 스포츠 토토가 사용자 인증을 제어하고 연결 보안을 제공합니다. 보다섹션 20.3.919220_19268클라이언트스포츠 토토=1명시적으로 사용할 때스포츠 토토인증 방법.)

18.9.2. SSL 서버 파일 사용

표 18.2서버의 SSL 설정과 관련된 파일을 요약합니다. (표시된 파일 이름은 기본 또는 일반 이름입니다. 로컬로 구성된 이름은 다를 수 있습니다.)

표 18.2. SSL 서버 파일 사용

파일 목차 효과
ssl_cert_file ($PGDATA/server.crt) 서버 스포츠 토토 서버의 신원을 나타내기 위해 클라이언트로 전송됨
ssl_key_file ($PGDATA/server.key) 서버 개인 키 서버 스포츠 토토가 소유자에 의해 전송되었음을 증명합니다. 스포츠 토토 소유자를 신뢰할 수 있음을 나타내지 않습니다.
ssl_ca_file ($PGDATA/root.crt) 신뢰할 수 있는 인증 기관 클라이언트 스포츠 토토가 신뢰할 수 있는 인증 기관에 의해 서명되었는지 확인
ssl_crl_file ($PGDATA/root.crl) 인증 기관에 의해 취소된 스포츠 토토 클라이언트 스포츠 토토가 이 목록에 있어서는 안 됩니다

서버는 서버 시작 시와 서버 구성이 다시 로드될 때마다 이 파일을 읽습니다. 에윈도우시스템에서는 새 클라이언트 연결을 위해 새 백엔드 프로세스가 생성될 때마다 다시 읽혀집니다.

서버 시작 시 이러한 파일에서 오류가 발견되면 서버는 시작을 거부합니다. 그러나 구성을 다시 로드하는 동안 오류가 감지되면 파일이 무시되고 이전 SSL 구성이 계속 사용됩니다. 에윈도우시스템, 백엔드 시작 시 이러한 파일에서 오류가 감지되면 해당 백엔드는 SSL 연결을 설정할 수 없습니다. 이러한 모든 경우에 오류 조건은 서버 로그에 보고됩니다.

18.9.3. 스포츠 토토 생성

365일 동안 유효한 서버용 간단한 자체 서명 스포츠 토토를 생성하려면 다음을 사용하십시오.오픈SSL명령, 교체dbhost.yourdomain.com서버의 호스트 이름 포함:

openssl req -new -x509 -days 365 -nodes -text -out server.crt \
  -keyout server.key -subj "/CN=dbhost.yourdomain.com"

그럼 다음을 하세요:

스포츠 토토mod og-rwx server.key

왜냐하면 서버는 파일의 권한이 이보다 더 자유로운 경우 파일을 거부하기 때문입니다. 서버 개인 키 및 스포츠 토토를 생성하는 방법에 대한 자세한 내용은 다음을 참조하세요.오픈SSL문서.

자체 서명된 스포츠 토토를 테스트에 사용할 수 있지만 인증 기관에서 서명한 스포츠 토토(캘리포니아) (일반적으로 기업 전체 루트캘리포니아)를 프로덕션에 사용해야 합니다.

클라이언트가 신원을 확인할 수 있는 서버 스포츠 토토를 생성하려면 먼저 스포츠 토토 서명 요청을 생성하십시오(CSR) 및 공개/개인 키 파일:

openssl req -new -nodes -text -out root.csr \
  -keyout root.key -subj "/CN=root.yourdomain.com"
스포츠 토토mod og-rwx root.key

그런 다음 루트 인증 기관을 생성하기 위한 키로 요청에 서명하십시오(기본값 사용오픈SSL설정 파일 위치리눅스):

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"
스포츠 토토mod og-rwx server.key

openssl x509 -req -in server.csr -text -days 365 \
  -CA root.crt -CAkey root.key -CAcreateserial \
  -아웃 서버.crt

서버.crt그리고서버.키서버에 저장되어야 하며루트.crt클라이언트가 서버의 리프 스포츠 토토가 신뢰할 수 있는 루트 스포츠 토토로 서명되었는지 확인할 수 있도록 클라이언트에 저장되어야 합니다.루트.키향후 스포츠 토토 생성에 사용하려면 오프라인으로 저장해야 합니다.

중간 스포츠 토토를 포함하는 신뢰 체인을 생성하는 것도 가능합니다:

# 루트
openssl req -new -nodes -text -out root.csr \
  -keyout root.key -subj "/CN=root.yourdomain.com"
스포츠 토토mod 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 중간.csr \
  -keyout 중간.키 -subj "/CN=intermediate.yourdomain.com"
chmod og-rwx 중간.키
openssl x509 -req -in 중간.csr -text -days 1825 \
  -extfile /etc/ssl/openssl.cnf -extensions v3_ca \
  -CA root.crt -CAkey root.key -CAcreateserial \
  -out 중간.crt

# 잎
openssl req -new -nodes -text -out server.csr \
  -keyout server.key -subj "/CN=dbhost.yourdomain.com"
스포츠 토토mod og-rwx server.key
openssl x509 -req -in server.csr -text -days 365 \
  -CA 중간.crt -CAkey 중간.키 -CAcreateserial \
  -아웃 서버.crt

서버.crt그리고중간.crt스포츠 토토 파일 번들로 연결되어 서버에 저장되어야 합니다.서버.키서버에도 저장되어야 합니다.루트.crt클라이언트가 서버의 리프 스포츠 토토가 신뢰할 수 있는 루트 스포츠 토토에 연결된 스포츠 토토 체인에 의해 서명되었는지 확인할 수 있도록 클라이언트에 저장되어야 합니다.루트.키그리고중급.키향후 스포츠 토토 생성에 사용하려면 오프라인으로 저장해야 합니다.