Увімкнення SSL за допомогою XAMPP


81

Я дотримувався цього посібника настільки, наскільки міг http://robsnotebook.com/xampp-ssl-encrypt-passwords .

Однак, коли я переходжу на сторінку, що починається з https, сервер apache відповідає 404 Object Not Found.

Яке налаштування мені не вистачає? Дякуємо за будь-яку допомогу.


Посилання на підручник ще не https, воно вчить, як зробити httpa
Cholowao

Відповіді:


105

Знайшов відповідь. У файлі xampp\apache\conf\extra\httpd-ssl.confпід SSL Virtual Host Contextсторінками коментарів на порту 443 значення https шукається під іншим коренем документа.

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


9
Майте на увазі, що вам також потрібно перезапустити Apache, щоб ці зміни набрали чинності (можливо, вам доведеться відключити та повторно ввімкнути SSL, щоб побачити, як він працює, використовуючи sudo /Applications/XAMPP/xamppfiles/xampp disablesslта sudo /Applications/XAMPP/xamppfiles/xampp enablesslвідповідно).
Wex,

4
не забудьте переадресувати порт 443 для SSL. Сподіваюся, це може комусь допомогти =)
user1534664


1
Ця стаття мені дуже допомогла і, будь ласка, НЕ ЗАБУВАЙТЕ перезапустити хром. shellcreeper.com/how-to-create-valid-ssl-in-localhost-for-xampp
Moh Arjmandi

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.
Шрікант Гопі

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 - автономний

  3. Потім слідували підказки та вводили ім’я мого домену. Це створило сертифікати як cert1.pem та key1.pem у папці C: \ Certbot, що знаходиться у вашій веб-домені. cmd windows повідомляє, де вони знаходяться.

  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>

0

Тут є кращий посібник для 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/e94928cddbfc46cfbaf8c0e585

  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 та ваш браузер, і все готово!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.