Configurar un certificado SSL en WAMP

Esta es la forma de configurar un certificado SSL dentro de un entorno local de desarrollo, en mi caso puntual es WAMP 2.4 corriendo en Windows 7 32bits.

#1: Configurar las variables de entorno

  1. Click derecho en Equipo > seleccionar Propiedades y en la ventana que se abre, en la columna izquierda encontraremos un link a Configuración avanzada del sistema
  2. En la ventana que se abre, dentro de la solapa Opciones avanzadas, hacer click sobre el botón Variables de entorno, se abrirá una nueva ventana.
  3. Allí deberemos agregar una nueva variable de entorno cuyo nombre debe ser: OPENSSL_CONF y su valor la ruta donde se encuentra el archivo openssl.cnf, en mi caso es: C:\wamp\bin\apache\apache2.4.9\conf\openssl.cnf
  4. Aceptamos y cerramos todas las ventanas

#2: Crear el certificado SSL y su clave

  1. Abrir la consola (tecla Win + r) y cambiar el directorio a la carpeta bin de nuestro Apache.
  2. Creamos una clave privada con el siguiente comando, nos pedirá un password, recordarlo.
  3. Quitamos la contraseña de la clave privada y creamos una copia de seguridad del archivo, nos pedirá la contraseña ingresada anteriormente.
  4. Creamos un certificado con la clave generada, este comando pedirá información para su codificación.

#3: Almacenando los certificados

  1. Creamos una carpeta llamada OpenSSL dentro de nuestra instalación de WAMP, adentro creamos las siguientes subcarpetas:
    • certs
    • crl
    • newcerts
    • private
  2. Copiamos los siguientes archivos de C:\wamp\bin\apache\apache2.4.9\bin\C:\wamp\OpenSSL\certs\
    • server.crt
    • server.key
  3. Copiamos los siguientes archivos de C:\wamp\bin\apache\apache2.4.9\bin\ a C:\wamp\OpenSSL\private\
    • server.key.org

#4: Configuración en el archivo httpd.conf

  1. Abrir el archivo httpd.conf. Lo podemos hacer desde el panel del WAMP, dentro del menú Apache o abrirlo desde el directorio C:\wamp\bin\apache\apache2.4.9\conf\
  2. Descomentar la linea: LoadModule ssl_module modules/mod_ssl.so
  3. Descomentar la linea: LoadModule setenvif_module modules/mod_setenvif.so
  4. Decomentar la linea: Include conf/extra/httpd-ssl.conf y moverla dentro del bloque <IfModule ssl_module>…</IfModule>

#5: Configuración en el archivo php.ini

  1. Abrir el archivo php.ini. Lo podemos hacer desde el panel del WAMP, dentro del menú PHP o abrirlo desde el directorio C:\wamp\bin\php\php5.5.12\
  2. Quitar el comentario (borrar punto y coma) de la linea que dice: extension=php_openssl.dll

#6: Configuración en el archivo httpd-ssl.conf

  1. Abrir el archivo httpd-ssl.conf. Lo podemos hacer desde el panel del WAMP, dentro del menú Apache o abrirlo desde el directorio C:\wamp\bin\apache\apache2.4.9\conf\extra\
  2. Encontrar las directivas para el virtual host y dejarlas como muestro abajo:

     
  3. Actualizar el valor para SSLCertificateFile:
  4. Actualizar el valor para SSLCertificateKeyFile:

#7: Verificar si está habilitado el SSL

En la consola escribir el siguiente comando, si nos muestra Syntax OK está todo correcto, solo restaría reiniciar el Apache.

En caso de que tengamos algun error nos dará detalle del mismo y deberemos corregirlo hasta que esté todo correcto.

Yo tuve problemas, pero todos referentes a las rutas, por defecto el WAMP me generó rutas que no existian (c:\Apache24\), lo unico que hice fue un Buscar y reemplazar c:\Apache24\ por c:\wamp\ y todo quedó bien configurado.