2014-03-28 2 views
0

이것은 아파치/서버 구성이거나 Java 솔루션이 필요할 수 있습니다. 내 서버에는 몇 개의 하위 도메인이 있습니다. 모든 하위 도메인에 https를 강제로 적용하고 모든 하위 도메인에 사용되는 와일드 카드 SSL 인증서가 있습니다.인증서의 호스트 이름이 와일드 카드 인증서와 일치하지 않습니다.

내가 https://myapp1.myvendor.com에 가서 나는 다음과 같은 일반적인 이름을 볼 수있는 브라우저에 인증서보기 : = * .myvendor.com

나는 또한 자바 프로그램이 게시물에 https://myapp1.myvendor.com/post.php 그러나 때

CN을 내가 사용하여 Java에서 게시 :

org.apache.http.client.methods.HttpPost httpPost = new HttpPost("https://myapp1.myvendor.com/post.php"); 
HttpResponse response = httpClient.execute(httpPost); 

내가받을 다음과 같은 오류 :

javax.net.ssl.SSLException: hostname in certificate didn't match: 
<myapp1.myvendor.com> != <myvendor.com> OR <myvendor.com> OR <www.myvendor.com> 
,

이상한 점은 * .myvendor.com이 아닌 myvendor.com 또는 www.myvendor.com과 일치 시키려고한다는 것입니다. myvendor.com에 인증서가 설치되어 있지만 와일드 카드 인증서를 사용하여 인증서를 사용하지 않았습니다.

제안 사항? 더 많은 정보가 필요하십니까?

아파치 구성 :

subject Alternative name: 
DNS Name=myvendor.com 
DNS Name=www.myvendor.com 
을 :

<VirtualHost _default_:443> 
SSLCertificateFile /etc/pki/tls/certs/local.crt 
SSLCertificateKeyFile /etc/pki/tls/private/local.key 
SSLCACertificateFile /etc/pki/tls/certs/my_local_cert.crt 
</VirtualHost> 

내가이 인증서를 가지고 있기 때문에이 인증서를 받고 있다고 생각 : 나는 또한로드 다른 설정 파일이 발견

<VirtualHost *:443> 
SSLEngine On 
SSLCertificateFile /etc/pki/tls/certs/27c7d7842bf94d.crt 
SSLCertificateKeyFile /etc/pki/tls/private/mydomain.key 
SSLCACertificateFile /etc/pki/tls/certs/my_cert.crt 

ServerName myapp1.myvendor.com 
DocumentRoot /var/www/myvendor/myapp1/src/ 
ErrorLog /var/www/logs/myapp1/error.log 
CustomLog /var/www/logs/myapp1/access.log combined 
<Directory /var/www/myvendor/myapp1/src/> 
     AllowOverride All 
</Directory> 
</VirtualHost> 

이는 Java의 오류와 일치합니다. 이 경우 나의 질문은 왜 자바가 브라우저가 가져 오는 것과 반대되는이 인증서를 얻는가라는 것입니다.

+0

myapp1.myvendor.com이 예상치 못한 서버를 가리키고 있습니다. 나는. 귀하의 프록시 설정/호스트 파일은 다른 곳을 가리 키도록 도메인을 만듭니다 ... 또는 myapp1.myvendor.com은 예상보다 다른 인증서를 사용하도록 구성됩니다. –

+0

또는 서버가 SNI를 수행하고 Java가 올바른 인증서를 선택하는 데 필요한 정보를 제공하지 않습니다. –

+0

@AlexeiLevenkov 제 편집보기. 내 편집이 의미가 있습니까? – ajon

답변

0

SNI를 사용중인 것 같습니다. 동일한 인증서를 사용하는 동일한 IP상의 여러 https 서버 이 경우 Server Name Indication (SNI) on Java Java에서 SNI를 사용하는 방법을 살펴보십시오.

관련 문제