¿Cómo instalo un certificado raíz?

223

¿Alguien puede señalarme un buen tutorial sobre cómo instalar un certificado raíz en ubuntu 10 u 11?

Me han proporcionado un .crtarchivo. Entiendo que necesito crear un directorio en /usr/share/ca-certificates/newdomain.orgy colocarlo .crt en ese directorio. Más allá de eso, no estoy seguro de cómo proceder.

Sparky1
fuente
19
Si alguien aterriza aquí con un archivo CER en lugar de un CRT, es lo mismo (solo que con una extensión diferente). Debería poder seguir estas respuestas y simplemente sustituir el nombre del archivo.
Oli
Por cierto: para una forma conveniente de obtener certificados de CA desde la línea de comandos, mira aquí , en serverfault.
Frank Nocke

Respuestas:

298

Instalar un certificado raíz / CA

Dado un archivo de certificado de CA foo.crt, siga estos pasos para instalarlo en Ubuntu:

  1. Cree un directorio para certificados CA adicionales en /usr/share/ca-certificates:

    sudo mkdir /usr/share/ca-certificates/extra
    
  2. Copie el .crtarchivo CA en este directorio:

    sudo cp foo.crt /usr/share/ca-certificates/extra/foo.crt
    
  3. Deje que Ubuntu agregue la .crtruta del archivo en relación /usr/share/ca-certificatesa /etc/ca-certificates.conf:

    sudo dpkg-reconfigure ca-certificates
    

    Para hacer esto de manera no interactiva, ejecute:

    sudo update-ca-certificates
    

En el caso de un .pemarchivo en Ubuntu, primero debe convertirse a un .crtarchivo:

openssl x509 -in foo.pem -inform PEM -out foo.crt
Bai
fuente
54
¿Qué tal usar /usr/local/share/ca-certificates(local) en lugar de usar un directorio administrado de administración de paquetes del sistema?
gertvdijk
66
Tenga en cuenta que Firefox (y tal vez algún otro software) no utiliza los certificados de todo el sistema, pero tiene su propio almacén de certificados: askubuntu.com/a/248326/79344 .
Amir Ali Akbari
12
Tenga en cuenta que el archivo debe estar en formato PEM y tener la extensión ".crt".
Anton
2
sudo dpkg-reconfigure ca-certificatesGracias, el otro sudo update-ca-certificates --freshno funcionó en 16.10.
antivirtel
77
El comando openssl x509 -in foo.pem -inform PEM -out foo.crtcopia un archivo PEM en un archivo PEM. Esto se puede hacer más fácil cambiando el nombre.
Marian
191

Dado un archivo de certificado de CA 'foo.crt', siga estos pasos para instalarlo en Ubuntu:

Primero, copie su CA al directorio /usr/local/share/ca-certificates/

sudo cp foo.crt /usr/local/share/ca-certificates/foo.crt

luego, actualice la tienda de CA

sudo update-ca-certificates

Eso es todo. Deberías obtener esta salida:

Updating certificates in /etc/ssl/certs... 1 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d....
Adding debian:foo.pem
done.
done.

No se necesita ningún archivo para editar. El enlace a su CA se crea automáticamente.

Tenga en cuenta que los nombres de los archivos de certificados deben terminar .crt, de lo contrario, el update-ca-certificatesscript no los detectará.

Este procedimiento también funciona en versiones más recientes: manuales .

Frantisek Boranek
fuente
1
Esto parece no funcionar en
Trust Tahr
25
Tenga en cuenta que, a diferencia de agregar a / usr / share / ca-certificados, esto parece funcionar solo si están directamente en / usr / local / share / ca-certificados y no en un subdirectorio. ¡+1 por usar la carpeta local en lugar de la carpeta del sistema!
Toby J
2
Esto está documentado en README.Debian .
pevik
1
@ Sparky1, esta debería ser la respuesta aceptada.
Drew Chapin
1
@FranklinYu gracias :) Debian se mudó de Alioth a Salsa, esto también funcionaría: salsa.debian.org/debian/ca-certificates/raw/master/debian/… , pero sources.debian.org es mejor.
pevik
7

