Como instalar un servidor Web Apache Windows con SSL.

10/01/2005 - 14:09 por Ubuntu | Informe spam
Tendre que probarlo en windows. Conversación desviada a
microsoft.public.es.windows.server.general :-)


COMO INSTALAR UN SERVIDOR WEB APACHE WINDOWS CON SSL
http://www.seguridad0.com


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 (ver enlaces a pie de página).

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

1. Generamos la pareja de claves para la CA con passphrase "test"
openssl genrsa -out CA_TEST.key -passout pass:test 2048
2. 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=Barcelona/O=TEST/CNÊ_TEST -days 365 -sha1 -config
openssl.cnf -extensions v3_ca
3. Generando una pareja de claves para el servidor
openssl genrsa -out TEST.key -passout pass:test 1024
4. Generando la petición de certificado para el servidor
openssl req -new -out TEST.csr -key TEST.key -sha1 -subj
/L=Barcelona/O=TEST/OU=Test/CN=TEST -config openssl.cnf
5. 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.

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:appservapacheconf 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: http://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:windowssystem32 para Windows 9x/ME o c:winntsystem32 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 dirección que se incluye a pie de página.

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:

SSLMutex sem
SSLRandomSeed startup builtin
SSLSessionCache none

SSLLog logs/SSL.log
SSLLogLevel info

<VirtualHost localhost:443>
SSLEngine On
SSLCertificateFile conf/modssl/test.crt
SSLCertificateKeyFile conf/modssl/test.key
</VirtualHost>

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.

En otra ocasión, hablaremos de cómo proceder a instalar una serie de
directivas que permitan a quienes dispongan de un certificado SSL
acceder únicamente a un directorio especifico. Es decir, se creará un
acceso autorizado a aquellos poseedores de un certificado SSL en su
navegador.

Autor: Carlos Mesa

Más información:

OpenSSL para Windows
http://www.openssl.org/related/binaries.html

AppServ
http://www.appservnetwork.com

Apache 1.3.3 + mod_ssl 2.8.22 + OpenSSL 0.9.7e
http://hunter.campbus.com/Apache_1....-Win32.zip

Galería de imagenes Ubuntu Linux (Español).
http://www.ubuntu-es.org/image
 

Leer las respuestas

#1 JM Tella Llop [MVP Windows]
10/01/2005 - 15:05 | Informe spam
Tendre que probarlo en windows.



Esperamos tu informe tecnico con ansiedad (será el primero claro).

Jose Manuel Tella Llop
MVP - Windows
(quitar XXX)
http://www.multingles.net/jmt.htm

Este mensaje se proporciona "como está" sin garantías de ninguna clase,
y no otorga ningún derecho.

This posting is provided "AS IS" with no warranties, and confers no
rights.
You assume all risk for your use.



"Ubuntu" wrote in message
news:41e280f9$0$51253$
Tendre que probarlo en windows. Conversación desviada a
microsoft.public.es.windows.server.general :-)


COMO INSTALAR UN SERVIDOR WEB APACHE WINDOWS CON SSL
http://www.seguridad0.com


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 (ver enlaces a pie de página).

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

1. Generamos la pareja de claves para la CA con passphrase "test"
openssl genrsa -out CA_TEST.key -passout pass:test 2048
2. 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=Barcelona/O=TEST/CNÊ_TEST -days 365 -sha1 -config
openssl.cnf -extensions v3_ca
3. Generando una pareja de claves para el servidor
openssl genrsa -out TEST.key -passout pass:test 1024
4. Generando la petición de certificado para el servidor
openssl req -new -out TEST.csr -key TEST.key -sha1 -subj
/L=Barcelona/O=TEST/OU=Test/CN=TEST -config openssl.cnf
5. 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.

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:appservapacheconf 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: http://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:windowssystem32 para Windows 9x/ME o c:winntsystem32 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 dirección que se incluye a pie de página.

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:

SSLMutex sem
SSLRandomSeed startup builtin
SSLSessionCache none

SSLLog logs/SSL.log
SSLLogLevel info

<VirtualHost localhost:443>
SSLEngine On
SSLCertificateFile conf/modssl/test.crt
SSLCertificateKeyFile conf/modssl/test.key
</VirtualHost>

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.

En otra ocasión, hablaremos de cómo proceder a instalar una serie de
directivas que permitan a quienes dispongan de un certificado SSL
acceder únicamente a un directorio especifico. Es decir, se creará un
acceso autorizado a aquellos poseedores de un certificado SSL en su
navegador.

Autor: Carlos Mesa

Más información:

OpenSSL para Windows
http://www.openssl.org/related/binaries.html

AppServ
http://www.appservnetwork.com

Apache 1.3.3 + mod_ssl 2.8.22 + OpenSSL 0.9.7e
http://hunter.campbus.com/Apache_1....-Win32.zip

Galería de imagenes Ubuntu Linux (Español).
http://www.ubuntu-es.org/image

Preguntas similares