Soporte y Tecnología > Tutoriales

Instalar un Servidor con SSL

(1/1)

LicH:
Info de Red.. sujeta a cambios


Añadir soporte SSL a una web puede parecer complicado, pero nada más lejos de la realidad.

Es fácil implementar una solución de conectividad segura a Apache bajo Linux. Sin embargo es complicado hacer eso mismo bajo Windows, y por norma, quienes optan por esta plataforma, suelen decantarse por IIS para extender certificados SSL por su facilidad.

En este artículo vamos a construir un servidor web con SSL bajo Apache Windows, utilizando para ello herramientas open source.

Lo primero que se necesita es OpenSSL para Windows. Descargamos entonces la versión 0.97e para Windows.


--- Código: ---OpenSSL para Windows
http://www.openssl.org/related/binaries.html 
--- Fin del código ---


Instalado éste, accedemos a una ventana DOS, y desde el directorio Openssl/bin, realizamos los siguientes pasos.

Generamos la pareja de claves para la CA con passphrase "test"
openssl genrsa -out CA_TEST.key -passout pass:test 2048

Generamos un certificado autofirmado con la clave pública de la CA, con la passphrase "test"

openssl req -new -x509 -out CA_TEST.crt -subj /DC=TEST/L=Concepcion/O=TEST/CN=CA_TEST -days 365 -sha1 -config openssl.cnf -extensions v3_ca

Generando una pareja de claves para el servidor

openssl genrsa -out TEST.key -passout pass:test 1024

Generando la petición de certificado para el servidor

openssl req -new -out TEST.csr -key TEST.key -sha1 -subj /L=Concepcion/O=TEST/OU=Test/CN=TEST -config openssl.cnf

Generando el certificado de la clave pública del servidor firmado por la CA

openssl x509 -req -in TEST.csr -CAkey CA_TEST.key -sha1 -days 365 -out TEST.crt -signkey TEST.key -extfile openssl.cnf -extensions v3_ca

Aquí se está utilizando una supuesta empresa llamada TEST con contraseña "test". Es evidente que el usuario deberá sustituir estos parámetros por la empresa de su elección con su contraseña preferida.

Lo siguiente que vamos a hacer es instalar Apache para Windows. Una forma rápida de hacerlo es utilizar alguno de los paquetes existentes en el mercado. Podríamos ir instalado cada uno de los componentes necesarios para construir un servidor web, pero si el trabajo ya está desarrollado, por qué no aprovecharse de ello.

Vamos a utilizar el paquete Appserv. La última versión incluye Apache 1.3.3, el intérprete PHP 4.3.9, MySQL 4.1.7, Zend Optimizar 4.5.5, el gestor de bases de datos PhpMyAdmin 2.6.0, y Perl 5.8.4.



--- Código: ---AppServ
http://www.appservnetwork.com 
--- Fin del código ---


Una instalación típica de este paquete pregunta por el nombre del servidor (que se puede dejar como localhost), el e-mail del administrador, y la contraseña a utilizar para acceder a la base de datos MySQL.

Si todo ha ido correctamente se instalará y arrancarán los servicios de Apache y MySQL.

Ahora, mediante un editor procedemos a buscar el archivo httpd.conf en c:\appserv\apache\conf y editarlo.

Hay que comentar la línea de # Port 80 en el fichero httpd.conf y añadir las siguientes dos líneas:

Listen 80
Listen 443

Los puertos por los que queremos que escuche, siendo el 443 el correspondiente a SSL.

Reiniciamos el servidor Apache, mediante el comando Restart del grupo de programas Appserv.

Se realiza una prueba de conexión a ambos puertos, viéndose una página de prueba satisfactoria.

Ejemplo:h**p://localhost:443

Creamos un directorio llamado "modssl" dentro del directorio de Apache.

con el binario de la distribución Openssl para Windows.

Cuando se instala Openssl, al descomprimir el binario de esta distribución, se copian automáticamente los ficheros ssleay32.dll y libeay32.dll al directorio System32 de nuestro Windows, ya sea c:\windows\system32\ para Windows 9x/ME o c:\winnt\system32\ para Windows NT y Windows 2000. Estos ficheros son imprescindibles para el buen funcionamiento del sistema.

Copiamos entonces los ficheros TEST.crt y TEST.key, generados por OpenSSL, al directorio modssl de Apache.

Editamos de nuevo el archivo httpd.conf y añadimos la siguiente línea

LoadModule ssl_module modules/mod_ssl.so

Después de las otras directivas LoadModule

Hay que comprobar que el módulo se encuentra en la carpeta propiamente dicha. En AppServ este módulo no se incluye por defecto; así que lo vamos a tener que localizar por Internet. Para ello descargamos una versión no oficial de Apache 1.3.3 + mod_ssl 2.8.22 + OpenSSL 0.9.7e desde la siguiente dirección:



--- Código: ---Apache 1.3.3 + mod_ssl 2.8.22 + OpenSSL 0.9.7e
http://hunter.campbus.com/Apache_1.3.33-Mod_SSL_2.8.22-Openssl_0.9.7e-Win32.zip

--- Fin del código ---

Esta versión hay que descompactarla sobre el directorio Apache de Appserv, sobrescribiendo los ficheros existentes. Antes de proceder con ello hay que hacer una copia del fichero httpd.conf y, una vez instalado, volver a copiar este fichero en su ubicación original.

Añadimos entonces también esta línea al fichero httpd.conf:

AddModule mod_ssl.c

Junto a las directivas similares en el archivo de configuración httpd.conf.

Por último, añadimos todo lo siguiente al final del archivo de configuración:



--- Citar ---SSLMutex sem
SSLRandomSeed startup builtin
SSLSessionCache none

SSLLog logs/SSL.log
SSLLogLevel info

<VirtualHost localhost:443>
SSLEngine On
SSLCertificateFile modssl/test.crt
SSLCertificateKeyFile modssl/test.key
</VirtualHost>
--- Fin de la cita ---

Guardamos los cambios y reiniciamos el servidor Apache.

Si desde el mismo navegador donde está instalado el servidor tecleamos

https://localhost

Vemos una advertencia de que estamos a punto de conectarnos a una conexión segura. Ahora bien un doble clic en el candado muestra que el certificado ha sido emitido por TEST, pero que "este certificado raíz de la entidad emisora de certificados no es confianza. Para activar la confianza, bla, bla..." Es decir, se trata de un certificado emitido por nosotros, no por una CA válida.

mauricio:
Excelente tutorial NightStalker. Mas que interesante  :thumbsup: :thumbsup: :thumbsup:

rdoggsv:
:O todo lo que hay que hacer para instalarlo en windows y en linux es como robarle el dulce al baby :P hahaha pero que bueno tenerlo ya hasta lo guarde en mis documentos  :drinks:

Navegación

[0] Índice de Mensajes

Ir a la versión completa