Как использовать https (SSL) в XAMPP при использовании виртуальных хостов
я пишу приложение php на своей локальной машине и хотел бы проверить, работает ли SSL. Потерпите со мной, потому что это первый раз, когда я когда-либо использовал SSL.
до сих пор это то, что я сделал:
- создан сертификат SSL. Я следил за первой частью этого этой учебник по созданию сертификата.
- я импортировал
server.crt
файл в chrome. - удалена точка с запятой перед
;extension=php_openssl.dll
inphp.ini
(ссылка) - редактировать мои на основе этой страница. Соответствующий раздел этого файла приведен ниже. Это полный файл: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>
обычно я получаю доступ к своему проекту, набрав http://project_one.localhost
при попытке получить доступ к моему проекту, набрав https://project_one.localhost
в chrome я автоматически перенаправляюсь в https://project_one.localhost/xampp/
(как будто XAMPP не узнает https://project_one.localhost
как поддомен вообще и относится к нему, как будто я набираю https://localhost
) есть идеи, где я облажался?
Примечание:
-
LoadModule ssl_module modules/mod_ssl.so
был незарегистрированным в
4 ответов
SSL, из HTTPS://url.here/
variety, полностью обрабатывается Apache и не имеет ничего общего с PHP, или любым из расширений/модулей PHP, или любым php.параметры ini.
типичный виртуальный хост с поддержкой SSL выглядит так и содержит по крайней мере эти части...
<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>
(пути выше от моей настройки Wampdeveloper Pro, Xampp будет немного отличаться)
код <VirtualHost *>
линия неисправна. Ему нужен номер порта, который всегда 443 для HTTPS: / / URL, в сочетании с IP-адресом или звездой перед ним. И если вы используете звезду, также a NameVirtualHost *:443
линии...
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>
это может быть старый вопрос, но я ставлю свой ответ здесь в любом случае для дальнейшего использования
Я использование XAMPP 3.2.1, составлено 7 мая 2013
включить VirtualHost
С SSL
в то же время, вот что я сделал. (Я использую windows 7)
- ваши окна
HOST
файл уже должен быть настроен - на
httpd-ssl.conf
расположенном вxampp\apache\conf\extra
Я только что скопировал _default_
virtualhost
и добавил моя конфигурация. Я удалил все комментарии для более короткого и вставил это чуть ниже значения по умолчанию virtualHost
просто изменить DocumentRoot
и servername
затем перезапустите 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>
вот простой шаг.
- на C:\xampp\apache\conf
открыть httpd.conf
и включения расширения ssl (удалить # из строки)
LoadModule ssl_module modules/mod_ssl.so
- на C:\xampp\apache\conf\extra
открыть httpd-vhosts.conf
добавить новые виртуальные хосты или изменить существующие
<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>
какую версию Apache вы используете ? NameVirtualHost не доступен в версии 2.4.
раскомментируйте строку Include conf/extra/httpd-ssl.conf
в httpd.conf и добавьте следующее содержимое (исправьте пути в соответствии с путем xampp). Это позволит 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>
если вы хотите другой домен, как project_one.localhost обеспечили http-соединение, затем добавьте следующий virtualhost в httpd.conf или httpd-vhosts.conf (должен быть включен в файл 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>
Примечание: вам нужно будет добавить запись в файл hosts 127.0.0.1 project_one.localhost