apache - instalar - openssl xampp windows
¿Cómo uso https(SSL) en XAMPP mientras uso hosts virtuales? (4)
Estoy escribiendo una aplicación php en mi máquina local y me gustaría probar para ver si SSL está funcionando. Ten paciencia conmigo porque es la primera vez que uso SSL.
Hasta ahora esto es lo que hice:
- Creado un Certificado SSL. Seguí la primera parte de this tutorial para crear el certificado.
-
server.crt
archivoserver.crt
en Chrome. - Se quitó el punto y coma delante de
;extension=php_openssl.dll
enphp.ini
( reference ) -
httpd-vhosts.conf
mi archivohttpd-vhosts.conf
basado en this página. La sección relevante de ese archivo está debajo. Este es el archivo completo: http://pastebin.com/k6Jh2eR6<VirtualHost *> DocumentRoot "C:/Users/user_name/Documents/project_one" ServerName project_one.localhost SSLEngine on SSLCertificateFile "conf/ssl.crt/server.crt" SSLCertificateKeyFile "conf/ssl.key/server.key" <Directory "C:/Users/user_name/Documents/project_one"> AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost>
Normalmente accedería a mi proyecto escribiendo http://project_one.localhost
Al intentar acceder a mi proyecto al escribir https://project_one.localhost
en chrome, automáticamente me reenvío a https://project_one.localhost/xampp/
(como si XAMPP no reconoce https://project_one.localhost
como un subdominio en absoluto y lo trata como si estuviera escribiendo en https://localhost
) ¿Alguna idea de dónde estoy jodiendo?
NOTA:
-
LoadModule ssl_module modules/mod_ssl.so
se comentario en el archivohttpd.conf
¿Qué versión de Apache estás usando? NameVirtualHost no está disponible en la versión 2.4.
Descomente la línea Include conf/extra/httpd-ssl.conf
en httpd.conf y agregue los siguientes contenidos (corrija las rutas de acuerdo con la ruta de xampp). Esto habilitará https://localhost
<IfModule ssl_module>
Listen 443
AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl .crlss phrase on stdout.
SSLPassPhraseDialog builtin
SSLSessionCache "shmcb:E:/PROGRA/~1/AMPPS/apache/logs/ssl_scache(512000)"
SSLSessionCacheTimeout 300
Mutex default
<VirtualHost _default_:443>
DocumentRoot "E:/Program Files/AMPPS/www"
ServerName localhost:443
ServerAdmin [email protected]
ErrorLog "E:/Program Files/AMPPS/apache/logs/ssl_error.log"
TransferLog "E:/Program Files/AMPPS/apache/logs/ssl_access.log"
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile "E:/Program Files/AMPPS/apache/conf/ssl_crt/server.crt"
#SSLCertificateFile "E:/Program Files/AMPPS/apache/conf/server-dsa.crt"
SSLCertificateKeyFile "E:/Program Files/AMPPS/apache/conf/ssl_key/server.key"
<FilesMatch "/.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory "E:/Program Files/AMPPS/www/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
BrowserMatch ".*MSIE.*" /
nokeepalive ssl-unclean-shutdown /
downgrade-1.0 force-response-1.0
CustomLog "E:/Program Files/AMPPS/apache/logs/ssl_request.log" /
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x /"%r/" %b"
</VirtualHost>
</IfModule>
Si desea que otro dominio como project_one.localhost tenga una conexión HTTP segura, agregue el siguiente virtualhost en httpd.conf o httpd-vhosts.conf (debe estar incluido en httpd.conf)
<IfModule ssl_module>
<VirtualHost 127.0.0.1:443>
<Directory "e:/program files/ampps/www/project_one.localhost">
Options FollowSymLinks Indexes
AllowOverride All
Order deny,allow
allow from All
</Directory>
ServerName project_one.localhost
ServerAlias project_one.localhost
ScriptAlias /cgi-bin/ "e:/program files/ampps/www/project_one.localhost/cgi-bin/"
DocumentRoot "e:/program files/ampps/www/project_one.localhost"
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile "E:/Program Files/AMPPS/apache/conf/ssl_crt/project_one.localhost.crt"
SSLCertificateKeyFile "E:/Program Files/AMPPS/apache/conf/ssl_key/project_one.localhost.key"
ErrorLog "E:/Program Files/AMPPS/apache/logs/project_one.localhost_ssl_error.log"
TransferLog "E:/Program Files/AMPPS/apache/logs/project_one.localhost_ssl_access.log"
<FilesMatch "/.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory "e:/program files/ampps/www/project_one.localhost/cgi-bin/">
SSLOptions +StdEnvVars
</Directory>
BrowserMatch ".*MSIE.*" /
nokeepalive ssl-unclean-shutdown /
downgrade-1.0 force-response-1.0
CustomLog "E:/Program Files/AMPPS/apache/logs/project_one.localhost_ssl_request.log" /
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x /"%r/" %b"
</VirtualHost>
</IfModule>
Nota: Deberá agregar una entrada en el archivo hosts 127.0.0.1 project_one.localhost
Aquí hay un paso simple.
- Vaya a C: / xampp / apache / conf
Abra httpd.conf
Y habilite las extensiones ssl ( Eliminar # de la línea )
LoadModule ssl_module modules/mod_ssl.so
- Vaya a C: / xampp / apache / conf / extra
Abra httpd-vhosts.conf
Agregue nuevos hosts virtuales o edite los existentes
<VirtualHost *:443>
DocumentRoot "C:/xampp/htdocs/PROJECTNAME"
ServerName www.pl.f24sdev.com
<Directory C:/xampp/htdocs/PROJECTPATH>
AllowOverride All
Order Deny,Allow
Allow from all
</Directory>
SSLEngine on
SSLCertificateFile "conf/ssl.crt/server.crt"
SSLCertificateKeyFile "conf/ssl.key/server.key"
</VirtualHost>
Esta puede ser una vieja pregunta, pero de todos modos estoy poniendo mi respuesta para futuras referencias
Estoy usando XAMPP 3.2.1, compilado mayo, 7 2013
para habilitar VirtualHost
con SSL
al mismo tiempo, aquí está lo que hice. (Estoy usando Windows 7)
- su archivo
HOST
Windows ya debe estar configurado - Vaya a
httpd-ssl.conf
ubicado enxampp/apache/conf/extra
Acabo de copiar el _default_
virtualhost
y agregué mi configuración. virtualHost
todos los comentarios para el más corto y pegué esto justo debajo del valor predeterminado virtualHost
Solo cambio el DocumentRoot
y el nombre del servername
y luego reinicio Apache.
<VirtualHost *:443>
DocumentRoot "***path/to/your/project}***"
ServerName ***yourdomain***
ServerAdmin [email protected]
ErrorLog "C:/xampp/apache/logs/error.log"
TransferLog "C:/xampp/apache/logs/access.log"
SSLEngine on
SSLCertificateFile "conf/ssl.crt/server.crt"
SSLCertificateKeyFile "conf/ssl.key/server.key"
<FilesMatch "/.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory "C:/xampp/apache/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-5]" /
nokeepalive ssl-unclean-shutdown /
downgrade-1.0 force-response-1.0
CustomLog "C:/xampp/apache/logs/ssl_request.log" /
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x /"%r/" %b"
</VirtualHost>
SSL, de la HTTPS://url.here/
variety, es manejado completamente por Apache y no tiene nada que ver con PHP, ni con ninguna de las extensiones / módulos de PHP, ni con ninguna configuración de php.ini.
Un VirtualHost con SSL habilitado típico se ve así y contiene al menos estas partes ...
<VirtualHost *:443>
DocumentRoot "C:/WampDeveloper/Websites/www.example.com/webroot"
ServerName www.example.com
ServerAlias example.com
SSLEngine On
SSLCertificateFile "C:/WampDeveloper/Websites/www.example.com/certs/public.crt"
SSLCertificateKeyFile "C:/WampDeveloper/Websites/www.example.com/certs/private.key"
<Directory "C:/WampDeveloper/Websites/www.example.com/webroot">
Options All
AllowOverride All
order allow,deny
allow from all
</Directory>
</VirtualHost>
(Las rutas anteriores son de mi configuración WampDeveloper Pro, Xampp será ligeramente diferente)
Su línea <VirtualHost *>
está defectuosa. Necesita un número de puerto, que siempre es 443 para una URL HTTPS: //, en combinación con una dirección IP o una estrella antes. Y si usa una estrella, también una línea NameVirtualHost *:443
...
NameVirtualHost *:80
NameVirtualHost *:443
<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs"
ServerName localhost
</VirtualHost>
<VirtualHost *:443>
DocumentRoot "C:/Users/user_name/Documents/project_one"
ServerName project_one.localhost
SSLEngine on
SSLCertificateFile "conf/ssl.crt/server.crt"
SSLCertificateKeyFile "conf/ssl.key/server.key"
<Directory "C:/Users/user_name/Documents/project_one">
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:/Users/user_name/Documents/project_two"
ServerName project_two.localhost
<Directory "C:/Users/user_name/Documents/project_two">
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>