Подтвердить что ты не робот

Как использовать https (SSL) в XAMPP при использовании виртуальных хостов

Я пишу приложение php на своей локальной машине и хочу проверить, работает ли SSL. Потерпите меня, потому что это первый раз, когда я когда-либо пользовался SSL.

До сих пор это то, что я сделал:

  • Создал SSL-сертификат. Я выполнил первую часть этого этого учебника для создания сертификата.
  • Я импортировал файл server.crt в хром.
  • Удалена точка с запятой перед ;extension=php_openssl.dll в php.ini (ссылка)
  • Отредактировал мой файл httpd-vhosts.conf на основе этой страницы. Ниже приведен соответствующий раздел этого файла. Это полный файл: 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>
    

Обычно я получаю доступ к моему проекту, введя http://project_one.localhost

При попытке получить доступ к моему проекту, набрав https://project_one.localhost в chrome, я автоматически перенаправляюсь на https://project_one.localhost/xampp/ (как будто XAMPP не распознает https://project_one.localhost как субдомен вообще и рассматривает его так, как будто я ' m typing in https://localhost) Любая идея, где я напортачиваюсь?

Примечание:

  • LoadModule ssl_module modules/mod_ssl.so был раскомментирован в httpd.conf файле
4b9b3361

Ответ 1

SSL, сорта HTTPS://url.here/, полностью обрабатывается Apache и не имеет ничего общего с PHP или любыми расширениями/модулями PHP или любыми настройками php.ini.

Типичный SSL Enabled VirtualHost выглядит так и содержит по крайней мере эти части...

<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 для URL HTTPS://в сочетании с IP-адресом или звездой перед ним. И если вы используете звезду, а также строку 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>

Ответ 2

Это может быть старый вопрос, но я все равно оставляю свой ответ для будущей ссылки

i Использование XAMPP 3.2.1, скомпилировано 7 мая 2013

чтобы включить VirtualHost с SSL в то же время, вот что я сделал. (Я использую окна 7)

  • Ваш файл windows HOST уже должен быть настроен
  • Перейдите в httpd-ssl.conf, расположенный по адресу xampp\apache\conf\extra

Я просто скопировал _default_ VirtualHost и добавил мою конфигурацию. Я удалил все комментарии для более коротких и вставил их чуть ниже значения по умолчанию VirtualHost просто изменил DocumentRoot и servername, затем перезагрузил 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>

Ответ 3

Какую версию Apache вы используете? ИмяVirtualHost недоступно в версии 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 [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>

Если вы хотите, чтобы другой домен, например project_one.localhost, защитил HTTP-соединение, добавьте следующий виртуальный хост в 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

Ответ 4

Вот простой шаг.

  • Перейдите в C:\xampp\apache\conf И Включите расширения ssl (Удалить # из строки)

LoadModule ssl_module modules/mod_ssl.so