Miércoles, 17 de Junio de 2015
Ultimamente están apareciendo vulnerabilidades de SSL y además algunos de los algoritmos utilizados para la comunicación están siendo declarados inseguros, por lo que hay que revisar la configuración de los servidores web con SSL para evitar estos problema.
En mi opinión la configuración de SSL es complicada sobre todo si queremos afinarla en lo relativo a que algoritmos de cifrado permitir y cuales no. Para ayudarnos en este labor podemos usar el Mozilla SSL Configuration Generator
DAVID FERNANDEZ ACIN Servidor web, ssl Apache, openssl, ssl
Martes, 17 de Julio de 2012
Comprobar que la clave pública de un certificado SSL se corresponde con la clave privada
En ocasiones tenemos dudas de si el certificado SSL con el que estamos trabajando se corresponde con la clave privada que tenemos guardada en el servidor. Para comprobar si esto es así podemos comprobar el módulo de las claves pública y privada. Si estos módulos coinciden entonces tenemos un par clave pública/privada válido. Para calcular estos módulos podemos usar el comando openssl:
# openssl x509 -noout -modulus -in certificado.crt
# openssl rsa -noout -modulus -in private.key
Si conservamos la petición de firma (CSR – Certificate Sign Request) también podemos comprobar su módulo con:
# openssl req -noout -modulus -in peticion.csr
El módulo de una clave pública/privada es una cadena hexadecimal muy grande por lo que es difícil compararlas a primera vista. Para facilitarnos esta labor podemos usar el comando uniq. Si la salida de este comando es una sola línea, entonces las claves coinciden y todo va bien. Si la salida es más de una línea entonces hay algo que no está bien.
# (openssl x509 -noout -modulus -in certificado.crt ; \
openssl rsa -noout -modulus -in private.key ; \
openssl req -noout -modulus -in peticion.csr ) | uniq | wc -l
DAVID FERNANDEZ ACIN ssl certificado ssl, clave privada, clave pública, openssl
Jueves, 24 de Febrero de 2011
Comprobar que un certificado SSL es válido para nuestras autoridades de certificación reconocidas
En algunas situaciones necesitamos comprobar si un determinado certificado SSL ha sido firmado por una de nuestras autoridades de certificación reconocidas. Para hacer eso podemos usar la opción verify del comando openssl.
El comando que ejecutaríamos sería el siguiente:
# openssl verify -CAfile /etc/pki/tls/certs/autoridades.crt \
-purpose any /etc/pki/tls/certs/certificado.crt
siendo autoridades.crt el fichero que contiene en formato PEM las autoridades de certificación reconocidas y certificado.crt el certificado a verificar.
El comando nos permite hacer la verificación según el propósito para el que se va a usar el certificado (servidor ssl, cliente ssl,…) pero en el ejemplo le indicamos que cualquier uso nos es válido (-purpose any).
Si el resultado del comando es un OK entonces el certificado ha sido verificado. En caso contrario el certificado no habría sido firmado por una de esas autoridades.
Es importante tener en cuenta, que si el certificado ha sido firmado por una CA intermedia, en el fichero de las autoridades de certificación también deberá figurar esta CA, ya que en caso contrario la verificación fallará.
DAVID FERNANDEZ ACIN ssl certificado ssl, openssl