Como crear y configurar un certificado SSL en WAMP para navegación segura por HTTPS

Agradecimento a : http://millertaker.blogspot.com.es/2012/07/como-crear-y-configurar-un-certificado.html

El día de hoy me vi en la necesidad de montar un entorno de pruebas para una aplicación de Facebook que me encuentro desarrollando. Debido que a partir del año pasado es necesario poseer un SSL para trabajar sobre Facebook me vi en la necesidad de configurar mi servidor de aplicaciones PHP (WAMP) con un certificado SSL. A continuación documentare el proceso que encontré googleando un poco pero que no esta disponible en español.

Descripción del servidor:

SO: Windows Server 2003
Servidor de aplicaciones: WAMP 2.2
PHP
MySQL

PASO 1: Crear el certificado SSL

Según la documentación de WAMP debemos entrar por linea de comando a la ruta wamp\bin\apache\apache2.2.8\bin (donde 2.2.8 corresponderá a la versión del apache que venia con tu  WAMP, en mi caso 2.2.22) y ejecutar las siguientes lineas de comando:

 openssl genrsa -des3 -out server.key 1024 

Al ejecutarse esta linea de comando te solicitara una contraseña la cual podrás elegir a tu preferencia.

Antes de continuar, quiero hacer un paréntesis ya que al intentar ejecutar el comando openssl obtenia un error en la dll ssleay32.dll “The ordinal 968 could not be located in dynamic link library LIBEAY32.dll” para solucionarlo instale el OpenSSL win32  light , y reemplace los archivos que menciono a continuación en el directorio bin del apache del WAMP

ssleay32.dll
libeay32.dll
openssl.exe

Bueno continuando con la creación del certificado ejecuto las siguientes lineas de comando desde el cmd de windows

 copy server.key server.key.org openssl rsa -in server.key.org -out server.key openssl req -new -x509 -nodes -sha1 -days 365 -key server.key -out server.crt -config C:\wamp\bin\apache\apache2.2.8\conf\openssl.cnf 

Recuerda que para la tercera linea de comando el directorio apache2.2.8 corresponderá a tu versión de apache instalada, una vez se haya ejecutado la 3ra linea de comando se te solicitaran alguna información tuya y de tu servidor.

PASO 2: Montaje en WAMP

Finalizada la creación del certificado aparecerán en el directorio bin (wamp\bin\apache\apache2.2.8\bin) de tu apache los archivos: server.key y server.crt  los cuales deberás copiar en el directorio de configuracion  del mismo (wamp\bin\apache\apache2.2.8\conf) en los directorios que deberás crear

ssl.key (para server.key)
ssl.crt (para server.crt)

PASO 3: Configuración

Edición del httpd.conf file y php.ini

Para el caso del httpd.conf deberemos descomentar las lineas

 LoadModule ssl_module modules/mod_ssl.so Include conf/extra/httpd_ssl.conf 

y agregar bajo la linea del Include

 <IfModule ssl_module></IfModule> 

Para el caso del php.ini (el cual hace referencia al que esta en la carpeta bin del apache wamp\bin\apache\apache2.2.8\bin) deberemos descomentar la linea:

 extension=php_openssl.dll 

Como pudiste ver incluimos el directorio conf/extra/httpd_ssl.conf dentro de la configuración de nuestro apache a continuación definiremos algunos parámetros para el certificado creado.

 Quitar las comillas a "SSLMutex default" Buscar la linea de <VirtualHost _default_:443> y cambiar la linea que dice DocumentRoot por: "C:/wamp/www/" con comillas y cambiar el Error log de igual manera Cambiar el SSLCertificateFile a "conf/ssl.crt/server.crt" Cambiar el SSLCertificateKeyFile a "conf/ssl.key/server.key" Cambiar <Directory "C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin"> a <Directory "C:/wamp/www/"> y agregar las siguientes lineas de codigo dentro del tag Directory Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all 

Verifica  que la linea CustomLog “logs/ssl_request_log”  este des comentada

PASO 4: Prueba

Para verificar nuestra configuración introducimos la siguiente linea de comando donde intrudujimos los comando del openssl:

 httpd -t 

Si hemos realizado todo correctamente nos aparecerá OK reiniciamos servicios del WAMP
y tenemos montado el SSL localmente para publicarlo en una dirección publica o dominio de servidor
modificamos la linea dentro del httpd_ssl.conf y reiniciamos servicios del servidor

 ServerName localhost:443' a 'ServerName www.tudominio.com:443' 

 

Espero les sirva de tanta ayuda como para mi!
Saludos

Deja un comentario