Instalar una autoridad de certificación en Ubuntu

He probado esto en Ubuntu 14.04.

Aquí está mi solución, busqué y busqué durante mucho tiempo tratando de descubrir cómo hacer que esto funcione.

  1. Extrae el .cer del navegador. Usé IE 11.
    • Configuración -> Opciones de Internet -> Autoridades de certificación intermedias
    • Seleccione la autoridad de certificación que desea exportar ( certutil -config - -pingle mostrará los que está utilizando si está detrás de un proxy corporativo)
    • Exportar -> Seleccione el formato que desea utilizar: DER Encoded .cer
  2. Lleve los archivos .cer a Ubuntu de alguna manera
  3. Convierte a .crt openssl x509 -inform DER -in certificate.cer -out certificate.crt
  4. Hacer directorio extra sudo mkdir /usr/share/ca-certificates/extra
  5. Copiar certificados sobre sudo cp certificate.crt /usr/share/ca-certificates/extra/certificate.crt
  6. sudo update-ca-certificates
  7. Si no, entonces tienes que hacer lo que hice, ir a sudo nano /etc/ca-certificates.conf
  8. Desplácese hacia abajo y encuentre su .cer y elimine el que está !delante del nombre del archivo (update-ca -ificates doc) ; si no encuentra su certificado, ejecutedpkg-reconfigure ca-certificates
  9. correr sudo update-ca-certificates
  10. Es posible que deba confiar individualmente en las CA de Firefox, Chrome, etc., necesitaba que funcionara con Docker, así que después de estos pasos funcionó con Docker.
Alex
fuente
1
funciona esto en 16.04?
endolito
@endolith trabajó para mí en 16.04.
Shubham
4

Otras respuestas no me funcionaron con Ubuntu 18.04. Agregue el certificado de certificado al /etc/ssl/certs/ca-certificates.crtuso del siguiente comando:

cat YOUR_CERT_HERE.crt >> /etc/ssl/certs/ca-certificates.crt 
Jasmit Tarang
fuente
1
2 horas de jugar con los comandos de importación antes de encontrar esto. ¡Perfecto!
beirtipol
El comando está mal, la final sno se encuentra: cat YOUR_CERT_HERE.crt >> /etc/ssl/certs/ca-certificates.crt . Gracias por esta solucion.
SommerEngineering
Nota: Esta es la solución temporal, ya que el certificado agregado se eliminará después de ejecutarse update-ca-certificates.
kenorb
3

Tenga el certificado (raíz / CA) disponible en un servidor web, local para su red si lo desea.

  • Navega hasta él con Firefox.
  • Abra el certificado y dígale a Firefox que lo agregue como una excepción.
  • Firefox le preguntará si desea confiar en este certificado para identificar sitios web, usuarios de correo electrónico o editores de software.
  • ¡Disfrutar!

Actualización: Será necesario verificar si esto funciona en Ubuntu 11. Me he dado cuenta de que acabo de hacer esto en Ubuntu 12.04 LTS.

Ian Green
fuente
55
¿Firefox no tiene su propio contenedor de certificados? Si uno agregara un certificado de esta manera, solo Firefox podría usarlo, ¿no?
Aiyion.Prime
Eso no funciona en absoluto, aún tiene que agregarlo al contenedor global de certificados del sistema operativo, de lo contrario, solo estará en el contenedor de Firefox.
arc_lupus
1

Desde aquí :

Instalando el Certificado

Puede instalar el archivo de clave example.key y el archivo de certificado example.crt, o el archivo de certificado emitido por su CA, ejecutando los siguientes comandos en un indicador de terminal:

sudo cp example.crt /etc/ssl/certs
sudo cp example.key /etc/ssl/private

Ahora simplemente configure cualquier aplicación, con la capacidad de usar criptografía de clave pública, para usar el certificado y los archivos de clave. Por ejemplo, Apache puede proporcionar HTTPS, Dovecot puede proporcionar IMAPS y POP3S, etc.

