Jak używać https (SSL) w XAMPP podczas korzystania z hostów wirtualnych

Piszę aplikację php na mojej lokalnej maszynie i chciałbym przetestować, aby sprawdzić, czy SSL działa. Bądź ze mną, ponieważ jest to pierwszy raz, Kiedy używam SSL.

Do tej pory tak zrobiłem:

  1. Utworzono certyfikat SSL. Wykonałem pierwszą część tego tego tutoriala, aby utworzyć certyfikat.
  2. zaimportowałem plik server.crt do chrome.
  3. usunięto średnik przed ;extension=php_openssl.dll w php.ini (odniesienie)
  4. edytowane mój httpd-vhosts.conf Plik oparty na tej stronie. Odpowiednia sekcja tego pliku znajduje się poniżej. To jest pełny plik: 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>
    

Zwykle uzyskuję dostęp do mojego projektu wpisując http://project_one.localhost

Podczas próby uzyskania dostępu do mojego projektu, wpisując https://project_one.localhost w chrome, automatycznie dostaję przekierowanie do https://project_one.localhost/xampp/ (tak jakby XAMPP w ogóle nie rozpoznał https://project_one.localhost jako subdomeny i traktował ją tak, jakbym wpisywał https://localhost) w górę?

Uwaga:

  • LoadModule ssl_module modules/mod_ssl.so został zapisany w pliku httpd.conf
Author: Community, 2013-05-08

4 answers

SSL, z odmiany HTTPS://url.here/, jest w całości obsługiwane przez Apache i nie ma nic wspólnego z PHP, ani żadnymi rozszerzeniami/modułami PHP, ani żadnym php.ustawienia ini.

Typowy VirtualHost z obsługą SSL wygląda tak i zawiera przynajmniej te części...

<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>

(powyższe ścieżki pochodzą z mojej konfiguracji Wampdeveloper Pro, Xampp będzie nieco inny)

Twój <VirtualHost *> wiersz jest uszkodzony. Wymaga numeru portu, który jest zawsze 443 dla adresu URL HTTPS://, w połączeniu z albo Adres IP lub gwiazda przed nim. A jeśli używasz Gwiazdy, również NameVirtualHost *:443 linia...

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
Author: rightstuff,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-26 16:49:05

To może być stare pytanie, ale i tak umieszczam moją odpowiedź tutaj dla przyszłych odniesień

I ' m Using XAMPP 3.2.1, Compiled May,7 2013

Aby włączyć VirtualHost z SSL w tym samym czasie oto, co zrobiłem. (Używam windows 7)

  1. Twój plik windows HOST musi być już skonfigurowany
  2. przejdź do httpd-ssl.conf znajdującego się na xampp\apache\conf\extra

Właśnie skopiowałem _default_ virtualhost i dodałem mój config. Usunąłem wszystkie komentarze do krótszego i wkleiłem to poniżej domyślnego virtualHost wystarczy zmienić DocumentRoot i servername, a następnie ponownie uruchomić 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>
 7
Author: tomexsans,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-11 15:16:24

Oto prosty krok.

  1. Idź do C:\xampp\apache\conf

Otwórz httpd.conf

I włącz rozszerzenia ssl (Usuń # z linii )

LoadModule ssl_module modules/mod_ssl.so
  1. Idź do C:\xampp\apache\conf\extra

Otwórz httpd-vhosts.conf

Dodaj nowe wirtualne hosty lub edytuj istniejące

<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
Author: Kroonal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-20 07:32:10

Jakiej wersji Apache używasz ? NameVirtualHost nie jest dostępny w wersji 2.4.

Odkomentuj linię Include conf/extra/httpd-ssl.conf w httpd.conf i dodaj następującą zawartość(popraw ścieżki zgodnie ze ścieżką xampp). To umożliwi 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>

Jeśli chcesz innej domeny, takiej jak project_one.localhost ma zabezpieczone połączenie http, a następnie dodaj następujący virtualhost w httpd.conf lub httpd-vhosts.conf (musi być zawarte w 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>

Uwaga: będziesz musiał dodać wpis w pliku hosts 127.0.0.1 project_one.localhost

 3
Author: Jigar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-29 08:05:14