Włączanie SSL z XAMPP

81

Postępowałem zgodnie z tym przewodnikiem tak często, jak tylko mogłem http://robsnotebook.com/xampp-ssl-encrypt-passwords .

Jednak za każdym razem, gdy przechodzę do strony zaczynającej się od https, serwer Apache odpowiada 404 Object Not Found.

Jakiego ustawienia mi brakuje? Dzięki za wszelką pomoc.

ColacX
źródło
Twój link do samouczka nie jest https, ale uczy, jak tworzyć httpa
Cholowao

Odpowiedzi:

105

Znalazłem odpowiedź. W pliku xampp\apache\conf\extra\httpd-ssl.conf, pod SSL Virtual Host Contextstronami komentarzy na porcie 443, co oznacza, że ​​https jest wyszukiwany w innym katalogu głównym dokumentu.

Po prostu zmień katalog główny dokumentu na ten sam, a problem zostanie rozwiązany.

ColacX
źródło
9
Pamiętaj, że musisz również zrestartować Apache, aby zmiany zaczęły obowiązywać (może być konieczne wyłączenie i ponowne włączenie SSL, aby zobaczyć, jak działa, używając odpowiednio sudo /Applications/XAMPP/xamppfiles/xampp disablessli sudo /Applications/XAMPP/xamppfiles/xampp enablessl).
Wex,
4
nie zapomnij przekierować portu 443 dla SSL. Mam nadzieję, że to może komuś pomóc =)
user1534664
1
Ten artykuł bardzo mi pomógł i NIE ZAPOMNIJ zrestartować chrome. shellcreeper.com/how-to-create-valid-ssl-in-localhost-for-xampp
Moh Arjmandi
85

Możesz również skonfigurować swój SSL w xampp/apache/conf/extra/httpd-vhost.confnastępujący sposób:

<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>

Chyba lepiej nie zmieniać tego w httpd-ssl.confprzypadku, gdy masz więcej niż jeden projekt i potrzebujesz SSL na więcej niż jednym z nich

Tobias Hartmann
źródło
Wykonałem te same kroki i zmodyfikowałem httpd-vhost.conf, jak wspomniałeś, ponieważ mam wiele domen jako hosty, takie jak example.com example2.com example3.com, i dodałem ssl do example2.com, ale nie działa zgodnie z oczekiwaniami. Kiedy przechodzę do example2.com, pokazuje ona witrynę example.com.
Srikanth Gopi
12

W przypadku XAMPP wykonaj następujące czynności:

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

  2. Wyszukaj tekst „DocumentRoot”.

  3. Zmień DocumentRoot DocumentRoot „G: / xampp / htdocs” na DocumentRoot „G: / xampp / htdocs / nazwa projektu”.

Pritam Chaudhari
źródło
10

skonfiguruj SSL w 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>

upewnij się, że ścieżka server.crt i server.key została podana poprawnie, w przeciwnym razie to nie zadziała.

nie zapomnij włączyć vhosta w httpd.conf

# Virtual hosts
Include etc/extra/httpd-vhosts.conf
Amit
źródło
2

W końcu udało mi się to zadziałać na mojej własnej stronie internetowej serwera Xampp dla systemu Windows 10. To znaczy kłódki pojawiły się jako ssl. Używam wersji xampp od listopada 2020 r.

  1. Poszedłem na certbot.eff.org. Wybrane z ich strony głównej oprogramowania [apache] i systemu [windows]. Następnie pobrałem i zainstalowałem oprogramowanie certbot znajdujące się na następnej stronie na moim dysku C.

  2. Następnie z wiersza poleceń [cmd w Windows Start, a następnie przed otwarciem cmd kliknij prawym przyciskiem myszy, aby uruchomić cmd jako administrator] Ulepszyłem polecenie ze strony Certbot powyżej. To znaczy nawigacja do system32 - C: \ WINDOWS \ system32> certbot certonly - standalone

  3. Następnie postępuj zgodnie z instrukcjami i wprowadziłem nazwę mojej domeny. Utworzono certyfikaty jako cert1.pem i key1.pem w folderze C: \ Certbot yourwebsitedomain. okno cmd powie ci, gdzie to jest.

  4. Następnie wziąłem je i zmieniłem ich nazwy z cert1.pem na moją nazwę domeny lub krótsze + cert.pem i takie same dla domeny lub krótsze + key.key. Skopiowano je odpowiednio do folderów C: \ xampp \ apache \ ssl.crt i ssl.key.

  5. Następnie dla G: \ xampp \ apache \ conf \ extra \ httpd-vhosts wpisano:

<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. Następnie przeszedłem do G: \ xampp \ apache \ conf \ extra \ httpd-ssl.conf i postępowałem zgodnie z zaleceniami powyżej. Tęskniłem za tym ważnym krokiem przez wiele dni, dopóki nie przeczytałem tego postu. Dziękuję Ci! To znaczy wszedłem
<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>  

Notatka 1. Użyłem www.noip.com do rejestracji nazwy domeny. Uwaga 2. Zamiast tego spróbuj zmusić ich, aby dali mi certyfikat ssl, ponieważ nie mogłem go uruchomić, powyższe zadziałało. Uwaga3 Używam oprogramowania noip DUC, aby synchronizować moją osobiście hostowaną witrynę internetową z noip. Uwaga 4. Bardzo ważne, aby zatrzymać i uruchomić serwer xampp po każdej zmianie dokonanej w xampp. Jeśli xampp z jakiegoś powodu zawiedzie, zamiast uruchamiać konsolę xampp, spróbuj uruchomić xampp, ponieważ spowoduje to problemy, które możesz naprawić. Skopiuj je szybko i wklej do pliku note.txt.

Mark Corrigan
źródło
1

Jeśli korzystasz z systemu Mac OS (catalina lub mojave) i chcesz włączyć HTTPS / SSL na XAMPP dla komputerów Mac, musisz włączyć wirtualny host i użyć domyślnych certyfikatów zawartych w XAMPP. W httpd-vhosts.confpliku dodaj nowy vhost:

<VirtualHost *:443>
    ServerAdmin [email protected]
    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
źródło
1

Jest tutaj lepszy przewodnik dla systemu Windows:

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

Podstawowe kroki:

  1. Utwórz certyfikat SSL dla swojej domeny lokalnej, korzystając z tego: Zobacz więcej szczegółów w powyższym linku https://gist.github.com/turtlepod/3b8d8d0eef29de019951aa9d9dcba546 https://gist.github.com/turtlepod/e94928cddbfc46cfbaf8c3e5856577d0

  2. Zainstaluj ten certyfikat w systemie Windows (zaufane główne urzędy certyfikacji). Więcej informacji znajduje się w powyższym łączu

  3. Dodaj witrynę na hostach Windows (C: \ Windows \ System32 \ drivers \ etc \ hosts) Np .: 127.0.0.1 site.test

  4. Dodaj witrynę w XAMPP conf (C: \ xampp \ apache \ conf \ extra \ httpd-vhosts.conf) Np .:

     <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. Uruchom ponownie Apache i przeglądarkę i gotowe!

Adrian P.
źródło