Configurando CA en clientes desde consola

De WikiSalud
Revisión a fecha de 14:41 19 sep 2017; Alortiz (Discusión | contribuciones)

(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
Saltar a: navegación, buscar
Commons-emblem-Under construction-green
Este artículo está en una fase temprana de desarrollo, por lo que puede estar incompleto o tener aún errores de redacción o formato

Contenido

Resumen

Administración de Autoridades Certificadores desde consola para navegadores y sistema

Introducción

En nuestro argot decimos "agregar el certificado"; para ser un poco más específicos, a lo que nos referimos es a configurar la confianza en una Autoridad Certificadora al agregar su certificado en nuestro sistema, o, sobre todo, en el navegador. Esto nos permite confiar en todos los certificados que dicha autoridad firma, por lo que agregar una CA permite ahorrarse el trabajo de agregar los certificados digitales que podrían identificar a cada servidor.
Esta guía pretender ser la base para la automatización de estas tarea mediante scripts, pero bien pueden usarse para configuración en remoto desde consola.

Procedimiento

Administrando CA de firefox desde consola

Debemos tener instalado el paquete libnss3-tools

apt-get install libnss3-tools

Firefox almacena sus certificados en $HOME/.mozilla/firefox/<cadena-aleatoria>.default/{cert8.db,key3.db}. Nos referimos a ellos con la opción -d /home/mafi/.mozilla/firefox/<cadena-aleatoria>.default/ Seamos un poco didácticos. Una de las razones de más peso para tener que agregar una CA es el servidor proxy. Es posible que el proxy de su establecimiento TODO: Acá falta una buena explicación al respecto. Digamos que lo habíamos configurado, pero después de un tiempo han decidido cambiarlo:

Listando certificados disponibles

certutil -d /home/mafi/.mozilla/firefox/a5rehbgu.default/ -L

Certificate Nickname                                         Trust Attributes
                                                             SSL,S/MIME,JAR/XPI

Google Internet Authority G3                                 ,,   
DigiCert SHA2 Extended Validation Server CA                  ,,   
Go Daddy Secure Certificate Authority - G2                   ,,   mafi
DigiCert SHA2 High Assurance Server CA                       ,,   
thawte SHA256 SSL CA                                         ,,   
COMODO RSA Organization Validation Secure Server CA          ,,   
Amazon                                                       ,,   
DigiCert SHA2 Secure Server CA                               ,,   
Symantec Class 3 Secure Server CA - G4                       ,,   
RapidSSL SHA256 CA                                           ,,   
GlobalSign Organization Validation CA - SHA256 - G2          ,,   
Symantec Class 3 ECC 256 bit SSL CA - G2                     ,,   
Let's Encrypt Authority X3                                   ,,   
Gandi Standard SSL CA 2                                      ,,   
Symantec Class 3 Secure Server SHA256 SSL CA                 ,,   
Symantec Class 3 EV SSL CA - G3                              ,,   
COMODO RSA Domain Validation Secure Server CA                ,,   
Camerfirma Corporate Server II - 2015                        ,,   
Trustwave Organization Validation SHA256 CA, Level 1         ,,   
GlobalSign Domain Validation CA - SHA256 - G2                ,,   
GlobalSign CloudSSL CA - SHA256 - G3                         ,,   
Symantec Basic DV SSL CA - G2                                ,,   
Starfield Secure Certificate Authority - G2                  ,,   
Entrust Certification Authority - L1K                        ,,   
http                                                         ,,   
fw-establecimiento.salud.gob.sv - Ministerio de Salud        CT,C,C
Google Internet Authority G2                                 ,,   
AlphaSSL CA - SHA256 - G2                                    ,,   
COMODO ECC Domain Validation Secure Server CA 2              ,,   
GeoTrust SSL CA - G3                                         ,,   
RapidSSL SHA256 CA - G3                                      ,,   

Nos fijamos en fw-establecimiento.salud.gob.sv - Ministerio de Salud: Lo vamos a borrar de la siguiente forma:

certutil -d $HOME/.mozilla/firefox/a5rehbgu.default/ -D -n "fw-establecimiento.salud.gob.sv - Ministerio de Salud"

Ahora, agregamos el certificado fw-establecimiento.crt. Pues ha funcionado con el navegador abierto, de hecho, al recargar la página ya debería estar funcionando:

certutil -d $HOME/.mozilla/firefox/a5rehbgu.default/ -A -n "fw-establecimiento.salud.gob.sv - Ministerio de Salud" -t "CT,C,C" -i fw-establecimiento.crt

La opción -n es básicamente el nombre que le asignamos al certificado. Lo mejor es que lo hagamos según los datos del certificado mismo, con la forma

<cn> - <o>

Que puede obtenerse del certificado de la siguiente forma:

openssl x509 -in myCA.crt -text -noout | grep Issuer
     Issuer: C=SV, ST=San Salvador, L=San Salvador, O=Direcci\xC3\x83\xC2\xB3n Central, OU=Establecimiento, CN=Establecimiento dependiente/emailAddress=vtacius@gmail.com

En este caso, por ejemplo

certutil -d $HOME/.mozilla/firefox/a5rehbgu.default/ -D -n "Establecimiento dependiente - Dirección Central" -t "CT,C,C" -i myCA.crt

Podemos revisar: el navegador ya lo reconoce

01 - certificado desde consola.png

Administrando CA de chrome desde consola

Chrome almacena sus certificados en $HOME/.pki/nssdb. Aparte, se necesita agregar sql: a la dirección, luego, todos los comandos funcionan de la misma forma:

certutil -d sql:$HOME/.pki/nssdb -A -n "fw-establecimiento.salud.gob.sv - Ministerio de Salud" -t "CT,C,C" -i fw-establecimiento.crt

Administrando CA para el sistema

Cuando se intenta navegar desde la consola, recibimos este mensaje de error.

wget https://www.google.com.sv--2017-08-30 09:22:58--  https://www.google.com.sv/
Resolviendo www.google.com.sv (www.google.com.sv)... 216.58.192.35, 2607:f8b0:4008:805::2003
Conectando con www.google.com.sv (www.google.com.sv)[216.58.192.35]:443... conectado.
ERROR: El certificado de “www.google.com.sv” no es confiable.
ERROR: El certificado de “www.google.com.sv” no tiene un emisor conocido.

En general, el sistema también tiene su propia forma de almacenar certificados, algo que puede ser un poco confuso, pero cuya administración se facilita un poco con el comando update-ca-certificates. Básicamente, movemos el certificado de la CA a /usr/local/share/ca-certificates/ y luego corremos el comando.

cp fw-establecimiento.crt /usr/local/share/ca-certificates/
update-ca-certificates 
Updating certificates in /etc/ssl/certs...
1 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...

Adding debian:fw-establecimiento.pem
done.
done

El comando anterior ahora funciona correctamente

wget https://www.google.com
--2017-08-30 09:30:33--  https://www.google.com/
...
Petición HTTP enviada, esperando respuesta... 200 OK
Longitud: no especificado [text/html]
Grabando a: “index.html”

index.html                     [ <=>                                  ]  10.45K  --.-KB/s    in 0.008s   

2017-08-30 09:30:33 (1.30 MB/s) - “index.html” guardado [10700]

Fuentes

Herramientas personales
Espacios de nombres

Variantes
Acciones
Navegación
Herramientas