Comment utiliser https (SSL) dans XAMPP en utilisant des serveurs virtuels
j'écris une application php sur ma machine locale et je voudrais tester pour voir si SSL fonctionne. Ours avec moi, parce que c'est la première fois que j'ai jamais utilisé le protocole SSL.
jusqu'à présent, c'est ce que j'ai fait:
- création D'un certificat SSL. J'ai suivi la première partie de ce tutoriel pour créer le certificat.
- j'ai importé le
server.crt
file dans chrome. - Supprimé le point-virgule devant
;extension=php_openssl.dll
php.ini
(référence) - Édité mon
httpd-vhosts.conf
fichier page. La section pertinente de ce dossier se trouve ci-dessous. C'est tout le fichier: http://pastebin.com/k6Jh2eR6<VirtualHost *> DocumentRoot "C:Usersuser_nameDocumentsproject_one" ServerName project_one.localhost SSLEngine on SSLCertificateFile "conf/ssl.crt/server.crt" SSLCertificateKeyFile "conf/ssl.key/server.key" <Directory "C:Usersuser_nameDocumentsproject_one"> AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost>
j'accède habituellement à mon projet en tapant http://project_one.localhost
Lorsque j'essaie d'accéder à mon projet en tapant https://project_one.localhost
dans chrome je suis automatiquement redirigé vers https://project_one.localhost/xampp/
(comme si XAMPP ne reconnaître https://project_one.localhost
en tant que sous-domaine et le traite comme si je tapais https://localhost
) une idée de l'endroit où je foire?
NOTE:
LoadModule ssl_module modules/mod_ssl.so
a été retirée danshttpd.conf
le fichier
4 réponses
SSL, de l' HTTPS://url.here/
variety, est entièrement géré par Apache et n'a rien à voir avec PHP, ou les extensions/modules de PHP, ou n'importe quel php.paramètres ini.
un serveur virtuel typique compatible SSL ressemble à ceci et contient au moins ces parties...
<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>
(les chemins ci-dessus sont de mon wampdeveloper Pro mis en place, Xampp's sera légèrement différent)
<VirtualHost *>
la ligne est défectueuse. Il a besoin d'un numéro de port, qui est toujours 443 pour une URL HTTPS://, dans combinaison avec une adresse IP ou une étoile devant elle. Et si vous utilisez une étoile, un NameVirtualHost *:443
ligne...
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>
C'est peut-être une vieille question, mais je mets quand même ma réponse ici pour référence future
je suis en Utilisant XAMPP 3.2.1, Compilé Mai,7 2013
activer VirtualHost
SSL
en même temps, voici ce que j'ai fait. (J'utilise windows 7)
- vos fenêtres
HOST
le fichier doit déjà être installé httpd-ssl.conf
situé àxampp\apache\conf\extra
je viens de copier le _default_
virtualhost
et a ajouté mon config. J'ai supprimé tous les commentaires pour les plus courts et les ai collés juste en dessous de la valeur par défaut virtualHost
il suffit de changer le DocumentRoot
et servername
puis Redémarrez apache.
<VirtualHost *:443>
DocumentRoot "***path/to/your/project}***"
ServerName ***yourdomain***
ServerAdmin admin@example.com
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>
Ici est simple étape.
- C:\xampp\apache\conf
Ouvrir httpd.conf
et activer le extensions ssl ( Supprimer # de la ligne)
LoadModule ssl_module modules/mod_ssl.so
- C:\xampp\apache\conf\extra
Ouvrir httpd-vhosts.conf
ajouter de nouveaux serveurs virtuels ou modifier des serveurs existants
<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>
quelle version d'Apache utilisez-vous ? NameVirtualHost n'est pas disponible en version 2.4.
Décommentez la ligne Include conf/extra/httpd-ssl.conf
dans httpd.conf et ajouter le contenu suivant (fixer les chemins selon le chemin de xampp). Cela permettra à 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 you@127.0.0.1
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 vous voulez un autre domaine comme project_one.localhost a une connexion http sécurisée, puis ajoute le virtualhost suivant dans httpd.conf ou httpd-vhosts.conf(doit être inclus dans 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>
Remarque : Vous devez ajouter une entrée dans le fichier hosts127.0.0.1 project_one.localhost