wake-up-neo.net

Einrichten von SSL auf einem lokalen Xampp-/Apache-Server

Ich versuche, von meinem lokalen Webserver auf ein Active Directory zuzugreifen. Dazu verwende ich die neueste Version von xampp und ein PHP -Skript mit dem Namen adLDAP . Wenn ich die Dinge richtig verstanden habe, muss ich SSL aktivieren, um auf https-URLs zugreifen zu können. Ich habe versucht, es ohne Erfolg zu googeln :( Könnte jemand ein Tutorial verlinken oder mir erklären, wie ich SSL auf xampp/Apache für Windows 7 64bit installiere?

23
horgen

Apache-Teil - Damit können Sie https: // localhost/xyz öffnen.

Es gibt die Konfigurationsdatei xampp/Apache/conf/extra/httpd-ssl.conf, die die gesamte ssl-spezifische Konfiguration enthält. Es ist ziemlich gut dokumentiert, also lesen Sie die Kommentare und werfen Sie einen Blick auf http://httpd.Apache.org/docs/2.2/ssl/ . Die Dateien beginnen mit <IfModule ssl_module>, also nur Ein Effekt, wenn der Apache mit seinem mod_ssl-Modul gestartet wurde.

Öffnen Sie die Datei xampp/Apache/conf/httpd.conf in einem Editor und suchen Sie nach der Zeile

#LoadModule ssl_module modules/mod_ssl.so

entfernen Sie den Hashmarker, speichern Sie die Datei und starten Sie den Apache neu. Der Webserver sollte jetzt mit der Basis-/Standard-SSL-Konfiguration von xampp beginnen. gut genug für das Testen, aber Sie möchten vielleicht etwas mehr über mod_ssl in der Apache-Dokumentation nachlesen.


PHP-Teil - Ermöglicht adldap die Verwendung von ldap über ssl

adldap benötigt die openssl-Erweiterung von php, um "ldap over ssl" -Verbindungen zu verwenden. Die openssl-Erweiterung wird als DLL mit Xampp ausgeliefert. Sie müssen PHP "sagen", diese DLL zu laden, z. indem Sie einen extension=nameofmodule.dll in Ihrer php.ini haben
Lauf

echo 'ini: ', get_cfg_var('cfg_file_path');

Es sollte Ihnen zeigen, welche Ini-Datei Ihre PHP-Installation verwendet (sie kann sich zwischen dem PHP-Apache-Modul und der PHP-Cli-Version unterscheiden).
Öffnen Sie diese Datei in einem Editor und suchen Sie nach

;extension=php_openssl.dll

entfernen Sie das Semikolon, speichern Sie die Datei und starten Sie den Apache neu.

siehe auch: http://docs.php.net/install.windows.extensions

28
VolkerK

Es stellt sich heraus, dass OpenSSL in PHP 5.3 von XAMPP 1.7.2 kompiliert und aktiviert ist und daher keine separate Erweiterungs-DLL mehr benötigt. 

Sie müssen jedoch immer noch in Ihrer PHP.ini-Datei die Zeile extension=php_openssl.dll aktivieren. 

6
Flak DiNenno

Ich habe die meisten der vorgeschlagenen Sachen hier gemacht, funktionierte immer noch nicht. Versucht dies und es hat funktioniert: Öffnen Sie Ihre XAMPP-Systemsteuerung , suchen Sie die Config - Taste für das Apache-Modul . Klicken Sie auf die Schaltfläche Config und wählen Sie PHP (php.ini) aus. Öffnen Sie mit einem beliebigen Texteditor und entfernen Sie die Halbspalte vor php_openssl . Speichern und starten Sie Apache neu. Das sollte reichen!

4
dc-aoxn

Sie können SSL auf XAMPP aktivieren, indem Sie selbstsignierte Zertifikate erstellen und diese Zertifikate anschließend installieren. Geben Sie die folgenden Befehle ein, um die Zertifikate zu generieren und in ssl-Ordner zu verschieben.

openssl genrsa -des3 -out server.key 1024

openssl req -new -key server.key -out server.csr

cp server.key server.key.org

openssl rsa -in server.key.org -out server.key

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

cp server.crt /opt/lampp/etc/ssl.crt/domainname.crt

cp server.key /opt/lampp/etc/ssl.key/domainname.key

(Verwenden Sie Sudo mit jedem Befehl, wenn Sie nicht der Superuser sind.)

Prüfen Sie nun, ob mod_ssl in [XAMPP_HOME] /etc/httpd.conf aktiviert ist:

LoadModule ssl_module modules/mod_ssl.so

Fügen Sie einen virtuellen Host hinzu, in diesem Beispiel "localhost.domainname.com". Bearbeiten Sie [XAMPP_HOME] /etc/extra/httpd-ssl.conf wie folgt:

<virtualhost 127.0.1.4:443>
    ServerName localhost.domainname.com
    ServerAlias localhost.domainname.com *.localhost.domainname.com
    ServerAdmin [email protected]

    DocumentRoot "/opt/lampp/htdocs/"

    DirectoryIndex index.php

    ErrorLog /opt/lampp/logs/domainname.local.error.log
    CustomLog /opt/lampp/logs/domainname.local.access.log combined

    SSLEngine on
    SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
    SSLCertificateFile /opt/lampp/etc/ssl.crt/domainname.crt
    SSLCertificateKeyFile /opt/lampp/etc/ssl.key/domainname.key

    <directory /opt/lampp/htdocs/>
            Options Indexes FollowSymLinks
            AllowOverride All
            Order allow,deny
            Allow from all
    </directory>
    BrowserMatch ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
</virtualhost>

Fügen Sie/etc/hosts den folgenden Eintrag hinzu:

127.0.1.4 localhost.domainname.com

Versuchen Sie nun, das Zertifikat zu installieren/versuchen Sie, das Zertifikat in den Browser zu importieren. Ich habe dies überprüft und es funktionierte auf Ubuntu.

2
sAn

Ich habe alle Antworten und Tutorials über das Internet durchgesehen, aber hier sind die grundlegenden Schritte , um zu aktivieren SSL ( https auf localhost mit [~ # ~] xampp [~ # ~ ] :

Erforderlich:

  1. Führen Sie -> "C:\xampp\Apache\makecert.bat" aus (doppelklicken Sie auf Windows). Füllen Sie Passwörter Ihrer Wahl aus, drücken Sie die Eingabetaste für alles, ABER definieren Sie "localhost" !!! Seien Sie vorsichtig, wenn Sie hier gefragt werden:

    Common Name (z. B. FQDN des Servers oder IHR Name) []: localhost

    (Zertifikate werden nur pro Domain Name Zone ausgestellt!)

  2. Starten Sie Apache neu
  3. Chrome -> Einstellungen -> Suche nach "Zertifikat" -> Zertifikate verwalten -> Vertrauenswürdige Stammzertifizierungsstellen -> Importieren -> "C:\xampp\Apache\conf\ssl.crt\server.crt" -> Muss nach "JA" fragen zur Bestätigung!
  4. https: //localhost/testssl.php -> [OK, jetzt grün!] (jede HTML-Testdatei)

Optional: (Wenn dies nicht funktioniert, führen Sie weitere dieser Schritte aus.)

  1. Führen Sie XAMPP als Administrator aus (Start -> XAMPP -> Rechtsklick -> Als Administrator ausführen)
  2. XAMPP -> Apache -> Config -> httpd.conf ("C:\xampp\Apache\conf\httpd.conf")

    LoadModule ssl_module modules/mod_ssl.so (entferne # vom Zeilenanfang)

  3. XAMPP -> Apache -> Config -> php.ini ("C:\xampp\php\php.ini")

    extension = php_openssl.dll (entfernen; vom Zeilenanfang)

  4. Starten Sie Apache und Chrome neu!

Überprüfen Sie alle Probleme oder den Status Ihres Zertifikats:

Chrome -> F12 -> Sicherheit -> Zertifikat anzeigen

1
Tarik

Ich habe alle vorgeschlagenen Sachen hier gemacht und mein Code funktionierte immer noch nicht, da ich curl verwendete.

Wenn Sie curl in der php-Datei verwenden, scheint curl den gesamten ssl-Verkehr standardmäßig abzulehnen. Eine schnelle Lösung, die für mich funktionierte, war folgendes hinzuzufügen:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

vor dem anrufen:

 curl_exec():

in der PHP-Datei.

Ich glaube, dass dies die gesamte Überprüfung von SSL-Zertifikaten deaktiviert.

0
Chris Dutrow