O OpenSSL obtém um certificado SSL diferente daquele obtido por meio de um navegador

1

Eu preciso baixar um certificado SSL no formato PEM de um site HTTPS, link . Então estou usando o OpenSSL para fazer isso:

openssl s_client -connect api.paczkomaty.pl:443 > myfile
openssl x509 -in myfile -text 

Aqui está o resultado:

Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            0d:5a:87:30:7e:43:96:05:5e:20:f3:2f:14:a4:d9:47
    Signature Algorithm: sha256WithRSAEncryption
        Issuer: C = US, O = GeoTrust Inc., CN = RapidSSL SHA256 CA
        Validity
            Not Before: Mar 11 00:00:00 2017 GMT
            Not After : Apr 10 23:59:59 2018 GMT
        Subject: CN = *.grupainteger.pl
(...)

No entanto, quando visito o site por meio de um navegador (Chrome ou Firefox) e inspeciono seu certificado, ele mostra um diferente; o seu Número de Série é diferente e a sua validade é de 15/1/2018 a 1/9/2018.

Por que o OpenSSL está buscando um certificado diferente?

    
por dr01 05.02.2018 / 09:58

2 respostas

3

Why is OpenSSL fetching a different certificate?

s_client por padrão não envia dados SNI (Server Name Indication), mas sim um navegador. O servidor pode optar por responder com um certificado diferente com base no conteúdo desse SNI - ou se nenhum SNI estiver presente, ele servirá um certificado padrão. Tente adicionar -servername api.paczkomaty.pl à sua linha de comando s_client

    
por 05.02.2018 / 11:20
2

Vários sites SSL / TLS no mesmo servidor físico, usando o TLS SNI (Server Name Indication). Se o cliente não fornecer informações SNI (OpenSSL s_client não será contado), algum certificado de site padrão de fallback será usado.

Adicione a opção -servername ao seu comando openssl s_client da seguinte forma:

openssl s_client -servername api.paczkomaty.pl -connect api.paczkomaty.pl:443 > myfile
    
por 05.02.2018 / 11:23