2015-02-02 8 views
-1

두 가상 호스트가 있으며 두 개의 인증서를 사용합니다. 다음 httpd.conf 파일에 나와 있지는 않지만 * .sites.example.com은 물론 * .example.com을 사용하므로 두 인증서가 필요합니다. https://bla.sites.example.com/에 액세스 할 때, 브라우저는 다음과 같은 경고를 표시합니다Apache 용 다중 CA 인증서 사용 SSL

bla.sites.example.com uses an invalid security certificate. 
The certificate is only valid for the following names: *.example.com, example.com 
(Error code: ssl_error_bad_cert_domain) 

내가 www.example.com로 리디렉션 최초의 가상 호스트를 제거하면, 내가 경고를하지 않습니다.

왜 그런가요? 다른 VirtualHosts에 대해 여러 CA 인증서를 사용해야하는 이유는 무엇입니까? 내가 /etc/httpd/conf.d/ssl.conf에서 다음과 같은 설정이

<VirtualHost *:443> 
    ServerName example.com 
    SSLEngine on 
    SSLCipherSuite SSLv3:TLSv1:+HIGH:!SSLv2:!MD5:!MEDIUM:!LOW:!EXP:!ADH:!eNULL:!aNULL 
    SSLCertificateKeyFile /etc/pki/tls/private/example_key.pem 
    #Following certificate is good for example.com and *.example.com 
    SSLCertificateFile /etc/pki/tls/certs/example_startssl_class2.crt 
    SSLCertificateChainFile /etc/pki/tls/certs/sub.class2.server.ca.pem 
    RewriteEngine on 
    RewriteRule .* https://www.example.com%{REQUEST_URI} [NE,R,L] 
</VirtualHost> 

<VirtualHost *:443> 
    ServerName example.com 
    ServerAlias *.sites.example.com 
    ErrorDocument 404 /error-404.html 
    DocumentRoot /var/www/example/html_sites 
    SSLEngine on 
    SSLCipherSuite SSLv3:TLSv1:+HIGH:!SSLv2:!MD5:!MEDIUM:!LOW:!EXP:!ADH:!eNULL:!aNULL 
    SSLCertificateKeyFile /etc/pki/tls/private/example_key.pem 
    #Following certificate is good for example.com, sites.example.com and *.sites.example.com 
    SSLCertificateFile /etc/pki/tls/certs/example_startssl_sites_class2.crt 
    SSLCertificateChainFile /etc/pki/tls/certs/sub.class2.server.ca.pem 
    <Directory "/var/www/example/html_sites"> 
     allow from all 
     Options +Indexes 
    </Directory> 
</VirtualHost> 

참고 : 제대로

#Following certificate is good for example.com and *.example.com 
SSLCertificateFile /etc/pki/tls/certs/example_startssl_class2.crt 
SSLCACertificateFile /etc/pki/tls/certs/example_startssl_class2.crt 
SSLCertificateKeyFile /etc/pki/tls/private/example_key.pem 
SSLCertificateChainFile /etc/pki/tls/certs/sub.class2.server.ca.pem 

답변

0

가상 호스트의이되어하지 설치. 둘 다 가리키고 있습니다 ServerName example.com

두 가지 모두 서로 다른 특정 ServerName과 다른 문서 루트를 가져야합니다. 그런 다음 아파치는 정확한 유령에 요청을 보낼 곳을 알게 될 것이므로 그 오류는 발생하지 않을 것입니다.

더 많은 구성 도움말을 볼 수 있습니다. Multiple Certs using SNI

두 인증서가 서로 다르기 때문에 가상 호스트는 다음과 같이 보일 것입니다.

<VirtualHost *:443> 
    ServerName example.com 
    ServerAlias www.example.com 
    DocumentRoot /var/www/example/html_sites 
    SSLEngine on 
    SSLCipherSuite SSLv3:TLSv1:+HIGH:!SSLv2:!MD5:!MEDIUM:!LOW:!EXP:!ADH:!eNULL:!aNULL 
    SSLCertificateKeyFile /etc/pki/tls/private/example_key.pem 
    #Following certificate is good for example.com and *.example.com 
    SSLCertificateFile /etc/pki/tls/certs/example_startssl_class2.crt 
    SSLCertificateChainFile /etc/pki/tls/certs/sub.class2.server.ca.pem 
    <Directory "/var/www/example/html_sites"> 
     ErrorDocument 404 /error-404.html 
     allow from all 
     Options +Indexes 
     RewriteEngine on 
     RewriteRule .* https://www.example.com%{REQUEST_URI} [NE,R,L] 
    </Directory> 
</VirtualHost> 

<VirtualHost *:443> 
    ServerName bla.sites.example.com 
    ServerAlias *.sites.example.com 
    DocumentRoot /var/www/example2/html_sites 
    SSLEngine on 
    SSLCipherSuite SSLv3:TLSv1:+HIGH:!SSLv2:!MD5:!MEDIUM:!LOW:!EXP:!ADH:!eNULL:!aNULL 
    SSLCertificateKeyFile /etc/pki/tls/private/example_key.pem 
    #Following certificate is good for example.com, sites.example.com and *.sites.example.com 
    SSLCertificateFile /etc/pki/tls/certs/example_startssl_sites_class2.crt 
    SSLCertificateChainFile /etc/pki/tls/certs/sub.class2.server.ca.pem 
    <Directory "/var/www/example2/html_sites"> 
     allow from all 
     Options +Indexes 
    </Directory> 
</VirtualHost> 

또한 변경할 때 아파치를 다시 시작하는 것을 잊지 마십시오.

+0

감사합니다. 파나마, 나는 당신이 다른 서버 이름을 사용 했음에 틀림 없다고 생각합니다. 처음에는 bla.sites.example.com이라는 URL을 사용하면 첫 번째 URL에 결코 부딪치지 않는다고 잘못 생각한 것 같습니다. – user1032531