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:

  1. création D'un certificat SSL. J'ai suivi la première partie de ce tutoriel pour créer le certificat.
  2. j'ai importé le server.crt file dans chrome.
  3. Supprimé le point-virgule devant ;extension=php_openssl.dllphp.ini (référence)
  4. É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 dans httpd.conf le fichier
39
demandé sur Community 2013-05-08 04:04:51

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>
36
répondu rightstuff 2013-05-26 16:49:05

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 VirtualHostSSL en même temps, voici ce que j'ai fait. (J'utilise windows 7)

  1. vos fenêtres HOST le fichier doit déjà être installé
  2. 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>
7
répondu tomexsans 2014-09-11 15:16:24

Ici est simple étape.

  1. C:\xampp\apache\conf

Ouvrir httpd.conf

et activer le extensions ssl ( Supprimer # de la ligne)

LoadModule ssl_module modules/mod_ssl.so
  1. 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>
5
répondu Kroonal 2018-03-20 07:32:10

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

3
répondu Jigar 2013-05-29 08:05:14