Solución: Implemetar certificados digitales auto firmados.
Los certificados digitales deben ser generados por una entidad CA (Certificate Authority), la cual garantiza que los certificados son válidos. De lo contrario podría ser un certificado apócrifo. Para evitar esto último, habrá que invertir algunos dolares y solicitar un certificado a un CA oficial.
En mi caso, mi servidor web no brinda servicio para todo público, por lo que el grupo de usuarios que lo utiliza el limitado. Entonces tengo la opción de firmar mis propios certificados.
Nota: Por ejemplo si en el navegador Firefox vas a Preferencias > Privacidad y seguridad > Certificados > Ver certificados y ahí en la solapa Autoridades, verás una lista larga de entidades CA.
Por lo tanto ahora explicaré como montar mi propio servidor de sertificados CA y como firmarlos.
1. Instalar openssl para crear mi CA.
sudo apt-get install openssl
2. Editar la configuración básica de openssl. Buscar y reemplazar.
sudo nano /usr/lib/ssl/openssl.cnf
Buscar:
[ CA_default ]
dir = ./demoCA
Poner:
[ CA_default ]
dir = /root/ca
3. Crear el directorio /root/ca
sudo mkdir /root/ca
4. Crear la estructura para luego generar los certificados:
cd /root/ca
sudo mkdir newcerts certs crl private requests
sudo touch index.txt
sudo echo '1234' > serial
5. Generar la llave privada principal "cakey.pem" y solicita definir una contraseña para luego firmar certificados:
sudo openssl genrsa -aes256 -out private/cakey.pem 4096
6. Generar el certificado principal "cacert.pem", aquí solicitará la contraseña de la llave privada principal y datos básicos:
openssl req -new -x509 -key /root/ca/private/cakey.pem -out cacert.pem -days 3650 -set_serial 0
7. Ahora se genera una llave privada, con una contraseña, para generar un certificado.
cd /root/ca/requests/
sudo openssl genrsa -aes256 -out mi_server_key.pem 2048
8. Luego se genera una solicitud de certificado, y se debe cargar los datos solicitados para el certificado que se requiera.
sudo openssl req -new -key mi_server_key.pem -out mi_server.csr
9. Como paso final se firma el requerimiento anterior con el CA generado.
sudo openssl ca -in mi_server.csr -out mi_server.pem
10. Podemos descartar el archivo con extensión scr.
sudo rm mi_server.scr
11. Con estos pasos ahora ya tenemos un certificado digital para instalar en nuestro servidor.
Fuente 1
Fuente 2
No hay comentarios:
Publicar un comentario