Включение SSL с XAMPP

81

Я следил за этим руководством, насколько мог http://robsnotebook.com/xampp-ssl-encrypt-passwords .

Однако всякий раз, когда я перехожу на страницу, начинающуюся с https, сервер apache отвечает 404 Object Not Found.

Какая настройка мне не хватает? Спасибо за любую помощь.

ColacX
источник
У вас ссылка на руководство не https, но она учит, как создавать https
Cholowao

Ответы:

105

Нашел ответ. В файле xampp\apache\conf\extra\httpd-ssl.confпод SSL Virtual Host Contextстраницами комментариев к порту 443, что означает, что https ищется в другом корне документа.

Просто измените корень документа на тот же, и проблема будет решена.

ColacX
источник
9
Имейте в виду, что вам также необходимо перезапустить Apache, чтобы эти изменения вступили в силу (вам может потребоваться отключить и снова включить SSL, чтобы увидеть, как он работает, используя sudo /Applications/XAMPP/xamppfiles/xampp disablesslи sudo /Applications/XAMPP/xamppfiles/xampp enablesslсоответственно).
Wex
4
не забудьте перенаправить порт 443 для SSL. Надеюсь, это может кому-то помочь =)
user1534664
1
Эта статья мне очень помогла, и, пожалуйста, НЕ ЗАБУДЬТЕ перезапустить Chrome. shellcreeper.com/how-to-create-valid-ssl-in-localhost-for-xampp
Мох Арджманди 02
85

Вы также можете настроить свой SSL xampp/apache/conf/extra/httpd-vhost.confследующим образом:

<VirtualHost *:443>
    DocumentRoot C:/xampp/htdocs/yourProject
    ServerName yourProject.whatever
    SSLEngine on
    SSLCertificateFile "conf/ssl.crt/server.crt"
    SSLCertificateKeyFile "conf/ssl.key/server.key"
</VirtualHost>

Я думаю, лучше не менять его, httpd-ssl.confесли у вас более одного проекта и вам нужен SSL более чем на одном из них.

Тобиас Хартманн
источник
Я выполнил те же шаги и изменил httpd-vhost.conf, как вы упомянули, поскольку у меня есть несколько доменов в качестве хостов, таких как example.com example2.com example3.com, и я добавил ssl в example2.com, но он не работает, как ожидалось. Когда я захожу на example2.com, он показывает сайт example.com.
Srikanth Gopi
12

Для XAMPP выполните следующие действия:

  1. G: \ xampp \ apache \ conf \ extra \ httpd-ssl.conf "

  2. Найдите текст DocumentRoot.

  3. Измените DocumentRoot DocumentRoot «G: / xampp / htdocs» на DocumentRoot «G: / xampp / htdocs / имя проекта».

Притам Чаудхари
источник
10

настроить SSL в xampp / apache / conf / extra / httpd-vhost.conf

http

<VirtualHost *:80>
    DocumentRoot "C:/xampp/htdocs/myproject/web"
    ServerName www.myurl.com

    <Directory "C:/xampp/htdocs/myproject/web">
        Options All
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

https

<VirtualHost *:443>
    DocumentRoot "C:/xampp/htdocs/myproject/web"
    ServerName www.myurl.com
    SSLEngine on
    SSLCertificateFile "conf/ssl.crt/server.crt" 
    SSLCertificateKeyFile "conf/ssl.key/server.key"
    <Directory "C:/xampp/htdocs/myproject/web">
        Options All
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

убедитесь, что путь server.crt и server.key указан правильно, иначе это не сработает.

не забудьте включить vhost в httpd.conf

# Virtual hosts
Include etc/extra/httpd-vhosts.conf
Амит
источник
2

Я наконец-то заставил это работать на моем собственном размещенном веб-сайте сервера xampp Windows 10. Т.е. навесные замки пришли как ssl. Я использую версию xampp с ноября 2020 года.

  1. Зашел на certbot.eff.org. Выбрал со своей домашней страницы программное обеспечение [apache] и систему [windows]. Затем загрузил и установил программное обеспечение certbot, указанное на следующей странице, на мой диск C.

  2. Затем из командной строки [cmd в Windows Start, а затем перед тем, как открыть cmd, щелкните правой кнопкой мыши, чтобы запустить cmd от имени администратора] я ввел команду со страницы Certbot выше. Т.е. перешел в system32 - C: \ WINDOWS \ system32> certbot certonly --standalone

  3. Затем следуйте подсказкам и введите свое доменное имя. Это создало сертификаты как cert1.pem и key1.pem в папке C: \ Certbot yourwebsitedomain. окна cmd сообщают вам, где они находятся.

  4. Затем взял их и изменил их имена с cert1.pem на мое доменное имя или короче + cert.pem и то же самое для имени домена или короче + key.key. Скопировал их в папки C: \ xampp \ apache \ ssl.crt и ssl.key соответственно.

  5. Затем для G: \ xampp \ apache \ conf \ extra \ httpd-vhosts введите следующее:

