He generado un certificado autofirmado para mi servidor de compilación y me gustaría confiar globalmente en el certificado de mi máquina, ya que creé la clave yo mismo y estoy harto de ver advertencias.
Estoy en Ubuntu 12.04. ¿Cómo puedo tomar el certificado y confiar globalmente para que los navegadores (Google Chrome), las utilidades CLI (wget, curl) y los lenguajes de programación (Python, Java, etc.) confíen en la conexión a https://mysite.com sin preguntar? preguntas?
Respuestas:
La respuesta simple a esto es que casi cada aplicación lo manejará de manera diferente.
Además, OpenSSL y GNUTLS (las bibliotecas de procesamiento de certificados más utilizadas para manejar certificados firmados) se comportan de manera diferente en el tratamiento de los certificados, lo que también complica el problema. Además, los sistemas operativos utilizan diferentes mecanismos para utilizar la "CA raíz" utilizada por la mayoría de los sitios web.
Aparte de eso, dando a Debian como ejemplo. Instala el
ca-certificates
paquete:Luego copia la mitad pública de su certificado de CA no confiable (el que usa para firmar su CSR) en el directorio del certificado de CA (como raíz):
Y consiga que reconstruya el directorio con su certificado incluido, ejecútelo como root:
y seleccione la
ask
opción, desplácese hasta su certificado, márquelo para incluirlo y seleccione ok.La mayoría de los navegadores usan su propia base de datos de CA, por lo que
certutil
se deben usar herramientas como para modificar su contenido (en Debian que proporciona ellibnss3-tools
paquete). Por ejemplo, con Chrome ejecutas algo en la línea de:Firefox le permitirá buscar el certificado en el disco, reconocerlo como un archivo de certificado y luego le permitirá importarlo a la lista de CA raíz.
La mayoría de los otros comandos, como los
curl
interruptores de línea de comando take, puede usar para apuntar a su CA,o descartar la validación SSL por completo
El resto necesitará una investigación individual si el
ca-certificates
truco similar no lo ordena para esa aplicación en particular.fuente
dpkg-reconfigure ca-certificates
lista. ¿Qué estoy haciendo mal?whatever.pem
awhatever.crt
..cer
, y eso no funcionó. Tuve que cambiarle el nombre.crt
para que fuera reconocido.Enfoque no interactivo
Para usar en un contexto no interactivo (por ejemplo, una receta de chef) puede usar la siguiente secuencia.
man update-ca-certificates
Este método es preferido sobre el método de @ Drav, ya
/usr/share/
que generalmente está reservado para los archivos agregados por el OS /apt-get
.fuente
/usr/local/share/ca-certificates/
como se menciona en las páginas del.crt
, encontré.cert
afirmada que se agregó pero no ayudóEn Fedora 23, agregue el archivo .pem o .der
/etc/pki/ca-trust/source/anchors/
y ejecútelosudo update-ca-trust extract
.Consulte los
man update-ca-trust
detalles, por ejemplo, si debe usar / etc o / usr.fuente
En centos:
fuente
openssl connect
, ¿ debería especificar esta carpeta / anchors? Todavía recibo un error "self signed certs
Enfoque no interactivo (18 de octubre)
para sistemas basados en Debian recientes
Hay una distinción entre agregar un certificado a la tienda del host y activarlo para que las aplicaciones realmente los utilicen. No se usa necesariamente un certificado existente en la tienda (aunque tengo que admitir que todavía muchos paquetes se están equivocando de todos modos)
Esto puede ser confuso cuando configura un paquete que considera
/etc/ca-certificate.conf
y simplemente se niega a usar su certificado, aunque tiene agregado sin error. Debe indicarupdate-ca-certificates
explícitamente (no solo copiar sino) activar el certificado agregándolo a/etc/ca-certificate.conf
o/etc/ca-certificate/update.d
.Ahora aquí se vuelve confuso ya que hay una manera implícita de confiar en un certificado utilizando una ruta diferente:
fuente