Je suis en train d'écrire une application php sur ma machine locale et j'aimerais tester si le protocole SSL fonctionne. Oubliez-moi, car c'est la première fois que j'utilise SSL.
Jusqu'ici c'est ce que j'ai fait:
server.crt
En chrome.;extension=php_openssl.dll
Dans php.ini
( référence )httpd-vhosts.conf
Basé sur this page. La section pertinente de ce fichier est ci-dessous. Ceci est le fichier complet: 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>
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 'reconnait pas https://project_one.localhost
comme un sous-domaine et le traite comme si je tapais dans https://localhost
) Avez-vous une idée de l'endroit où je me trompe?
REMARQUE:
LoadModule ssl_module modules/mod_ssl.so
N'a pas été commenté dans le fichier httpd.conf
SSL, du HTTPS://url.here/
_ Variété, est entièrement géré par Apache et n’a rien à voir avec PHP, ni avec aucun de ses extensions/modules, ni avec aucun paramètre de php.ini.
Un VirtualHost SSL Activé typique 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 issus de ma configuration WampDeveloper Pro, celle de Xampp sera légèrement différente)
Votre <VirtualHost *>
la ligne est défectueuse. Il faut un numéro de port, toujours 443 pour une URL HTTPS: //, associé à une adresse IP ou à une étoile. 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 ma réponse ici quand même pour référence future
je suis avec XAMPP 3.2.1, compilé le 7 mai 201
pour activer VirtualHost
avec SSL
en même temps, voici ce que j'ai fait. (J'utilise Windows 7)
Host
doit déjà être configuréhttpd-ssl.conf
situé à xampp\Apache\conf\extra
Je viens de copier le _default_
virtualhost
et ajouté ma config. J'ai supprimé tous les commentaires pour le plus court et ai collé ceci juste en dessous de la valeur par défaut virtualHost
il suffit de changer le DocumentRoot
et servername
puis de redémarrer 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>
Voici une étape simple.
Ouvrir httpd.conf
Et activer les extensions ssl (Supprimer # de la ligne)
LoadModule ssl_module modules/mod_ssl.so
Ouvrir httpd-vhosts.conf
Ajouter de nouveaux hôtes 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 dans la version 2.4.
Décommentez la ligne Include conf/extra/httpd-ssl.conf
dans httpd.conf et ajoutez le contenu suivant (corrigez les chemins en fonction du 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 [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 vous voulez que d'autres domaines comme project_one.localhost aient une connexion http sécurisée, ajoutez 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 devrez ajouter une entrée dans le fichier hosts127.0.0.1 project_one.localhost