2017-02-08 5 views
1

md5 암호화 된 연결로 수신하도록 Postgres를 구성하려고합니다. 나는 많은 설명서를 읽고 지침을 따르지 만 나는 실패했다.docker 환경에서 tcp md5 용 Postgres 구성

우리는 몇 개의 도커 컨테이너를 가지고 있는데 그 중 하나는 init_db.sh 스크립트를 사용하여 구성하는 Postgres 9 컨테이너입니다. 실행중인 컨테이너에 최종 구성은 다음과 같습니다 나는를 시작하면

COMMAND  PID USER FD TYPE    DEVICE SIZE/OFF NODE NAME 
com.docke 17454 sigals 36u IPv4 0x13ec351b99f025cd  0t0 TCP *:postgresql (LISTEN) 
com.docke 17454 sigals 37u IPv6 0x13ec351b8ce8a025  0t0 TCP localhost:postgresql (LISTEN) 

:

listen_addresses = '*' 
local all all md5 
host all all all md5 

실행이 : -i TCP lsof를 : 5,432 (나는 지금 내 Mac에서 실행 해요)이 생산 컨테이너가 암호화 된 암호로 실행 중이면 다음과 같이 나타납니다. 오류 org.apache.tomcat.jdbc.pool.ConnectionPool : 182 - 풀의 초기 연결을 만들 수 없습니다.

2017-02-08T14:07:43.438478547Z org.postgresql.util.PSQLException: FATAL: password authentication failed for user "myuser" 

암호를 일반 텍스트로 입력하면 작동합니다.

IP를 로컬 호스트에만 구성한 경우 암호화 된 암호와 일반 텍스트 암호가 모두 작동했습니다.

무엇을 잘못 구성 했습니까?

+0

당신은 ". 나는 그것이 작동하는 일반 텍스트로 암호를 넣을 때".. 어디 암호를 넣어 무엇을 의미합니까? –

+0

Hibernate를 사용하는 sprint-boot 응용 프로그램입니다. 암호는 spring.datasource.password –

+0

이라는 속성의 application.properties에 있습니다. 그러면 'hba.conf'에있는'md5'와 db에 전달하는 md5 해시를 혼동하게됩니다 인증을 위해서? .. –

답변

0

According to docs:

MD5는 인증을 위해 이중 MD5 해시 암호를 제공하기 위해 클라이언트가 필요합니다. 자세한 내용은 20.3.2 절을 참조하십시오.

암호 인증을 위해 클라이언트가 암호화되지 않은 암호를 제공하도록 요구하십시오. 암호는 네트워크를 통해 일반 텍스트로 전송되기 때문에 신뢰할 수없는 네트워크에서는 사용하지 않아야합니다. 자세한 내용은 섹션 20.3.2를 참조하십시오.

jdbc 연결은 연결 문자열 자체에서 제공하는 암호를 해시합니다. 직접 md5 할 필요는 없습니다.

또한 이쪽을 봐 : https://stackoverflow.com/a/39038852/5315974

+0

아마도 영어가 제 1 언어가 아니지만 제게 Postgres MD5 암호화 된 암호를 가져와 암호화 된 원래 암호와 비교할 수 있습니다. 또한 나의 설정이 다음과 같을 때 : host all all 127.0.0.0/24 md5 Hibernate 어플리케이션을 사용하는 스프링 부트는 암호화 된 패스워드로도 작동했다.물론 나는 너를 의심하지 않는다. 나는 혼란 스럽다. –

+0

이렇게하면된다. https://www.postgresql.org/docs/9.2/static/protocol-flow.html 연결 코드에 "AuthenticationMD5Password"가 있습니까? 그렇지 않은 경우 - 암호를 해시하지 마십시오. 네가 그렇게한다면 - 미안해. 이제 hba에'host all all 127.0.0.0/24 md5'라는 잘못된 (해쉬 된) 비밀번호로 로그인 할 수 있습니다. 왜냐하면 당신은 그 라인보다 먼저 접속하기 때문에'trust'를 가지고 있기 때문입니다. 그 표정이 합리적이라면 무엇이든 할 수 있습니까? –

+0

아니요, 트러스트를 제거했습니다 –