¿Cómo revoco el certificado de aceite de serpiente predeterminado?

¿Cómo revoco el certificado de aceite de serpiente predeterminado?

Windows XP sigue usando el certificado Snakeoil que incluía Ubuntu, a pesar de que nunca se ha utilizado en ningún host virtual.

El certificado se encuentra en

/etc/ssl/certs/ssl-cert-snakeoil.pem

No estoy seguro de dónde está la clave. El único que veo que parece plausible es en

/etc/ssl/private/ssl-cert-snakeoil.key

Creo que el certificado de CA está en

/etc/ssl/certs/ca-certificates.crt

pero no estoy seguro.

Hasta ahora he probado varios comandos de openssl, como

openssl ca -keyfile /etc/ssl/private/ssl-cert-snakeoil.key \
    -revoke /etc/ssl/certs/ssl-cert-snakeoil.pem \
    -cert /etc/ssl/certs/ca-certificates.crt

El resultado de ese fue

Using configuration from /usr/lib/ssl/openssl.cnf
CA certificate and CA private key do not match
14805:error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch:x509_cmp.c:406:

Se me acabaron las ideas. Cualquier ayuda es muy apreciada.

EDITAR

Esto es lo que pasó:

Compré un certificado de GeoTrust, lo instalé, activé el nuevo host virtual usando ese certificado y reinicié Apache2. En ningún momento durante la vida útil de este servidor se ha utilizado ningún otro certificado para proteger el tráfico web, y mucho menos el certificado Snakeoil. Windows Vista y versiones posteriores, así como OSX y todas las distribuciones de Linux que he probado, utilizan el certificado correcto. Windows XP usa el certificado Snakeoil (en IE. No hay otros navegadores en esa VM). Aquí hay algunas capturas de pantalla:

El certificado correcto cargado en Chrome

El certificado incorrecto cargado en IE 8 en Windows XP

Respuesta1

Dada la información adicional que ha proporcionado, probablemente me resulte más fácil comenzar con otra respuesta.

No parece que el certificado ficticio "snakeoil" se esté presentando al cliente de Windows. El certificado "snakeoil" se genera con un asunto de CN=Ubuntu, mientras que el certificado que se presenta en el cuadro de Windows tiene un asunto de CN=Production. Entonces estamos viendo un tercer certificado aquí.

Puedo ver el mismo certificado si me conecto a su servidor con OpenSSL s_client:

$ openssl s_client -connect portal.avendimedia.com:443
...
Certificate chain
 0 s:/CN=Production
   i:/CN=Production
...

Lo que creo que está sucediendo es que ha configurado su servidor web para usar elIndicación del nombre del servidorextensión. Esta extensión está diseñada para permitir que un servidor presente diferentes certificados según el nombre de host al que desee conectarse el cliente.

Esto funciona bien en la mayoría de los navegadores modernos, pero no funciona en Internet Explorer en versiones de Windows anteriores a Vista. En este punto, parece muy poco probable que Microsoft actualice las bibliotecas SSL en Windows XP para que admitan la extensión SNI.

Si necesita que su sitio funcione con Internet Explorer en XP, vea si puede eliminar las referencias a este otro host SSL que se ejecuta en la misma dirección IP desde su configuración de Apache.

Respuesta2

El certificado "snakeoil" se genera automáticamente cuando ssl-certse instala el paquete.

Es un certificado autofirmado, por lo que revocarlo no tiene mucho sentido. Sin embargo, puedes generar uno nuevo fácilmente:

sudo make-ssl-cert generate-default-snakeoil --force-overwrite

Probablemente tendrás que reiniciar cualquier servicio que estuviera utilizando ese certificado para que el cambio surta efecto.

Cuando dices que Windows XP sigue usando el certificado, ¿qué quieres decir exactamente? Si le había dicho a su navegador web en esa computadora que confiara en el certificado de aceite de serpiente particular generado por su sistema Ubuntu, debería ser sencillo revocar esa confianza en la interfaz de administración de certificados del navegador.

información relacionada