Gestión del CA y certificados autofirmados
Este camino queda descartado
Debido a que no es posible poner el certificado de CA en un android sin que estén continuamente saltando alarmas de seguridad. Aparece el mensaje "Podria estar siendo espiado". Haría falta ser root para poder instalar el certificado como de confianza.
Se utiliza la via let's encrypt.
Estamos siguiendo los pasos de https://jamielinux.com/docs/openssl-certificate-authority/
Apuntes generales
TODO: rehacer según se está haciendo ahora
- Actualmente la gestión de la CA se hace en el contenedor ca_certs
- Los CA están en un pendrive (negro retráctil de la Sandisk)
- Los archivos implicados en el CA son:
- lechuga_eu_CA.key.pem Clave privada y encriptada del certificado de autoridad
- lechuga_eu_CA.cert.pem ''Certificado raíz a instalar en los
- lechuga_eu_CA.srl
- La configuración para la gestión de la CA está en /root/ca/openssl.cnf
Creación del certificado raíz propio (CA)
¡El certificado raíz ya está creado!
Revocado del certificado raíz.
Este proceso ha de ejecutarse en última instancia, en el caso que se haya comprometido el CA.
Creación de una CA Intermedia
La creación de una CA Intermedia, que puede firmar certificados en nombre de la CA principal, es para evitar utilizar esta última. De esta manera, si la CA Intermedia resulta comprometida, la CA principal puede revocarla.
Así minimizamos el tiempo de exposición de la CA principal.
Las CA intermedias se almacenan en el subdirectorio CAintermedia
Pasos a seguir:
- Creación de la clave intermedia encriptada (guardar la clave)
openssl genpkey -algorithm rsa -des3 -out /root/ca/intermediate/privatelechuga_eu_ICA.key.pem -pkeyopt rsa_keygen_bits:4096 - Protegemos el archivo de clave
chmod 400 /root/ca/intermediate/private/lechuga_eu_ICA.key.pem - Creación del CSR para firmar con la CA raíz
openssl req -config /root/ca/intermediate/openssl.cnf -new -sha256 -key /root/ca/intermediate/private/lechuga_eu_ICA.key.pem -out /root/ca/intermediate/csr/lechuga_eu_ICA.csr.pem - Firmamos la solicitud (csr) con la clave privada de la CA raíz y generamos el certificado del ICA
openssl ca -config openssl.cnf -extensions v3_intermediate_ca -days 365 -notext -md sha256 -in /root/ca/intermediate/csr/lechuga_eu_ICA.csr.pem -out /root/ca/intermediate/certs/lechuga_eu_ICA.cert.pem - Aseguramos los permisos
chmod 444 /root/ca/intermediate/certs/lechuga_eu_ICA.cert.pem - Creamos una cadena de certificados, concatenando el de la CA y el de la ICA
cat /root/ca/intermediate/certs/lechuga_eu_ICA.cert.pem /root/ca/certs/lechuga_eu_CA.cert.pem > /root/ca/intermediate/certs/lechuga_eu_ICA_cadena_trust.cert.pem - Aseguramos los permisos
chmod 444 /root/ca/intermediate/certs/lechuga_eu_ICA_cadena_trust.cert.pem
Creación de certificados de servidor
https://jamielinux.com/docs/openssl-certificate-authority/sign-server-and-client-certificates.html
NOS HEMOS QUEDADO AQUÍ
Miscelánea de comandos
Check a private key (CA and others)openssl rsa -in privateKey.key -check
Check a certificateopenssl x509 -in certificate.crt -text -noout
Check a Certificate Signing Request (CSR)openssl req -text -noout -verify -in CSR.csr