jat255
fuente
Debería haber leído más de cerca ... Parece que eso no es para certificados raíz. Sin embargo, esa página a la que he vinculado contiene información sobre certificados raíz que podría ser útil.
jat255
1
No tengo una clave pública y una clave privada, solo tengo un .crt, así que desafortunadamente esas instrucciones no parecen aplicarse.
Sparky1
0

Agregar un certificado de CA raíz en FireFox ahora es muy fácil. Simplemente abra las preferencias, vaya a "Privacidad y seguridad", desplácese hacia abajo hasta "Certificados" y haga clic en "Ver certificados ...". Aquí puede hacer clic en "Importar certificado". Señale su CA raíz (.pem) y OK. Eso es todo amigos.

pizzamonster
fuente
0

Aquí están los pasos simples:

  1. Instale certificados de CA para permitir que las aplicaciones basadas en SSL verifiquen la autenticidad de las conexiones SSL:

    sudo apt-get install ca-certificates
    
  2. Copie el archivo del certificado ( crto.cer ) en la /usr/local/share/ca-certificates/carpeta, por ejemplo:

    sudo cp file.crt /usr/local/share/ca-certificates/
    

    Para el archivo PEM, consulte: Convertir .pem a .crt y .key .

    Opcionalmente, si usa el proxy Charles, este comando puede funcionar:

    curl -L chls.pro/ssl | sudo tee /usr/local/share/ca-certificates/charles.crt
    
  3. Actualizar certificados:

    sudo update-ca-certificates
    

    El comando actualizará el /etc/ssl/certsdirectorio para contener certificados SSL y generará un ca-certificates.crtarchivo (una lista de certificados de un solo archivo concatenado).

    Nota: No agregue certificados manualmente (como se sugiere aquí ), ya que no son persistentes y se eliminarán.

Nota: Si está ejecutando como root, puede soltar el sudode los comandos anteriores.

kenorb
fuente
0

¡Aclaración entre update-ca-certificatesy dpkg-reconfigure ca-certificatespor qué uno funciona y el otro no!

update-ca-certificateso sudo update-ca-certificates solo funcionará si /etc/ca-certificates.conf se ha actualizado.

/etc/ca-certificate.conf solo se actualiza una vez que ejecutó, dpkg-reconfigure ca-certificates que actualiza los nombres de los certificados que se importarán/etc/ca-certificates.conf

Esto se indica en el encabezado del /etc/ca-certificates.confarchivo:

# This file lists certificates that you wish to use or to ignore to be
# installed in /etc/ssl/certs.
# update-ca-certificates(8) will update /etc/ssl/certs by reading this file.
#
# This is autogenerated by dpkg-reconfigure ca-certificates.  <=======
# Certificates should be installed under /usr/share/ca-certificates
# and files with extension '.crt' is recognized as available certs.
#
# line begins with # is comment.
# line begins with ! is certificate filename to be deselected.
#
mozilla/ACCVRAIZ1.crt
mozilla/AC_RAIZ_FNMT-RCM.crt
mozilla/Actalis_Authentication_Root_CA.crt
mozilla/AddTrust_External_Root.crt
...

Como puede ver, el formato /etc/ca-certificates.confes<folder name>/<.crt name>

Entonces, para usar update-ca-certificateso sudo update-ca-certificatespuede hacer lo siguiente para importar un archivo .crt:

  1. Cree un directorio para certificados CA adicionales en / usr / share / ca-certificados:

    sudo mkdir /usr/share/ca-certificates/extra

  2. Copie el archivo .crt en este directorio:

    sudo cp foo.crt /usr/share/ca-certificates/extra/foo.crt

  3. Agregue una línea para /etc/ca-certificates.confusar <folder name>/<.crt name>:

    echo "extra/foo.crt" >> /etc/ca-certificate.conf

  4. Actualice los certificados de forma no interactiva con sudo update-ca-certificados

    sudo update-ca-certificates

    ... Updating certificates in /etc/ssl/certs... 1 added, 0 removed; done.

¡Que te diviertas!

mahatmanich
fuente