이것은 아파치/서버 구성이거나 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의 오류와 일치합니다. 이 경우 나의 질문은 왜 자바가 브라우저가 가져 오는 것과 반대되는이 인증서를 얻는가라는 것입니다.
myapp1.myvendor.com이 예상치 못한 서버를 가리키고 있습니다. 나는. 귀하의 프록시 설정/호스트 파일은 다른 곳을 가리 키도록 도메인을 만듭니다 ... 또는 myapp1.myvendor.com은 예상보다 다른 인증서를 사용하도록 구성됩니다. –
또는 서버가 SNI를 수행하고 Java가 올바른 인증서를 선택하는 데 필요한 정보를 제공하지 않습니다. –
@AlexeiLevenkov 제 편집보기. 내 편집이 의미가 있습니까? – ajon