2011-11-17

Pruebas de Respuesta de HTTPS

Debido a mi trabajo necesito hacer varias pruebas por consola de como responden los servicios y para esto usualmente  uso telnet, pero cuando te tienes que conectar a un servidor HTTPS el protocolo de SSL no te permite hacer consultas y la respuesta siempre será que no te puede mostrar nada.

Buscando encontré esta pagina donde me indicaba como hacer la conexión, pero como esta en ingles y es un poco cortante decidí escribir aca como hice la prueba.

Bueno para esto tenemos que tener instalado el paquete completo de openssl, el nos provee el comando que vamos a usar y que se ejecuta así

root@localhost:~# openssl s_client -connect www.gmail.com:443

Con esto vamos a obtener la conexión con el protocolo SSL y cargar datos por consola, esto se usa para ver respuestas de los servidores, pero también nos sirve para capturar las características de un certificado. Como se ve a continuación en un ejemplo de las pruebas

root@localhost ~$ openssl s_client -ssl3 -connect www.gmail.com:443
CONNECTED(00000003)
depth=2 /C=US/O=VeriSign, Inc./OU=Class 3 Public Primary Certification Authority
verify return:1
depth=1 /C=ZA/O=Thawte Consulting (Pty) Ltd./CN=Thawte SGC CA
verify return:1
depth=0 /C=US/ST=California/L=Mountain View/O=Google Inc/CN=mail.google.com
verify return:1
---
Certificate chain
0 s:/C=US/ST=California/L=Mountain View/O=Google Inc/CN=mail.google.com
i:/C=ZA/O=Thawte Consulting (Pty) Ltd./CN=Thawte SGC CA
1 s:/C=ZA/O=Thawte Consulting (Pty) Ltd./CN=Thawte SGC CA
i:/C=US/O=VeriSign, Inc./OU=Class 3 Public Primary Certification Authority
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIDIjCCAougAwIBAgIQK59+5colpiUUIEeCdTqbuTANBgkqhkiG9w0BAQUFADBM
MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg
THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0xMTEwMjYwMDAwMDBaFw0x
MzA5MzAyMzU5NTlaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
-----END CERTIFICATE-----
subject=/C=US/ST=California/L=Mountain View/O=Google Inc/CN=mail.google.com
issuer=/C=ZA/O=Thawte Consulting (Pty) Ltd./CN=Thawte SGC CA
---
SSL handshake has read 1797 bytes and written 297 bytes
---
New, TLSv1/SSLv3, Cipher is RC4-SHA
Server public key is 1024 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : SSLv3
Cipher : RC4-SHA
Session-ID: DDA26B285F446C6432E7EC512F4B062CCF4C0A1221CA83E4BE756CCC41814339
  Session-ID-ctx: Master-Key: D6CE1C410D6AD7D9768D69E72F6B68655B87F6D23D80D7DCB4F6B154AE9C62730ACAEC034764F9AD5114CC4F36304EAC
Key-Arg : None
Krb5 Principal: None
Start Time: 1321550612
Timeout : 7200 (sec)
Verify return code: 0 (ok)
---
GET / HTTP/1.1
Host: www.gmail.com:443

HTTP/1.1 301 Moved Permanently
Location: https://mail.google.com/mail/
Content-Type: text/html; charset=UTF-8
X-Content-Type-Options: nosniff
Date: Thu, 17 Nov 2011 17:23:58 GMT
Expires: Sat, 17 Dec 2011 17:23:58 GMT
Cache-Control: public, max-age=2592000
Server: sffe
Content-Length: 226
X-XSS-Protection: 1; mode=block


Aunque acá le recorte unas cosas se puede ver todo el certificado y la carga de los datos que realice