웹 사이트 (https://www.otten-markenshop.de/)에 SSL 연결을 만들고 브라우저 또는 컬을 사용하지만 작동하지 않지만 wget과 Java가 연결되지 않습니다. Java 코드가 실패하는 이유는 무엇입니까?java.security.cert.CertificateException 인증서가 여러 개인 서버에 연결할 때
사용 WGET :에
public static void main(String[] args) throws IOException
{
URL url = new URL("https://www.otten-markenshop.de");
URLConnection connection = url.openConnection();
connection.getInputStream();
}
결과 : 자바를 사용
Resolving www.otten-markenshop.de... 217.24.213.167
Connecting to www.otten-markenshop.de|217.24.213.167|:443... connected.
ERROR: certificate common name “www.plentymarkets.eu” doesn’t match requested
host name “www.otten-markenshop.de”.
에서
wget https://www.otten-markenshop.de/
결과 다음은 오류 세부 정보입니다
내가 발견 한 그 밖의 무엇Exception in thread "main" javax.net.ssl.SSLHandshakeException:
java.security.cert.CertificateException: No subject alternative DNS
name matching www.otten-markenshop.de found.
내가 브라우저에서받을 인증서가 내가받은 인증서와 다른 점이다 났을 때 자바 프로그램 : 브라우저에서
: 자바에서
Common Name (CN):
www.otten-markenshop.de
Subject Alternative Name:
DNS Name=www.otten-markenshop.de
DNS Name=otten-markenshop.de
:
Common Name (CN):
www.plentymarkets.eu
Subject Alternative Name:
그리고 certificat IP 주소로 호스트에 액세스하려고하면 브라우저에서 Java와 동일한 결과를 얻습니다 : https://217.24.213.167
따라서 서버에 여러 인증서가 설치되어 있으며 가상 호스트를 사용하여 어떤 인증서를 사용해야하는지 감지합니다. 그러나 클라이언트가 Java 또는 wget 일 때 어떤 이유로이 탐지가 작동하지 않습니다.
왜 이런 생각입니까?
P. 어떻게 구성되어 있는지 보려면 대상 서버에 액세스 할 수 없습니다.
P.P.S. 나는 간단한 자바 코드가 작동하지 않는 이유를 이해하는데 더 관심이있다. 예를 들어, SSL 검증을 사용하지 못하게하는 것이 그 것이다. 결국 아무런 문제없이 HTTP를 통해 언급 된 URL에 연결할 수 있습니다.
정말로 감사합니다. Java 6로 샘플을 실행했습니다. 프로덕션 환경에서는 Java 7을 사용하지만 다른 SSL 문제로 인해 비활성화 된 SNI 지원이 있습니다 (예외적 인 조건 인 'unrecognized_name' 경고를 무시하기 위해). 자바 7에서). 이제 SNI를 전환하는 대가를 봅니다. – Ivan