php - tls - crear ssl en xampp
Configuración de SSL en un servidor local xampp/apache (6)
Estoy intentando acceder a un Directorio Activo desde mi servidor web local. Para hacer esto, estoy usando la última versión de xampp y un script PHP llamado adLDAP . Si entiendo las cosas bien, necesito habilitar SSL para acceder a las URL https. Intenté buscar en Google pero sin suerte :( ¿Alguien podría vincular un tutorial o explicarme cómo instalar SSL en xampp / apache para Windows 7 64bit? Cualquier ayuda sería apreciada :)
He revisado todas las respuestas y tutoriales a través de Internet, pero estos son los pasos básicos para habilitar SSL ( https ) en localhost con XAMPP :
Necesario:
Ejecute -> "C: / xampp / apache / makecert.bat" (haga doble clic en Windows) Rellene los passowords de su elección, presione Enter para todo PERO defina "localhost" !!! Tenga cuidado cuando se lo pregunte aquí:
Nombre común (por ejemplo, FQDN del servidor o SU nombre) []: localhost
(¡Los certificados se emiten solo por zona de nombre de dominio!)
- Reiniciar Apache
- Chrome -> Configuración -> Buscar "Certificado" -> Administrar certificados -> Autoridades de certificación de raíz de confianza -> Importar -> "C: / xampp / apache / conf / ssl.crt / server.crt" -> Debe hacer "SÍ" ¡para confirmacion!
- https://localhost/testssl.php -> [OK, ahora verde!] (cualquier archivo de prueba html)
Opcional: (si arriba no funciona, haga más de estos pasos)
- Ejecute XAMPP As admin (Inicio -> XAMPP -> clic con el botón derecho -> Ejecutar como administrador)
XAMPP -> Apache -> Config -> httpd.conf ("C: / xampp / apache / conf / httpd.conf")
LoadModule ssl_module modules / mod_ssl.so (eliminar # formar el inicio de la línea)
XAMPP -> Apache -> Config -> php.ini ("C: / xampp / php / php.ini")
extension = php_openssl.dll (eliminar; desde el comienzo de la línea)
¡Reinicia Apache y Chrome!
Verifique cualquier problema o el estado de su certificado:
Chrome -> F12 -> Seguridad -> Ver certificado
Hice la mayoría de las cosas sugeridas aquí, todavía no funcionó. Intenté esto y funcionó: abra su Panel de control XAMPP , ubique el botón Config para el módulo Apache . Haga clic en el botón Configurar y seleccione PHP (php.ini) . Ábralo con cualquier editor de texto y elimine la semicolumna antes de php_openssl . Guarde y reinicie Apache. Eso debería hacer!
Hice todas las sugerencias aquí y mi código aún no funcionaba porque estaba usando curl
Si usa curl
en el archivo php, curl parece rechazar todo el tráfico ssl de forma predeterminada. Una solución rápida que funcionó para mí fue agregar:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
antes de llamar:
curl_exec():
en el archivo php.
Creo que esto inhabilita toda verificación de certificados SSL.
Parte de Apache: lo que le permite abrir https://localhost/xyz
Existe el archivo de configuración xampp / apache / conf / extra / httpd-ssl.conf que contiene toda la configuración específica de ssl. Está bastante bien documentado, así que lea los comentarios y eche un vistazo a http://httpd.apache.org/docs/2.2/ssl/ . Los archivos comienzan con <IfModule ssl_module>
, por lo que solo tiene un efecto si el apache se ha iniciado con su módulo mod_ssl.
Abra el archivo xampp / apache / conf / httpd.conf en un editor y busque la línea
#LoadModule ssl_module modules/mod_ssl.so
elimine el hashmark, guarde el archivo y reinicie Apache. El servidor web ahora debería comenzar con la configuración básica / predeterminada de ssl de xampp; lo suficientemente bueno para la prueba, pero es posible que desee leer un poco más sobre mod_ssl en la documentación de apache.
Parte PHP - Permitiendo que adldap use ldap sobre ssl
adldap necesita la extensión openssl de php para usar conexiones "ldap sobre ssl". La extensión openssl se envía como un dll con xampp. Debes "decirle" a php que cargue este dll, por ejemplo, teniendo una extension=nameofmodule.dll
en tu php.ini
correr
echo ''ini: '', get_cfg_var(''cfg_file_path'');
Debería mostrarle qué archivo ini utiliza su instalación php (puede diferir entre el módulo php-apache y la versión php-cli).
Abra este archivo en un editor y busque
;extension=php_openssl.dll
elimine el punto y coma, guarde el archivo y reinicie Apache.
ver también: http://docs.php.net/install.windows.extensions
Puede habilitar SSL en XAMPP creando certificados autofirmados y luego instalando esos certificados. Escriba los siguientes comandos para generar y mover los certificados a las carpetas ssl.
openssl genrsa -des3 -out server.key 1024
openssl req -new -key server.key -out server.csr
cp server.key server.key.org
openssl rsa -in server.key.org -out server.key
openssl x509 -req -days 365 -en server.csr -signkey server.key -out server.crt
cp server.crt /opt/lampp/etc/ssl.crt/domainname.crt
cp server.key /opt/lampp/etc/ssl.key/domainname.key
(Use sudo con cada comando si no es el superusuario)
Ahora, compruebe que mod_ssl está habilitado en [XAMPPOME] /etc/httpd.conf:
LoadModule ssl_module modules / mod_ssl.so
Agregue un host virtual, en este ejemplo "localhost.domainname.com" editando [XAMPP_HOME] /etc/extra/httpd-ssl.conf de la siguiente manera:
<virtualhost 127.0.1.4:443>
ServerName localhost.domainname.com
ServerAlias localhost.domainname.com *.localhost.domainname.com
ServerAdmin admin@localhost
DocumentRoot "/opt/lampp/htdocs/"
DirectoryIndex index.php
ErrorLog /opt/lampp/logs/domainname.local.error.log
CustomLog /opt/lampp/logs/domainname.local.access.log combined
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /opt/lampp/etc/ssl.crt/domainname.crt
SSLCertificateKeyFile /opt/lampp/etc/ssl.key/domainname.key
<directory /opt/lampp/htdocs/>
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</directory>
BrowserMatch ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
</virtualhost>
Agregue la siguiente entrada a / etc / hosts:
127.0.1.4 localhost.domainname.com
Ahora, intente instalar el certificado / intente importar el certificado al navegador. Lo he comprobado y esto funcionó en Ubuntu.
Resulta que OpenSSL está compilado y habilitado en php 5.3 de XAMPP 1.7.2 y, por lo tanto, ya no requiere una extensión de dll.
Sin embargo, TODAVÍA necesita habilitarlo en su archivo PHP.ini la extension=php_openssl.dll
línea extension=php_openssl.dll