JDK jre/lib/security/cacerts
의 신뢰할 수있는 저장소 또는 구성한 CA의 신뢰할 수있는 CA 인증서와 비교하여 CA 인증서를 검사합니다.
체인의 모든 인증서가 즉각적인 서명자뿐만 아니라 신뢰할 수 있는지 확인합니다. 기본적으로 해지 된 인증서를 온라인으로 확인하지는 않지만 java.security
정책 파일에서 해당 인증서를 사용하도록 설정할 수 있습니다.
인증서에 대한 호스트 이름도 확인합니다. 추가 CN 및 와일드 카드 CN을 지원합니다. 로컬 호스트에 대한
확장 질문 :
localhost
는 다른 같은 단지 호스트 이름입니다. 인증서에 나열되어야합니다. 하지만 공식 인증서를 제공하는 CA를 찾을 수는 없을 것입니다. :-)
실제 인증서를 로컬 호스트에서 사용하려면 다른 호스트 이름으로 지정해야합니다. 라인 :
127.0.0.1 foo.bar.com
지금 브라우저를 해고하고 https://foo.bar.com
에 연결 : 당신은 foo.bar.com
에 대한 인증서를 통해 실행하려는 경우, hosts
파일 (%WINDOWS%\system32\drivers\etc\hosts
, 유닉스 /etc/hosts
승)에 추가 할 수 있습니다. 로컬 서버에 연결하여 SSL 암호화 HTTP 요청을 게시합니다. 이 요청에는 실제 호스트 이름이 아닌 URL의 호스트 이름이 포함됩니다.
브라우저가 서버에서 SSL 인증서를 받고 방금 호출 한 호스트 이름과 CN을 비교합니다. 일치하면 인증서를 신뢰할 수 있는지 확인합니다 (주문에 대한 답을 얻지 못함, 그렇지 않으면 trustlevel을 먼저 확인합니다).
여기서 실패합니다. 서버에서 제공 한 인증서에 CN 로컬 호스트가 없으므로 클라이언트가 연결을 중단합니다. 귀하의 경우 클라이언트는 HttpSSL 요청입니다.
클라이언트가 모두 정상이라고 믿게하려면 다음 두 가지 작업을 수행 할 수 있습니다. - 호스트 이름을 가짜로 만들고 cacerts 트러스트 스토어에 서명 CA를 추가합니다. - 호스트 이름과 인증서 유효성 검사기를 구현하면 문제를 해결할 수 있습니다.
자습서와 관련하여 자체 서명 된 인증서가 사용되면 먼저 액세스 할 때 경고를 무시하여 브라우저에서이를 수락해야합니다.
내가 찾고 있어야하는 구성은 무엇입니까? JDK에 대한 기본 트러스트 스토어가 설정되어 있는지 확실하지 않습니다. – user1549994
"추가 CN 및 와일드 카드 CN을 지원합니다.".와일드 카드 CN이 의미하는 바는 무엇입니까? localhost는 와일드 카드 CN으로 간주됩니까? 보내지는 요청은 localhost를 사용하지만 서버가 다시 보내는 인증서에는 "localhost"가 없습니다. – user1549994
와일드 카드 인증서에 별표가 포함되어 있으며이 도메인의 모든 하위 도메인에서 작동합니다.'* .foo.com'은'bar.foo.com','baz.foo.com' 등에서 작동합니다. localhost로 게임을하고 싶다면, 인증서에 추가하십시오. 내 대답을 보라. – thst