Laboratorio de Seguridad en Redes, maestría en ciencias de la computación.
Para el desarrollo de este laboratorio usé dos máquinas del laboratorio de redes móviles e inalámbricas. ICARO
¿Cual es la función de cada script? sign.sh firma un certificado digital generado con mkcert.sh. Dependiendo del archivo encontrado en la red, es posible que no sean compatibles con las nuevas versiones de Apache2. En consecuencia, es recomendable usar OpenSSL que funciona sin ningún contratiempo.
¿Cómo hacerlos ejecutables? Son archivos shell script, en consecuencia solo debemos correrlos en cónsola usando ./.
OpenSSL es una librería open source que provee una suite de seguridad para generación de certificados y firmas digitales, aunado a la generación de claves públicas y privadas usando distintos formatos de certificados, encriptados con algoritmos como RSA y DSA.
Existen 4 formatos de certificados digitales para OpenSSL (.DER, .CRT, .CER, .PEM). Nosotros usamos .CRT y .PEM en la elaboración del proyecto.
.CSR es un certificate signing request que puede ser transformado en un .CRT que si es un formato de certificado digital. Para generar el .CSR necesitamos una clave privada creada previamente.
En la configuración de las páginas usando SSL utilizamos un .CRT tanto para la entidad certificadora creada por nosotros como para el certificado del web server firmado por la CA externa, en nuestro caso, Comodo.
Genera una clave ca.key usando el algoritmo RSA y tiene una longitud de 4096 bits. Es importante la petición del passphrase que debe recordar para verificar ser el dueño de la clave.
Genera un certificado ca.crt firmado por la clave ca.key en formato x509 con una validez de 7300 días. Lo primero que se debe ingresar es el passphrase de la clave para evitar plagios y luego llenar ciertas peticiones y datos importantes. Entre los campos claves encontramos Organization name que es el campo que compara SSL para comprobar que los certificados están bien generados.
Genera un certificado de nombre NOMBE_CERTIFICADO siempre que ./mkcert.sh esté configurado adecuadamente.
Firma el Certificate Singing Request (.csr) con la clave que se haya generado. De tal manera que
Imprime en cónsola toda la información de CERTIFICADO_DE_TU_COMPAÑERO.CRT. Entre las que encontramos: - Algoritmo de firma digital. - Información pertinente del certificado ingresada en el item anterior. - Clave publica (en el caso de ejemplo generada con RSA y de 4096 bits). - Identificador de clave de la autoridad certificadora. - El certificado en sí al final.
¿Que hace el comando aptitude purge apache2?
El comando aptitude purge apache2 elimina la configuración del servidor apache2 y, muy importante, todos los archivos relacionados a este. De esta manera, si se desea reinstalar el servidor apache2 es importante eliminar tanto las referencias al mismo, como su configuración como todos los archivos relacionados a este.
¿Que hace el comando aptitude install apache2?
A diferencia del comando anterior, aptitude install apache2 instala el servidor apache2 por defecto, si y solo si, no está ya instalado el mismo. En el caso de estar instalado previamente, el comando revisa las carpetas de configuración para ver discrepancias. De este modo, es importante que, a la hora de instalar, no estén instalaciones previas del apache.
Habilita el modo SSL en el servidor Apache2. Una vez habilitado el mismo, el site default-ssl en sites-available empieza a ser útil a la hora de arrancar el servidor.
SSLCertificateFile DIRECTORIO_HOME/TU_CERTIFICADO.crt
SSLCertificateKeyFile DIRECTORIO_HOME/TU_CERTIFICADO.key
Con el comando a2ensite habilitamos una configuración de página SSL en la carpeta sites-available y, al ejecutarlo, entra en el site sites-enabled al momento de reiniciar el servidor.
Reinicia el servidor apache2, primero detiene el servicio y lo reinicia. Es importante acotar el uso de sudo service apache2 restart en nuevas versiones de apache.