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
Guauuu... que manual... bien!!! Aunque no se que es WAMP... pero bueno... creo que esta muy específico!!!
ResponderEliminarCompa, es un servidor APACHE con PHP y MySQL
ResponderEliminarcomo IIS con ASP.NET y SQL server
me sirve de mucho lo estuve buscando mucho tiempo gracias y sigue adelante
ResponderEliminarExcelente tu guía, por fin pude hacer esto, Gracias!!
ResponderEliminarSi despues de configurar todo y aparacer el OK y reiniciarlo el wamp se queda en color naranja que es lo que puede estar mal??
ResponderEliminardisculpa todo sale bn pero no me aparece el candadito de https, puedes ayudarme
ResponderEliminarMe has salvado de una buena.
ResponderEliminarSi despues de configurar todo y aparacer el OK y reiniciarlo el wamp se queda en color naranja que es lo que puede estar mal??
ResponderEliminarIgual, se me quedo en naranja :S
ResponderEliminarEl problema viene de los logs, si ha hacer httpd -t como dice la guía os responde Syntax OK, mirar el log de errores de Apache. Es probable que salga el error "Unable to load logs" o algo parecido.
EliminarEl problema es que no halla todos los archivos de log necesarios, simplemente hay que repasarlos todos.
www.vender-online.org
Ya me temía que quedaba en naranja.... ¿Cómo puedes saber si funciona? De cualquier manera, me parece que esto es así: Hay 4 niveles de usuarios en TI: 1º- el usuario final que consume los productos de interface personal -facebook, twitter, widgets para celulares, etc.- que no sabe cómo se fabrican, pero mide los resultados.
ResponderEliminar2º el desarrollador de esos productos, que se puede decir que es la 'capa minorista' en la oferta de estos productos.
3º el host, cuya preocupación no es tanto desarrollar estos productos sino brindar conectividad, accesibilidad y seguridad a nivel de hardware y software en la red los 365 días del año las 24 hs. del día. Este segmento representa la capa mayorista del mercado de oferta de TI.
4º los fabricantes de hardware y software a gran escala, como Microsoft, IBM, Oracle, etc. cuyo segmento es innovar y crear eficiencia en el uso del soft para las capas siguientes. En este caso, creo que generar una conexión SSL es PROBLEMA DEL HOST, es decir, del mayorista en donde vas a colocar tu aplicación. Podrías hablar directamente con tu proveedor y pedirle que se encargue de tu conexión SSL en entorno de prueba. Es más caro, pero a la larga es más eficiente. No sé. Se me ocurre...
NO FUNCIONA, SE QUEDA EN NARANJA Y YA NO EJECUTA LAS PAGINAS QUE TENGO LOCALMENTE...
ResponderEliminarHay que mirar los errores.. y arreglarlos....
ResponderEliminarD:\wamp\bin\apache\Apache2.4.4\bin>httpd -t
httpd: Syntax error on line 518 of D:/wamp/bin/apache/Apache2.4.4/conf/httpd.conf: Expected before end of configuration
D:\wamp\bin\apache\Apache2.4.4\bin>httpd -t
httpd: Syntax error on line 518 of D:/wamp/bin/apache/Apache2.4.4/conf/httpd.conf: Expected before end of configuration
D:\wamp\bin\apache\Apache2.4.4\bin>httpd -t
AH00526: Syntax error on line 76 of D:/wamp/bin/apache/Apache2.4.4/conf/extra/httpd-ssl.conf:
SSLSessionCache: 'shmcb' session cache not supported (known names: ). Maybe you need to load the appropriate socache module (mod_socache_shmcb?).
D:\wamp\bin\apache\Apache2.4.4\bin>httpd -t
AH00526: Syntax error on line 76 of D:/wamp/bin/apache/Apache2.4.4/conf/extra/httpd-ssl.conf:
SSLSessionCache: 'shmcb' session cache not supported (known names: ). Maybe you need to load the appropriate socache module (mod_socache_shmcb?).
D:\wamp\bin\apache\Apache2.4.4\bin>httpd -t
AH00526: Syntax error on line 76 of D:/wamp/bin/apache/Apache2.4.4/conf/extra/httpd-ssl.conf:
SSLSessionCache: 'shmcb' session cache not supported (known names: ). Maybe you need to load the appropriate socache module (mod_socache_shmcb?).
D:\wamp\bin\apache\Apache2.4.4\bin>httpd -t
AH00526: Syntax error on line 76 of D:/wamp/bin/apache/Apache2.4.4/conf/extra/httpd-ssl.conf:
SSLSessionCache: 'shmcb' session cache not supported (known names: ). Maybe you need to load the appropriate socache module (mod_socache_shmcb?).
D:\wamp\bin\apache\Apache2.4.4\bin>httpd -t
AH00526: Syntax error on line 75 of D:/wamp/bin/apache/Apache2.4.4/conf/extra/httpd-ssl.conf:
SSLSessionCache: 'dbm' session cache not supported (known names: ). Maybe you need to load the appropriate socache module (mod_socache_dbm?).
D:\wamp\bin\apache\Apache2.4.4\bin>httpd -t
AH00526: Syntax error on line 76 of D:/wamp/bin/apache/Apache2.4.4/conf/extra/httpd-ssl.conf:
SSLSessionCache: 'shmcb' session cache not supported (known names: ). Maybe you need to load the appropriate socache module (mod_socache_shmcb?).
D:\wamp\bin\apache\Apache2.4.4\bin>httpd -t
AH00526: Syntax error on line 76 of D:/wamp/bin/apache/Apache2.4.4/conf/extra/httpd-ssl.conf:
SSLSessionCache: 'shmcb' session cache not supported (known names: ). Maybe you need to load the appropriate socache module (mod_socache_shmcb?).
D:\wamp\bin\apache\Apache2.4.4\bin>httpd -t
AH00526: Syntax error on line 76 of D:/wamp/bin/apache/Apache2.4.4/conf/extra/httpd-ssl.conf:
SSLSessionCache: 'shmcb' session cache not supported (known names: ). Maybe you need to load the appropriate socache module (mod_socache_shmcb?).
D:\wamp\bin\apache\Apache2.4.4\bin>httpd -t
AH00526: Syntax error on line 76 of D:/wamp/bin/apache/Apache2.4.4/conf/extra/httpd-ssl.conf:
SSLSessionCache: 'shmcb' session cache not supported (known names: ). Maybe you need to load the appropriate socache module (mod_socache_shmcb?).
D:\wamp\bin\apache\Apache2.4.4\bin>httpd -t
Syntax OK
Soluvioné el color naranja cambiando el puerto de la linea Listen. Estaba en 80 y lo deje en 8080. ahí me funciono.
ResponderEliminarMuy bien documentado :) te felicito.
ResponderEliminarPero tengo 2 problemas -_-
Tras la instalación básica corregir errores del httpd -t funciona pero me salta el mensaje :
- Esta conexión no está verificada
Y cuando instalas el certificado aparece el mensaje de que el sitio es erróneo.
El segundo problema, es que el puerto 433 no puedo utilizarlo y al cambiarlo a otro libre por ejemplo el 833 ... entonces ya https://localhost:833/ no funciona, tengo:
Apache Version : 2.4.4
PHP Version : 5.4.16
Seguiré investigando.
Hola , me parece genial tu guia muy sencilla y me funciono bien, pero cuando voy al navegador que pongo https://localhost/miproyecto, no me muestra ninguno de los proyecto en mi www
ResponderEliminarLa redacción deja mucho que desear y no se entiende claramente que hay que hacer ni en que archivo hay que editar que cosa, pero algo se entendió.
ResponderEliminarSaludos.