Crear los certificados SSL para nuestro servidor web HTTPS con
Apache, OpenSSL y Debian LennyCuando escribimos nuestra contrasea
para entrar al panel de administracin de WordPress, sta va en texto
plano. En una red WiFi, por ejemplo, cualquiera podra ver muy
fcilmente nuestra contrasea slo con capturar los paquetes de la red
mientras nos estamos registrando. Aunque hay soluciones parciales,
la solucin definitiva, como siempre, pasa por usar HTTPS o, lo que
es lo mismo, HTTP sobre SSL. Desde la versin 2.6, WordPress permite
usar SSL fcilmente para el panel de administrador. As que me puse a
hacer pruebas para configurar SSL en mi servidor web. Sin embargo,
ocurre una cosa muy interesante con el protocolo SSL cuando se usa
con HTTP: que no se pueden servir fcilmente mltiples sitios
virtuales encriptados con SSL desde una misma IP. En el contexto de
los servidores web, hablamos de sitios virtuales cuando servimos
pginas de diferentes dominios desde un nico servidor, en muchos
casos compartiendo la IP y en otros, cada dominio con una IP
diferente, posiblemente con interfaces virtuales. Cuando usamos
HTTP sin SSL, el servidor sabe qu pgina en concreto estamos
solicitando porque el cliente HTTP (el navegador) lo indica en la
cabecera Host: GET /blog/ HTTP/1.1 Host: www.vicente-navarro.com
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; es-ES; rv:1.9.0.6)
Gecko/2009020911 Ubuntu/8.10 (intrepid) Firefox/3.0.6 Accept:
text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: es,en-us;q=0.7,en;q=0.3 Accept-Encoding:
gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300 Connection: keep-alive Sin embargo, cuando se usa
SSL, la negociacin entre los extremos y la encriptacin ocurre en
una capa inferior, antes de que stos comiencen a usar el protocolo
HTTP. Por ello, no es trivial configurar diferentes certificados
para diferentes sitios web virtuales. En la configuracin tpica, slo
podremos usar un certificado compartido para todas las pginas que
se sirvan por HTTPS desde un nico servidor web, a menos que usemos
una IP diferente para cada sitio. Para este inconveniente hay
workarounds (TLS Support for name-based virtual servers) y
soluciones definitivas con el Server Name Indication (SNI). Apache
2.2 no soporta SNI, pero el mdulo de Apache mod_gnutls (incluido en
Debian Lenny: libapache2-mod-gnutls) nos permitira usarlo.
Desafortunadamente, aunque Firefox (>=2), Safari, Chrome y Opera
soportan esta extensin del protocolo, Internet Explorer 6 e
Internet Explorer 7 para Windows XP no soportan SNI, por lo que no
podemos usarla de momento por motivos obvios.
Por todos estos motivos, descubr que con los hostings
profesionales no resulta fcil o, mejor dicho, barato, tener un
servidor SSL. Es lo que me va a impedir a m poder configurar SSL
para el panel de administracin de LHYLE. Sin embargo, podemos
seguir estudiando cmo podramos hacerlo si lo que tenemos es un
Hosting Casero o si le hemos contratado un servidor dedicado a
nuestro proveedor de hosting.
Habilitar el servidor HTTPS en Debian LennySi instalamos los
paquetes de Apache 2.2 en un sistema con la recin liberada Debian
Lenny, ya tendremos por defecto configurado un servidor HTTPS junto
con el tpico HTTP. En Debian Etch no era as, sino que slo se
configuraba el servidor HTTP. As, si en Debian Etch el fichero
/etc/apache2/sites-available/default era as: NameVirtualHost *
ServerAdmin webmaster@localhost DocumentRoot /var/www/ ... Ahora,
en Debian Lenny, tenemos un fichero /etc/apache2/ports.conf (que es
incluido desde el /etc/apache2/apache2.conf) con este contenido:
NameVirtualHost *:80 Listen 80 # SSL name based virtual hosts are
not yet supported, therefore no # NameVirtualHost statement here
Listen 443 Y ahora, el /etc/apache2/sites-available/default
menciona especficamente el puerto 80 en la directiva VirtualHost,
para diferenciar las peticiones al puerto 80 (HTTP) de las
peticiones al puerto 443 (HTTPS): ServerAdmin webmaster@localhost
DocumentRoot /var/www/ ... De modo que ahora hay una nueva
configuracin de sitio disponible, en la ruta
/etc/apache2/sites-available/default-ssl: ServerAdmin
webmaster@localhost
DocumentRoot /var/www/ ... # SSL Engine Switch: # Enable/Disable
SSL for this virtual host. SSLEngine on # # # # # # A self-signed
(snakeoil) certificate can be created by installing the ssl-cert
package. See /usr/share/doc/apache2.2-common/README.Debian.gz for
more info. If both key and certificate are stored in the same file,
only the SSLCertificateFile directive is needed.
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
BrowserMatch ".*MSIE.*" \ nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0 Como hemos comentado antes,
mientras que podemos aadir a la configuracin de Apache tantos
ficheros de sitios virtuales para HTTP que comiencen por como
queramos, para HTTPS, en el puerto 443, slo podremos tener uno (a
menos que configuremos diferentes IPs para los diferentes sitios).
Las lneas claves para activar el SSL son stas: SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key Dichos
certificados de aceite de serpiente (Wikipedia: Snake oil
(cryptography)) los genera el script de post- instalacin del
paquete ssl-cert de Debian asociados al hostname del sistema.
Aunque recin instalado, el Apache 2.2 de Debian Lenny est preparado
para servir contenido HTTPS, an hay que habilitar el sitio y el
mdulo de SSL. Para ello usaremos a2ensite y a2enmod: # a2enmod ssl
Enabling module ssl. See
/usr/share/doc/apache2.2-common/README.Debian.gz on how to
configure SSL and create self-signed certificates. Run
'/etc/init.d/apache2 restart' to activate new configuration! #
a2ensite default-ssl Enabling site default-ssl. Run
'/etc/init.d/apache2 reload' to activate new configuration! #
/etc/init.d/apache2 restart
Ahora ya podramos conectarnos por HTTPS a
https://subdominio.dominio.tld. Sin embargo, al estar usando el
certificado de aceite de serpiente, lo que nos encontraremos ser
con que el navegador nos da una o dos advertencias sobre el
dominio. Una segura porque el certificado no est firmado por una
autoridad de confianza y tal vez otra porque el dominio, hostname o
IP que estamos usando para acceder al sitio no coincida con el que
indica el certificado. Por ejemplo, yo he instalado Debian Lenny en
un sistema cuyo nombre es telemaco, pero quiero acceder al sitio
web seguro https://desarrollo.vicente-navarro.com que he
configurado en telemaco. Me encontrara con los errores comentados,
uno porque el certificado es para acceder al sitio web
https://telemaco, y otro porque el certificado no est firmado por
una autoridad reconocida:
Si decidimos seguir adelante y examinamos el certificado,
veremos que realmente es un certificado para el sitio telemaco, no
para desarrollo.vicente-navarro.com:
Por tanto, si accedemos con https://telemaco, ya slo
encontraremos el error de que el certificado no es de fiar, pero no
el de que el certificado no es para este sitio:
Necesitamos resolver estos problemas con el certificado que
estamos usando.
Crear un Certificado Autofirmado
Veamos primero cmo conseguir un certificado autofirmado asociado
a nuestro sitio. Para ello, podemos usar el siguiente comando: #
openssl req -new -x509 -nodes -out
/etc/ssl/certs/desarrollo.vicentenavarro.com_self.crt -keyout
/etc/ssl/private/desarrollo.vicentenavarro.com_self.key Generating
a 1024 bit RSA private key ......++++++
....................................................................++++++
writing new private key to
'/etc/ssl/private/desarrollo.vicente-navarro.com_self.key' ----You
are about to be asked to enter information that will be
incorporated into your certificate request. What you are about to
enter is what is called a Distinguished Name or a DN. There are
quite a few fields but you can leave some blank For some fields
there will be a default value, If you enter '.', the field will be
left blank. ----Country Name (2 letter code) [AU]:ES State or
Province Name (full name) [Some-State]:Spain Locality Name (eg,
city) []: Organization Name (eg, company) [Internet Widgits Pty
Ltd]:Desarrollo de Lo hice y lo entendi Organizational Unit Name
(eg, section) []:El blog de Vicente Navarro Common Name (eg, YOUR
name) []:desarrollo.vicente-navarro.com Email Address
[]:[email protected] Y ahora, apuntando a dicho
certificado en la configuracin del sitio: SSLCertificateFile
/etc/ssl/certs/desarrollo.vicente-navarro.com_self.crt
SSLCertificateKeyFile
/etc/ssl/private/desarrollo.vicentenavarro.com_self.key Y tras
reiniciar el servidor, al conectarnos al sitio, el navegador nos
advertir de que el certificado no es de fiar pero al menos, s que
corresponde a la pgina en cuestin. Como es nuestro propio sitio web
y, por tanto, seguro que nos vamos a fiar de l, podramos aadir una
excepcin que se almacene de forma permanente en nuestro navegador
para, finalmente, usar encriptacin sin problemas. En el caso que he
expuesto al principio, el mo de querer usar SSL en el interfaz de
administracin de WordPress, tener un certificado as es ms que
suficiente, ya que nadie ms aparte de m debera de necesitar confiar
en el certificado.
La excepcin se almacena en forma de certificado en la pestaa de
autoridades reconocidas y en forma de entrada en la pestaa de
servidores:
Es necesario tener el servidor explcitamente autorizado en la
pestaa de servidores porque si editamos las propiedades del
certificado en el navegador, veremos que, por defecto, no sirve
para identificar sitios web. Si lo modificramos, no sera necesaria
la excepcin de la pestaa de servidores:
Crear un Certificado Firmado por nuestra propia Autoridad
CertificadoraSi lo que tenemos entre manos es un proyecto muy
serio, y necesitamos crear un certificado SSL firmado de verdad por
alguna de las autoridades certificadoras cuyos certificados raz
estn ya incluidos en todos los navegadores estndar (p.e. VeriSign),
tras hacer la compra y seguir todos los trmites necesarios,
tendremos que crear una clave privada y generar una peticin de
certificado para firmar y envirsela a la autoridad certificadora.
Sin embargo, si estamos en el entorno de la Intranet de una compaa,
donde podramos controlar que todos los sistemas incluyeran el
certificado raz de la misma, o, simplemente, para estudiar cmo
hacerlo, podramos generarnos nuestro propio certificado raz,
autoproclamndonos a nosotros mismos como autoridad certificadora.
Veamos cmo hacerlo con el script CA.pl de OpenSSL, que en Debian
est bajo /usr/lib/ssl/misc/ Creamos un nuevo certificado raz para
la autoridad certificadora Super Coco Certification Authority, de
la empresa Super Coco Inc.: # ./CA.pl -newca CA certificate
filename (or enter to create) Making CA certificate ... Generating
a 1024 bit RSA private key
.......................................................................................++++++
......................++++++ writing new private key to
'./demoCA/private/cakey.pem' Enter PEM pass phrase: Verifying -
Enter PEM pass phrase: ----You are about to be asked to enter
information that will be incorporated into your certificate
request. What you are about to enter is what is called a
Distinguished Name or a DN. There are quite a few fields but you
can leave some blank For some fields there will be a default value,
If you enter '.', the field will be left blank. ----Country Name (2
letter code) [AU]:ES State or Province Name (full name)
[Some-State]:Spain Locality Name (eg, city) []: Organization Name
(eg, company) [Internet Widgits Pty Ltd]:Super Coco Inc.
Organizational Unit Name (eg, section) []:Barrio Sesamo Common Name
(eg, YOUR name) []:Super Coco Certification Authority Email Address
[]:[email protected] Please enter the following 'extra'
attributes to be sent with your certificate request A challenge
password []: An optional company name []: Using configuration from
/usr/lib/ssl/openssl.cnf Enter pass phrase for
./demoCA/private/cakey.pem: Check that the request matches the
signature Signature ok
Certificate Details: Serial Number: bf:8a:98:f2:48:c0:84:68
Validity Not Before: Feb 18 19:02:57 2009 GMT Not After : Feb 18
19:02:57 2012 GMT Subject: countryName = ES stateOrProvinceName =
Spain organizationName = Super Coco Inc. organizationalUnitName =
Barrio Sesamo commonName = Super Coco Certification Authority
emailAddress = [email protected] X509v3 extensions: X509v3
Subject Key Identifier:
BD:85:EB:33:B0:0B:06:74:9A:F3:AB:18:95:D5:4B:CB:76:B8:EA:83 X509v3
Authority Key Identifier:
keyid:BD:85:EB:33:B0:0B:06:74:9A:F3:AB:18:95:D5:4B:CB:76:B8:EA:83
DirName:/C=ES/ST=Spain/O=Super Coco Inc./OU=Barrio Sesamo/CN=Super
Coco Certification
Authority/[email protected]
serial:BF:8A:98:F2:48:C0:84:68 X509v3 Basic Constraints: CA:TRUE
Certificate is to be certified until Feb 18 19:02:57 2012 GMT (1095
days) Write out database with 1 new entries Data Base Updated Ya
somos Autoridad Certificadora!! Ahora vamos a generar una clave
privada y una peticin de certificado para el sitio web
desarrollo.vicente-navarro.com #./CA.pl -newreq Generating a 1024
bit RSA private key .................++++++
.........................++++++ writing new private key to
'newkey.pem' Enter PEM pass phrase: Verifying - Enter PEM pass
phrase: ----You are about to be asked to enter information that
will be incorporated into your certificate request. What you are
about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank For some
fields there will be a default value, If you enter '.', the field
will be left blank. ----Country Name (2 letter code) [AU]:ES State
or Province Name (full name) [Some-State]:Spain Locality Name (eg,
city) []: Organization Name (eg, company) [Internet Widgits Pty
Ltd]:Desarrollo de Lo hice y lo entendi Organizational Unit Name
(eg, section) []:El blog de Vicente Navarro Common Name (eg, YOUR
name) []:desarrollo.vicente-navarro.com Email Address
[]:[email protected]
Please enter the following 'extra' attributes to be sent with
your certificate request A challenge password []: An optional
company name []: Request is in newreq.pem, private key is in
newkey.pem Ahora, con la clave privada del certificado raz,
firmamos la peticin de certificado, para que ste ya est completo: #
./CA.pl -sign Using configuration from /usr/lib/ssl/openssl.cnf
Enter pass phrase for ./demoCA/private/cakey.pem: Check that the
request matches the signature Signature ok Certificate Details:
Serial Number: bf:8a:98:f2:48:c0:84:69 Validity Not Before: Feb 18
19:06:09 2009 GMT Not After : Feb 18 19:06:09 2010 GMT Subject:
countryName = ES stateOrProvinceName = Spain organizationName =
Desarrollo de Lo hice y lo entendi organizationalUnitName = El blog
de Vicente Navarro commonName = desarrollo.vicente-navarro.com
emailAddress = [email protected] X509v3
extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment:
OpenSSL Generated Certificate X509v3 Subject Key Identifier:
20:7C:02:85:3D:52:2B:88:57:1E:A9:1B:F1:92:CF:70:74:78:00:48 X509v3
Authority Key Identifier:
keyid:BD:85:EB:33:B0:0B:06:74:9A:F3:AB:18:95:D5:4B:CB:76:B8:EA:83
Certificate is to be certified until Feb 18 19:06:09 2010 GMT (365
days) Sign the certificate? [y/n]:y 1 out of 1 certificate requests
certified, commit? [y/n]y Write out database with 1 new entries
Data Base Updated Signed certificate is in newcert.pem Los nuevos
ficheros y directorios que encontraremos en este directorio tras
estos tres comandos (CA.pl -newca, CA.pl -newreq y CA.pl -sign)
son: # ls -la total 52 drwxr-xr-x 3 root root 4096 2009-02-18 20:06
./ drwxr-xr-x 4 root root 4096 2009-01-13 18:25 ../ -rwxr-xr-x 1
root root 5875 2009-01-07 19:04 CA.pl* -rwxr-xr-x 1 root root 3784
2009-01-07 19:04 CA.sh* -rwxr-xr-x 1 root root 119 2009-01-07 19:04
c_hash* -rwxr-xr-x 1 root root 152 2009-01-07 19:04 c_info*
-rwxr-xr-x 1 root root 112 2009-01-07 19:04 c_issuer*
-rwxr-xr-x 1 root root 110 2009-01-07 19:04 c_name* drwxr-xr-x 6
root root 4096 2009-02-18 20:06 demoCA/ Directorio que contiene el
certificado raz y su clave privada (demoCA/cacert.pem es el
certificado y demoCA/private/cakey.pem es la clave privada)
-rw-r--r-- 1 root root 3532 2009-02-18 20:06 newcert.pem
Certificado de desarrollo.vicente-navarro.com firmado por la
autoridad certificadora -rw-r--r-- 1 root root 963 2009-02-18 20:05
newkey.pem Clave privada del certificado -rw-r--r-- 1 root root 781
2009-02-18 20:05 newreq.pem Peticin de certificado para firmar
Ahora podemos mover el certificado y su clave a /etc/ssl/ # mv
newkey.pem /etc/ssl/private/desarrollo.vicente-navarro.com.key # mv
newcert.pem /etc/ssl/certs/desarrollo.vicente-navarro.com.crt y
cambiar la configuracin del sitio para que lo use:
SSLCertificateFile
/etc/ssl/certs/desarrollo.vicente-navarro.com.crt
SSLCertificateKeyFile
/etc/ssl/private/desarrollo.vicente-navarro.com.key Tras lo que
tendremos que reiniciar el servidor web. El fichero
demoCA/cacert.pem es el certificado raz de la nueva autoridad
certificadora. Es un certificado X.509 con formato PEM. Ese fichero
tenemos que copiarlo a los sistemas que vayan a acceder a nuestro
sistema e importar el certificado en sus navegadores. Es muy
importante que a la hora de importar el certificado, le indiquemos
al navegador que el certificado sirve para identificar servidores
web:
Finalmente, ste es el certificado que el sitio
https://desarrollo.vicentenavarro.com presentar, firmado por la
autoridad certificadora Super Coco Certification Authority, y que
nuestro navegador reconocer, puesto que anteriormente le hemos
importado el certificado y le hemos dicho que sirve para
identificar sitios web:
En Windows, si al fichero del certificado le cambiamos la
extensin a .cer, Windows reconocer el tipo de archivo y podremos
hacer doble clic sobre l para importar el certificado en Internet
Explorer:
Cuidado con ponerle contrasea a la Clave Privada!! Ahora me
gustara hacer un comentario sobre la contrasea que nos pide OpenSSL
para ponerle a la clave privada del certificado (no a la del
certificado raz). En los ejemplos anteriores nos la ha pedido y le
hemos puesto una. En principio, podra ser buena idea ponrsela, pero
tenemos que tener en cuenta que si lo hacemos, tendremos que
introducirla cada vez que reiniciemos el servidor, incluso en el
arranque de la mquina, algo que puede ser muy inconveniente: #
apache2ctl stop # apache2ctl start Apache/2.2.9 mod_ssl/2.2.9 (Pass
Phrase Dialog) Some of your private key files are encrypted for
security reasons. In order to read them you have to provide the
pass phrases. Server desarrollo.vicente-navarro.com:443 (RSA) Enter
pass phrase: OK: Pass Phrase Dialog successful. De hecho, esto
podra confundirnos en ocasiones porque el comando apache2ctl
restart simplemente no nos pide la contrasea y no vuelve a arrancar
el servidor.
La solucin pasa por generar el certificado (o la peticin del
mismo) sin proteccin con contrasea con el comando: # CA.pl
-newreq-nodes Fijmonos en que esto mismo ya lo habamos hecho cuando
generamos el certificado autofirmado (openssl req -new -x509
-nodes): #./CA.pl -newreq-nodes Generating a 1024 bit RSA private
key .............++++++ ..................................++++++
writing new private key to 'newkey.pem' ----You are about to be
asked to enter information that will be incorporated into your
certificate request. What you are about to enter is what is called
a Distinguished Name or a DN. There are quite a few fields but you
can leave some blank For some fields there will be a default value,
If you enter '.', the field will be left blank. ----Country Name (2
letter code) [AU]:ES State or Province Name (full name)
[Some-State]:Spain Locality Name (eg, city) []: Organization Name
(eg, company) [Internet Widgits Pty Ltd]:Desarrollo de Lo hice y lo
entendi Organizational Unit Name (eg, section) []:El blog de
Vicente Navarro Common Name (eg, YOUR name)
[]:desarrollo.vicente-navarro.com Email Address
[]:[email protected] Please enter the following
'extra' attributes to be sent with your certificate request A
challenge password []: An optional company name []: Request is in
newreq.pem, private key is in newkey.pem
Operaciones con el Comando opensslPodemos examinar los
certificados con el comando openssl x509 # openssl x509 -noout
-text -in /etc/ssl/certs/desarrollo.vicentenavarro.com.crt
Certificate: Data: Version: 3 (0x2) Serial Number:
bf:8a:98:f2:48:c0:84:69 Signature Algorithm: sha1WithRSAEncryption
Issuer: C=ES, ST=Spain, O=Super Coco Inc., OU=Barrio Sesamo,
CN=Super Coco Certification
Authority/[email protected] Validity Not
Before: Feb 18 19:06:09 2009 GMT Not After : Feb 18 19:06:09 2010
GMT
Subject: C=ES, ST=Spain, O=Desarrollo de Lo hice y lo entendi,
OU=El blog de Vicente Navarro,
CN=desarrollo.vicentenavarro.com/[email protected]...
y podemos ver la clave con el comando openssl rsa # openssl rsa
-noout -text -in /etc/ssl/private/desarrollo.vicentenavarro.com.key
Tambin podemos usar el comando openssl verify para chequear el
certificado contra el certificado raz, pero si no hemos copiado el
certificado raz a /etc/ssl/certs/, el comando fallar: # openssl
verify desarrollo.vicente-navarro.com.crt
desarrollo.vicente-navarro.com.crt: /C=ES/ST=Spain/O=Desarrollo de
Lo hice y lo entendi/OU=El blog de Vicente
Navarro/CN=desarrollo.vicentenavarro.com/[email protected]
error 20 at 0 depth lookup:unable to get local issuer certificate
De hecho, no es suficiente slo con copiar el certificado # cp -p
/usr/lib/ssl/misc/demoCA/cacert.pem
/etc/ssl/certs/supercocoauthority.pem
sino que tambin es necesario obtener su hash: # cd
/etc/ssl/certs/ # openssl x509 -in supercocoauthority.pem -noout
-hash 628f4309 y crear un enlace al certificado cuyo nombre sea el
hash con extensin .0: # ln -s supercocoauthority.pem 628f4309.0
para que el certificado raz sea encontrado automticamente por la
herramienta openssl: # openssl verify
desarrollo.vicente-navarro.com.crt
desarrollo.vicente-navarro.com.crt: OK Con el comando openssl
s_client podemos probar que la conexin funciona. Sin embargo,
curiosamente, a diferencia de cmo funciona openssl verify, el
openssl s_client no encuentra los certificados si no le
especificamos el directorio donde buscarlos explcitamente con la
opcin -CApath: # openssl s_client -connect
desarrollo.vicente-navarro.com:443 CONNECTED(00000003) depth=0
/C=ES/ST=Spain/O=Desarrollo de Lo hice y lo entendi/OU=El blog de
Vicente
Navarro/CN=desarrollo.vicentenavarro.com/[email protected]
verify error:num=20:unable to get local issuer certificate verify
return:1
depth=0 /C=ES/ST=Spain/O=Desarrollo de Lo hice y lo
entendi/OU=El blog de Vicente
Navarro/CN=desarrollo.vicentenavarro.com/[email protected]
verify error:num=27:certificate not trusted verify return:1 depth=0
/C=ES/ST=Spain/O=Desarrollo de Lo hice y lo entendi/OU=El blog de
Vicente
Navarro/CN=desarrollo.vicentenavarro.com/[email protected]
verify error:num=21:unable to verify the first certificate verify
return:1 ... # openssl s_client -CApath /etc/ssl/certs/ -connect
desarrollo.vicentenavarro.com:443 CONNECTED(00000003) depth=1
/C=ES/ST=Spain/O=Super Coco Inc./OU=Barrio Sesamo/CN=Super Coco
Certification Authority/[email protected]
verify return:1 depth=0 /C=ES/ST=Spain/O=Desarrollo de Lo hice y lo
entendi/OU=El blog de Vicente
Navarro/CN=desarrollo.vicentenavarro.com/[email protected]
verify return:1...
Probar la Conexin con wgetTambin podemos probar la conexin en
lnea de comandos con wget. Si hemos copiado el certificado raz en
/etc/ssl/certs/ y hemos puesto el enlace con el hash, funcionar sin
problemas: # wget
https://desarrollo.vicente-navarro.com/blog/wp/wp-login.php
--2009-02-22 08:41:25--
https://desarrollo.vicente-navarro.com/blog/wp/wp-login.php
Resolving desarrollo.vicente-navarro.com... 127.0.0.1 Connecting to
desarrollo.vicente-navarro.com|127.0.0.1|:443... connected. HTTP
request sent, awaiting response... 200 OK Length: 3111 (3.0K)
[text/html] Saving to: `wp-login.php'
100%[======================================>] 3,111 --.-K/s in
0.001s 2009-02-22 08:41:27 (4.32 MB/s) - `wp-login.php' saved
[3111/3111] En otro caso, fallar: $ wget
https://desarrollo.vicente-navarro.com/blog/wp/wp-login.php
--2009-02-22 07:59:01--
https://desarrollo.vicente-navarro.com/blog/wp/wp-login.php
Resolving desarrollo.vicente-navarro.com... 192.168.4.35 Connecting
to desarrollo.vicente-navarro.com|192.168.4.35|:443... connected.
ERROR: cannot verify desarrollo.vicente-navarro.com's certificate,
issued by `/C=ES/ST=Spain/O=Super Coco Inc./OU=Barrio
Sesamo/CN=Super Coco Certification
Authority/[email protected]': Unable to
locally verify the issuer's authority. To connect to
desarrollo.vicente-navarro.com insecurely, use
`--no-check-certificate'.
Unable to establish SSL connection. por lo que le podramos
pasarle el certificado con la opcin --ca-certificate: $ wget
--ca-certificate=cacert.pem
https://desarrollo.vicentenavarro.com/blog/wp/wp-login.php
--2009-02-22 07:58:53--
https://desarrollo.vicente-navarro.com/blog/wp/wp-login.php
Resolving desarrollo.vicente-navarro.com... 192.168.4.35 Connecting
to desarrollo.vicente-navarro.com|192.168.4.35|:443... connected.
HTTP request sent, awaiting response... 200 OK Length: 3111 (3.0K)
[text/html] Saving to: `wp-login.php'
100%[======================================>] 3,111 --.-K/s in
0s 2009-02-22 07:58:55 (16.4 MB/s) - `wp-login.php' saved
[3111/3111]