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:
- Utworzono certyfikat SSL. Wykonałem pierwszą część tego tego tutoriala, aby utworzyć certyfikat.
- zaimportowałem plik
server.crt
do chrome. - usunięto średnik przed
;extension=php_openssl.dll
wphp.ini
(odniesienie) - 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 plikuhttpd.conf
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>
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)
- Twój plik windows
HOST
musi być już skonfigurowany - przejdź do
httpd-ssl.conf
znajdującego się naxampp\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>
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.
- 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
- 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>
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
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