Problemas com o IE / wget confundindo o certificado SSL de um subdomínio com o certificado do domínio principal

3

Estou executando um site , onde o fluxo de check-out é certificado pelo SSL usando um certificado Comodo EV.

Também temos o acompanhamento de análises da Web do Piwik em todo o site, que é exibido em um subdomínio stats . Para evitar erros de domínio mistos, o Piwik é acessível via HTTPS, bem como HTTP - para HTTPS, nosso subdomínio Piwik é certificado usando um certificado Comodo PositiveSSL (muito mais barato).

Aqui está a parte estranha - quando uma página HTTPS no site principal é acessada através do wget e algumas versões do Internet Explorer, o certificado stats.psychicbazaar.com parece ser carregado por engano por engano, levando a avisos de "Endereço Incompatível" no IE, e no wget:

ERROR: certificate common name 'stats.psychicbazaar.com' doesn't match requested host name 'www.psychicbazaar.com'.

Este problema não ocorre com o curl, Chrome ou Firefox. Por exemplo, com curl:

$ curl -Iv https://www.psychicbazaar.com/shop/checkout

* <snip>
* Connected to www.psychicbazaar.com (178.79.183.162) port 443 (#0)
* successfully set certificate verify locations:
*   CAfile: none
  CApath: /etc/ssl/certs
* SSLv3, TLS handshake, Client hello (1):
* SSLv3, TLS handshake, Server hello (2):
* SSLv3, TLS handshake, CERT (11):
* SSLv3, TLS handshake, Server key exchange (12):
* SSLv3, TLS handshake, Server finished (14):
* SSLv3, TLS handshake, Client key exchange (16):
* SSLv3, TLS change cipher, Client hello (1):
* SSLv3, TLS handshake, Finished (20):
* SSLv3, TLS change cipher, Client hello (1):
* SSLv3, TLS handshake, Finished (20):
* SSL connection using DHE-RSA-AES256-SHA
* Server certificate:
*    subject: serialNumber=07440589; 1.3.6.1.4.1.311.60.2.1.3=GB; 1.3.6.1.4.1.311.60.2.1.
2=Greater London; businessCategory=Private Organization; C=GB; postalCode=EC24 4RQ; ST=Greater 
London; L=London; street=The Roma Building 32-38; O=Psychic Bazaar Ltd; OU=COMODO EV 
*    start date: 2012-02-16 00:00:00 GMT
*    expire date: 2013-02-15 23:59:59 GMT
*    subjectAltName: www.psychicbazaar.com matched
*    issuer: C=GB; ST=Greater Manchester; L=Salford; O=COMODO CA Limited; CN=COMODO Extended Validation Secure Server CA
*    SSL certificate verify ok.
> HEAD /shop/checkout HTTP/1.1
> User-Agent: curl/7.21.6 (x86_64-pc-linux-gnu) libcurl/7.21.6 OpenSSL/1.0.0e zlib/1.2.3.4 libidn/1.22 librtmp/2.3
> Host: www.psychicbazaar.com
> Accept: */*
> 
< <snip>

O que poderia estar acontecendo aqui - por que um navegador estaria lendo e cometendo erros no certificado SSL de um subdomínio quando carregasse uma página no domínio principal? Qualquer ajuda muito apreciada!

    
por Alex Dean 05.04.2012 / 19:58

1 resposta

3
# dig stats.psychicbazaar.com
[...]
;; ANSWER SECTION:
stats.psychicbazaar.com. 3600   IN      A       178.79.183.162
[...]
# dig www.psychicbazaar.com
[...]
;; ANSWER SECTION:
www.psychicbazaar.com.  3600    IN      A       178.79.183.162
[...]

Como exatamente o seu servidor da Web deve saber qual certificado será exibido para uma troca de TLS se você estiver usando o mesmo endereço IP para ambos? Isso não funcionará:

link

As a rule, it is impossible to host more than one SSL virtual host on the same IP address and port. This is because Apache needs to know the name of the host in order to choose the correct certificate to setup the encryption layer. But the name of the host being requested is contained only in the HTTP request headers, which are part of the encrypted content. It is therefore not available until after the encryption is already negotiated.

    
por 05.04.2012 / 23:02

Tags