Confíe en un certificado PEM autofirmado

23
  1. He configurado un servidor proxy con SSL usando un certificado PEM. Ahora, hay un par de máquinas mías en las que me gustaría confiar automáticamente en este certificado (sin que el navegador web se queje). ¿Cómo puedo instalar un certificado PEM en cada máquina?

  2. Además, ¿qué es más recomendable: generar un certificado autofirmado o concatenar el certificado de serpiente?

Teresa e Junior
fuente

Respuestas:

10

Los navegadores tienen una lista de certificados de "autoridad de certificación" (CA) de confianza. Si el certificado de un servidor está firmado por uno de esos certificados de CA y está formado correctamente, no recibirá la advertencia de SSL.

Muchos navegadores se envían con muchos certificados de CA comunes como Verisign, Thawte, etc. La mayoría de los navegadores le permiten importar una nueva CA en esta lista de CA confiables.

Al igual que crear su propio certificado de servidor autofirmado, puede crear su propio certificado CA autofirmado. Luego puede usar eso para firmar su certificado de servidor. Si su CA no es proporcionada por una empresa conocida, que no sería si fuera una que usted hizo, tendrá que ser importada explícitamente en el lado del servidor.

He usado xcapara hacer esto antes. Tiene plantillas para CA y servidores HTTP. El procedimiento es este:

  • Cree una clave privada para su CA
  • Cree una CA autofirmada usando esta clave usando la plantilla "CA"
  • Cree una clave privada para su servidor proxy
  • Cree una "solicitud de firma de certificado" (CSR) con la segunda clave, haciendo referencia a la CA que acaba de realizar.
  • "Firme" la CSR y obtendrá el certificado del servidor proxy, que hace referencia a su propia CA.

Luego deberá exportar (como un archivo si está usando xca) el certificado de CA (pero no incluya la clave privada, por supuesto). Se .pemgenerará A pero puede cambiar la extensión a .crt. Cuando un usuario hace clic en eso, se le ofrecerá que se instale en Firefox e Internet Explorer, y posiblemente en otros navegadores principales. En cuanto a la instalación automática de este .crt, puede:

  • usar la política de grupo en IE
  • dirija a los usuarios a una página de introducción pidiéndoles que descarguen / instalen .crt si quieren evitar advertencias.

Luego puede usar las funciones de exportación en el certificado del servidor HTTP (exportar tanto la clave privada como el certificado para el lado del servidor) para poner en su servidor proxy.

LawrenceC
fuente
17
  1. Copie su certificado /etc/ssl/certsen el sistema de destino. Luego, cree un enlace simbólico utilizando el hash generado por el comando openssl x509 -noout -hash -in ca-certificate-filereemplazando ca-certificate-filecon el nombre de su certificado. Su certificado debe ser aceptado por todos los programas sin su propio almacén de certificados.

    Para los programas con su propio almacén de certificados (navegadores, Java y otros), deberá importar el certificado.

  2. Lo mejor es generar su propio certificado autofirmado o firmado.

    Es posible que desee instalar tinyca2y generar su propia autoridad de certificación. Puede importar el certificado de la autoridad de certificación como se detalla en los pasos anteriores. Genere e implemente certificados firmados para sus aplicaciones.

    Distribuya su certificado de CA a aquellos usuarios que necesitan confiar en su certificado. Es posible que deba proporcionar información sobre cómo importarles el certificado. ADVERTENCIA: Si hacen esto, se convertirá en otra CA confiable para ellos, así que asegure su CA en consecuencia.

    Muchas herramientas también se pueden configurar para confiar en certificados autofirmados o certificados con CA no confiables. Esta suele ser una acción única. Esto puede ser más seguro que aceptar un certificado de CA de una autoridad insegura, solo el certificado aceptado es de confianza.

BillThor
fuente
¿Se puede hacer esto más específico? Por ejemplo: el host A envía un correo al host B y se queja de no poder verificar la identidad de B. En el host B, hemos creado un certificado autofirmado: /etc/ssl/certs/ssl-cert-snakeoil.pem(esto es lo que el paquete Debian ssl-certcrea para usted). Lo copiamos al host A y lo llamamos /etc/ssl/certs/host-B.pem(ya que este host ya podría tener a ssl-cert-snakeoil.pem). Entonces corremos ln -s /etc/ssl/certs/host-B.pem $(openssl x509 -noout -hash -in /etc/ssl/certs/host-B.pem).
Alex Schröder
1
@ AlexSchröder que he editado anteriormente. No deben importar su certificado de snakeoil, pero si ha configurado su propia CA, es razonable que importen su CA. Todavía no he identificado problemas de confianza entre los servidores SMTP. Se puede decir a la mayoría de los clientes que confíen en los certificados individuales.
BillThor
Gracias. Encontré esta pregunta cuando estaba buscando una explicación para una entrada de registro que obtengo. La explicación que encontré fue que cuando A enviará un correo a B, A informará que no fue posible verificar la identidad de B.
Alex Schröder
¡Esto es exactamente lo que estaba buscando! -- ¡gracias! Ahora puedo usar davfs para montar mi webDAV seguro sin tanta molestia.
Wyatt8740
13

En Debian y Ubuntu que tienes que copiar el certificate.pemque /usr/local/share/ca-certificates/certificate.crta continuación, ejecutar dpkg-reconfigure ca-certificates. /etc/ssl/certses administrado por ese comando.

Thom Wiggers
fuente