sábado, 3 de febrero de 2018

Acceso a carpetas seguras

Acceso a carpetas seguras

Una vez que hemos instalado nuestro servidor Apache en el puerto 8080, el siguiente paso que vamos a dar es lograr un acceso seguro a nuestro servidor web, de modo que podamos crear en nuestros sitios web de Apache carpetas seguras, a las que se acceda por SSL (Secure Socket Layer), de modo que en nuestro navegador sólo podamos acceder a dicha carpeta vía "https" y no "http"; para conseguirlo debemos proceder del siguiente modo:
Lo primero que debemos hacer es disponer para el sitio web deseado (en nuestro caso lo haremos para el sitio web creado, "apache.micentro.edu"), de un certificado de la entidad emisora de certificados "OpenSSL" instalada anteriormente; para ello abrimos una ventana de MS-DOS en nuestro servidor Windows 2003, y nos ubicamos en la ruta "C:\Openssl\bin".
El primer paso que hemos de realizar es teclear "OpenSSL" y posteriormente pulsar sobre la tecla "ENTER", de modo que el prompt queda como "OpenSSL>".
A continuación generamos la petición de certificado para el servidor tecleando la siguiente cadena de caracteres en el prompt "OpenSSL>"
req -config openssl.cnf -new -out apache.csr
Tras teclear este comando se nos solicita en primer lugar una clave ("pass"), pudiendo indicar la cadena que deseemos; en nuestro caso hemos decidido poner "apachessl", clave que hemos de introducir por duplicado para su confirmación. Posteriormente comienza la solicitud de datos propios del certificado que vamos a generar, de modo que especificaremos para cada parámetro solicitado el valor indicado en las siguiente líneas:
"Country Name" indicamos "ES"
"State or Province Name" indicamos "Madrid"
"Locality Name" indicamos "Madrid"
"Organization Name" indicamos "MiCentro"
"Organizational Unit Name" pulsamos directamente sobre <ENTER>
"Common Name" indicamos "apache.micentro.edu"
"Email Address" indicamos "administrador@micentro.edu"
"A challange password" pulsamos directamente sobre <ENTER>
"An optional company name" pulsamos directamente sobre <ENTER>
Una vez completada la introducción de los datos anteriores, y de vuelta en el prompt "OpenSSL>", generamos una pareja de claves para el servidor tecleando la siguiente cadena:
rsa -in privkey.pem -out apache.key
Tras lo cual se solicita que introduzcamos la clave anteriormente especificada (recordemos que habíamos indicado la clave "apachessl"); procederemos a realizar dicha operación.
Finalmente generamos el certificado de la clave pública del servidor firmado por la entidad certificadora mediante la siguiente orden:
x509 -in apache.csr -out apache.crt -req -signkey apache.key -days 3650
Por último salimos del prompt "OpenSSL" tecleando "exit".
Finalmente cerramos la ventana de MS-DOS, pues ya habremos generado el certificado deseado para el sitio "apache.micentro.edu".
A continuación modificamos el fichero "httpd.conf" ubicado en "C:\Apache\conf", incluyendo la siguiente línea bajo la correspondiente a "Listen 8080":
Listen 4443
Además descomentamos la siguiente línea quitando el símbolo "#".
LoadModule ssl_module modules/mod_ssl.so
NOTA: La entrada "Listen 4443" significa que nuestro servidor web también "escucha" en el puerto 4443, y de hecho será el puerto que utilizaremos para el acceso a páginas seguras, pues el puerto 443 ya está siendo ocupado para el acceso a páginas seguras por nuestro servidor IIS. Posteriormente asociaremos el acceso a las páginas seguras deseadas a dicho puerto (4443).
Añadimos también la siguiente línea al fichero httpd.conf:
AddModule mod_ssl.c
Junto a las directivas similares "AddModule" en el archivo de configuración "httpd.conf".
El último paso es crear un sitio web virtual en nuestro servidor Apache que sea accesible vía SSL por el puerto 4443; para ello añadimos todo lo siguiente al final del archivo de configuración "httpd.conf":
SSLMutex sem
SSLRandomSeed startup builtin
SSLSessionCache none
SSLLog logs/SSL.log
SSLLogLevel info
<VirtualHost apache.micentro.edu:4443>
ServerName apache.micentro.edu
SSLEngine On
SSLCertificateFile conf/modssl/apache.crt
SSLCertificateKeyFile conf/modssl/apache.key
</VirtualHost>
Finalmente guardaremos los cambios realizados en el fichero "httpd.conf".
Continuaremos el proceso de configuración creando un directorio llamado "modssl" dentro del directorio de "C:\Apache\conf", y posteriormente copiamos los ficheros "apache.crt" y "apache.key" que se encuentran en "C:\OpenSSL\bin" a C:\Apache\conf\modssl".
NOTA: Dicha pareja de ficheros fue creada durante el proceso de generación de los certificados.
Por último reiniciamos el servicio "Apache", pulsando con el botón derecho del ratón sobre dicho servicio desde la ventana "Servicios" de las "Herramientas Administrativas" del "Panel de Control", y seleccionando la opción "Reiniciar"; para comprobar el correcto acceso a las páginas seguras de nuestro Apache, tecleamos desde el navegador "https://apache.micentro.edu:4443". Lo primero que se muestra es la alerta de seguridad que nos indica que el certificado no está emitido por una CA en la que confiamos.
Pulsaremos sobre el botón "Ver Certificado" mostrándose la siguiente pantalla:
En la nueva ventana pulsaremos sobre "Instalar Certificado", mostrándose la siguiente ventana en la que pulsaremos sobre el botón "Siguiente".
En la siguiente ventana pulsamos directamente sobre el botón "Siguiente".
A continuación se presenta la ventana final del asistente, en la cual pulsaremos sobre el botón "Finalizar".
En este instante se muestra la advertencia de seguridad de aceptación de instalación del certificado, en la cual pulsamos sobre el botón "Sí".
Una vez completado el proceso se mostrará la siguiente ventana en la cual pulsaremos sobre el botón "Aceptar".
NOTA: A partir de este momento, cuando accedamos a una página segura de nuestro servidor Apache ya no se mostrará la alerta de seguridad. Este proceso hemos de hacerlo en cada equipo que acceda a las páginas seguras del servidor web Apache si deseamos evitar la aparición de la alerta de seguridad en el acceso a páginas seguras.
Recordemos que estábamos probando el correcto acceso a las páginas seguras de nuestro Apache, pues bien, cuando tecleemos en el navegador "https://apache.micentro.edu:4443" deberemos ver la siguiente ventana, que indica que hemos instalado adecuadamente el acceso seguro al servidor web virtual Apache.
NOTA: Si estamos utilizando la versión 7 de Internet Explorer, en vez de lo anterior, pasará a mostrarse la siguiente pantalla, en la cual, en contra de lo que inicialmente podríamos pensar, deberemos pulsar sobre el enlace "Vaya a este sitio web (no recomendado)", a fin de poder visualizar correctamente la pantalla anterior.
En este instante vamos a crear una carpeta de nombre "seguro" colgando de "C:\Apache\htdocs", de modo que todo lo que coloquemos en dicha carpeta deba ser accedido exclusivamente vía "https" mediante SSL. Para conseguirlo además de crear dicha carpeta, debemos editar el fichero "httpd.conf" e introducir en el apartado correspondiente a los directorios la siguiente entrada:
<Directory "C:/apache/htdocs/seguro">
Options Indexes FollowSymlinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
SSLRequireSSL
</Directory>
Finalmente salvamos los cambios en el fichero de configuración, y reiniciamos el servicio Apache, de modo que tras ello a partir de este momento, cualquier fichero que coloquemos colgando de la ruta "C;\Apache\htdocs\seguro" será accedido vía "https"; si por ejemplo colocamos un fichero "prueba.htm" en la carpeta "seguro", accederemos a ella a través de la siguiente URL: "https://apache.micentro.edu:4443/seguro/prueba.htm".
Así mismo para que los profesores de nuestro centro tengan una carpeta segura donde poder colocar contenidos accesibles vía SSL, crearemos una carpeta de nombre "seguro" para cada uno de nuestros profesores, "Joaquin", "Javier" y "Miguel" colgando de su carpeta personal en el servidor Apache (por ejemplo en el caso del profesor Javier a dicha carpeta se encuentra en "C:\Apache\htdocs\Profesores\matematicas\Javier").
Además introduciremos una nueva entrada de directorio seguro para la carpeta en cuestión en el fichero "httpd.conf", tecleando las siguiente líneas:
<Directory "C:/apache/htdocs/profesores/matematicas/javier/seguro">
Options Indexes FollowSymlinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
SSLRequireSSL
</Directory>
Tras ello guardamos los cambios realizados en el fichero "httpd.conf", de modo que para acceder a un fichero de nombre "prueba.htm" ubicado en la carpeta segura del profesor "Javier" teclearemos la siguiente URL: "https://apache.micentro.edu:4443/Profesores/Matematicas/Javier/seguro/prueba.htm". Hemos de tener en cuenta que previamente debemos reiniciar el servidor Apache mediante la opción "Servicios" de las "Herramientas Administrativas" del "Panel de Control" para poder comprobar la validez de los cambios realizados.
NOTA: Este proceso hemos de hacerlo para los 3 profesores de nuestro centro, evidentemente cambiando en las instrucciones la ruta correspondiente al directorio donde se encuentra la carpeta "seguro" de cada usuario.

No hay comentarios:

Publicar un comentario