<VirtualHost *:443>
    DocumentRoot "G:/xampp/htdocs/yourwebsitedomainname.hopto.org/public/" ###NB My document root is public.  Yours may not be.  Or could have an index.php page before /public###
    ServerName yourwebsitedomainnamee.hopto.org 
    <Directory G:/xampp/htdocs/yourwebsitedomainname.hopto.org>
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Require all granted
    </Directory>
    ErrorLog "G:/xampp/apache/logs/error.log"
    CustomLog "G:/xampp/apache/logs/access.log" common
    SSLEngine on
SSLCertificateFile "G:\xampp\apache\conf\ssl.crt\abscert.pem"
SSLCertificateKeyFile "G:\xampp\apache\conf\ssl.key\abskey.pem"
</VirtualHost>  
     
  1. Затем перешел к G: \ xampp \ apache \ conf \ extra \ httpd-ssl.conf и сделал, как было рекомендовано выше. Я пропустил этот важный шаг несколько дней, пока не прочитал этот пост. Спасибо! Т.е. вошел
<VirtualHost _default_:443>
DocumentRoot "G:/xampp/htdocs/yourwebsitedomainnamee.hopto.org/public/"
###NB My document root is public.  Yours may not be.  Or could have an index.php page before /public###
SSLEngine on
SSLCertificateFile "conf/ssl.crt/abscert.pem"
SSLCertificateKeyFile "conf/ssl.key/abskey.pem"
CustomLog "G:/xampp/apache/logs/ssl_request.log" \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>  

Примечание 1. Я использовал www.noip.com для регистрации доменного имени. Заметка 2. Вместо этого попробуйте заставить их дать мне сертификат ssl, так как я не мог заставить его работать, вместо этого работало вышеуказанное. Примечание 3 Я использую программное обеспечение noip DUC, чтобы поддерживать синхронизацию моего личного веб-сайта с noip. Примечание 4. Очень важно останавливать и запускать сервер xampp после каждого изменения, которое вы вносите в xampp. Если по какой-то причине xampp не работает, вместо запуска консоли xampp попробуйте запустить xampp, так как это вызовет проблемы, которые вы можете исправить. Быстро скопируйте их и вставьте в note.txt.

Марк Корриган
источник
1

Если вы используете Mac OS (catalina или mojave) и хотите включить HTTPS / SSL на XAMPP для Mac, вам необходимо включить виртуальный хост и использовать сертификаты по умолчанию, включенные в XAMPP. В вашем httpd-vhosts.confфайле добавьте новый vhost:

<VirtualHost *:443>
    ServerAdmin webmaster@localhost.com
    DocumentRoot "/Users/your-user/your-site"
    ServerName your-site.local
    SSLEngine on
    SSLCertificateFile "etc/ssl.crt/server.crt" 
    SSLCertificateKeyFile "etc/ssl.key/server.key"
    <Directory "/Users/your-user/your-site">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Require all granted
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>
Jalamprea
источник
1

Здесь есть лучшее руководство для Windows:

https://shellcreeper.com/how-to-create-valid-ssl-in-localhost-for-xampp/

Основные шаги:

  1. Создайте сертификат SSL для своего локального домена, используя это: Подробнее см. По ссылке выше https://gist.github.com/turtlepod/3b8d8d0eef29de019951aa9d9dcba546 https://gist.github.com/turtlepod/e94928cddbfc46cfbaf8c3e585

  2. Установите этот сертификат в Windows (доверенные корневые центры сертификации). Подробнее см. По ссылке выше.

  3. Добавьте сайт в хосты Windows (C: \ Windows \ System32 \ drivers \ etc \ hosts), например: 127.0.0.1 site.test

  4. Добавьте сайт в XAMPP conf (C: \ xampp \ apache \ conf \ extra \ httpd-vhosts.conf) Например:

     <VirtualHost *:80>
        DocumentRoot "C:/xampp/htdocs"
        ServerName site.test
        ServerAlias *.site.test
     </VirtualHost>
     <VirtualHost *:443>
        DocumentRoot "C:/xampp/htdocs"
        ServerName site.test
        ServerAlias *.site.test
        SSLEngine on
        SSLCertificateFile "crt/site.test/server.crt"
        SSLCertificateKeyFile "crt/site.test/server.key"
     </VirtualHost>
    
  5. Перезапустите Apache и ваш браузер, и готово!

Адриан П.
источник