Apache 2 con SSL en Windows HOWTO… ¡agh!

2007.05.16 :: post por saia @ tecnología :: 1 comentario

A ver, ultimamente he estado buscando por necesidad información sobre como configurar el Apache2 en Windows con SSL… El tema es parecido a Linux, pero a mi personalmente me gusta más el método del Linux, pero claro, en Windows no se puede aplicar, y alguien se preguntará ¿por qué?… Pues porque en Windows no existen los links (ni soft, ni hard, sólo la kk los ‘Accesos directos’… ¡uy, que me da la risa!)

La cuestión es que hay muchos manuales por ahí en los que te dicen: Instalas el Apache con el módulo de ssl integrado, el OpenSSL y tiras para adelante: Mentira, no es necesario instalar el OpenSSL, puesto que el Apache 2.0.xx ya trae lo necesario -salvo el openssl.cnf- para configurar el SSL.

Esto es un Mini-HOWTO, y si tienes dudas es que no debes intentar hacerlo: Llamas a alguien que sepa y punto. Otra cosita importante: Mira bien que versión de SSL tiene el Apache, porque un bug crítico puede hacer que se te cuelen hasta la cocina (como el que había en las 0.9.7x con RSA).

Vamos al tema, omitiendo lo básico:

1.- Te instalas el Apache 2.0.xx con SSL en el ordenador… No le llames máquina ni nada parecido, que quedarás mal. Después configuras el DocumentRoot, ServerName, etc. en el fichero httpd.conf dentro del directorio conf de la ruta donde has instalado el Apache. En este mismo fichero además te aseguras de que tienes descomentada la línea:

Include conf/ssl.conf

Así como los IfModule que la rodean misteriosamente: Es que si no lo haces no va a cargar el fichero ssl.conf.

Además descomentaremos también en el httpd.conf las directivas LoadModule para los módulos ssl_module y userdir_module.

2.- Te copias las librerías libeay32.dll y ssleay32.dll -las encuentras en el directorio bin de la ruta donde has instalado el Apache- al directorio system32 que tienes en tu directorio de instalación del Windows.

3.- Copiamos el fichero openssl.cnf -buscalo en el Google, casi cualquier copia es válida- al directorio bin de Apache2, porque la distribución de Windows no lo trae consigo -el OpenSSL tampoco, y lo vamos a necesitar.

4.- Es el momento de generar los certificados -¿lo que?-, pero claro, como los certificados aceptados automáticamente por la mayoría de los navegadores son de entidades de pago, pues nos toca crearnos nuestra propia entidad certificadora previamente… Ahí van los pseudo-comandos (¿¡A qué se nota que adoro el Güindous!?), y si hay dudas pues apunta: www.google.com.

# openssl req -config openssl.cnf -new -out mi-dominio.csr

… Aquí lo más importante es dar el dominio completo cuando nos pregunte “Common Name (eg, your websites domain name)”. Si no lo haces te hundes con todo el equipo.

# openssl rsa -in privkey.pem -out mi-dominio.key

Después de este último paso ELIMINAS el fichero .rnd que tienes en el directorio de trabajo:

# del .rnd

Hay gente a la que le gusta generar un certificado con un año de validez… A mi también:

# openssl x509 -in mi-dominio.csr -out mi-dominio.cert -req -signkey mi-dominio.key -days 365

A continuación hay que copiar los ficheros .key y .cert a una carpeta nueva que crearemos en el directorio conf. La llamaremos ssl.

5.- Ahora tendremos que editar el fichero ssl.conf, que está en el directorio conf. Este fichero es el equivalente al httpd.conf, pero para conexiones SSL -a través del puerto 443, por defecto. En el ssl.conf alteraremos cuatro cosas:

- Comentar la directiva IfDefine SSL y su cierre /IfDefine.
- Corregir ServerName, ServerAdmin y DocumentRoot. ServerName debe estar acorde con el puerto, por ejemplo, www.neogaia.info:443, en mi caso.
- Editamos las entradas SSLCertificateKeyFile y SSLCertificateFile y añadimos la key y el certificado que hemos generado previamente:

SSLCertificateKeyFile conf/ssl/mi-dominio.key
SSLCertificateFile conf/ssl/mi-dominio.cert

¡Ya está! Importante: ¡REINICIAR EL APACHE! Ahora podemos incluir en el VirtualHost nuestras directivas Directory, DirectoryMatch, location, etc. Para la redirección de HTTP a HTTPS suele ser buena cosa usar el módulo rewrite, pero esa es otra historia.

1 comentario »


rss plantilla para comentarios en este post. trackback uri



deja un comentario



Todo el material propio con licencia Creative Commons by-sa
15 consultas generadas en 1.051 segundos.