Ich habeWindowsServer 2003 R2 mitApache2.2.4 undPHP5.2.6. Ich möchte über https (SSL) auf Seiten zugreifen.
Und ich bekomme diesen Fehler (Zend Framework GData):
Unable to find the socket transport "ssl" - enter code here did you forget to enable it when you configured PHP?
Also, was ich getan habe. Ich ging zu php.ini und habe die Zeile auskommentiert
extension=php_openssl.dll
Ich habe auch installiertWin32 OpenSSL.
Aber nichts funktioniert. Was soll ich tun?
Antwort1
Ok, hier müssen einige Schritte überprüft werden:
- Erstellen Sie zunächst eine phpinfo()-Datei, um zu überprüfen, ob die SSL-Erweiterung von PHP tatsächlich aktiviert ist. Ich weiß, Sie sagten, Sie hätten sie aktiviert, aber überprüfen Sie, ob Sie dies in der richtigen PHP.ini-Datei getan haben und ob die Änderung tatsächlich wirksam wird.
- Stellen Sie sicher, dass sich libeay32.dll und ssleay32.dll irgendwo im Windows-Pfad befinden
- Stellen Sie sicher, dass sich php_openssl.dll in Ihrem Erweiterungsverzeichnis befindet
- Überprüfen Sie, ob Ihre phpinfo()-Datei das richtige Erweiterungsverzeichnis anzeigt.
Antwort2
Dies sind die relevanten Teile des Tutorials zu:http://fash7y.wordpress.com/2011/12/0/solved-how-to-set-up-https-with-openssl-in-wamp/
zur Weiterarbeit mithttp://openssl-for-windows.googlecode.com/files/openssl-0.9.8k_WIN32.zip.
Okay, machen wir die nächsten Schritte. ;)
- SSL-Zertifikat und -Schlüssel erstellen
a. Ekstrak OpenSSL in Ihr Verzeichnis und kopieren Sie diese Datei:
openssl.cnf to .\Apache2.2.11\conf\
from folder bin, copy all files to .\Apache2.2.11\bin\
// Ersetze die alten Dateien! :D
b. Öffnen Sie das DOS-Eingabeaufforderungsfenster, indem Sie CMD
Ihr Suchmenü eingeben.
c. Geben Sie Folgendes ein: cd C:\wamp\bin\apache\apache2.2.11\bin
d. Erstellen Sie einen privaten Serverschlüssel mit 1024-Bit-Verschlüsselung, indem Sie diesen Befehl eingeben: openssl genrsa -des3 -out server.key 1024
// Sie werden nach einer Passphrase (einem Passwort) gefragt. Geben Sie einfach ein beliebiges Passwort ein.
e. Entfernen Sie die Passphrase aus dem privaten RSA-Schlüssel (behalten Sie dabei eine Sicherungskopie der Originaldatei). Geben Sie Folgendes ein:
kopiere server.key server.key.org
openssl rsa -in server.key.org -out server.key
// Sie werden nach der Passphrase gefragt, geben Sie sie einfach ein.
f. Erstellen Sie ein selbstsigniertes Zertifikat (X509-Struktur) mit dem soeben erstellten RSA-Schlüssel. Geben Sie Folgendes ein: openssl req -new -x509 -nodes -sha1 -days 365 -key server.key -out server.crt -config C:\wamp\bin\apache\apache2.2.11\conf\openssl.cnf
- Kopieren Sie die Dateien server.key und server.crt
a. Erstellen Sie in Apache2.2.11\conf\ zwei Ordner mit den Namen ssl.key und ssl.crt
b. Kopieren Sie die Datei server.key in den Ordner ssl.key und die Datei server.crt in den Ordner ssl.crt
- Bearbeiten Sie die Dateien httpd.conf, php.ini und httpd_ssl.conf
a. Öffnen Sie die Datei httpd.conf
b. Entfernen Sie den Kommentar „#“ in der Zeile: LoadModule ssl_module modules/mod_ssl.so
c. Entfernen Sie den Kommentar „#“ in der Zeile „Include conf/extra/httpd-ssl.conf“
d. Öffnen Sie diese Datei -> C:\wamp\bin\php\php5.3.8\php.ini
e. Entfernen Sie den Kommentar ';' in der Zeile: extension=php_openssl.dll
f. Öffnen Sie diese Datei -> C:\wamp\bin\apache\Apache2.2.11\conf\extra\httpd_ssl.conf
g. Suchen Sie die Zeile mit dem Text: .
h. Ändern Sie direkt danach die Zeile:
Change the line “DocumentRoot …” to DocumentRoot “C:/wamp/www/”
Change the line “ServerName…” to ServerName localhost:443
Change the line “ErrorLog….” to Errorlog “C:/wamp/bin/apache/Apache2.2.11/logs/sslerror.log”
Change the line “TransferLog ….” to TransferLog “C:/wamp/bin/apache/Apache2.2.11/logs/sslaccess.log”
Change the line “SSLCertificateFile ….” to SSLCertificateFile “C:/wamp/bin/apache/Apache2.2.11/conf/ssl.crt/server.crt”
Change the line “SSLCertificateKeyFile ….” to SSLCertificateKeyFile “C:/wamp/bin/apache/Apache2.2.11/conf/ssl.key/server.key”
Change the line which says <Directory “C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin”> or something like that (sorry I’m forget what its default dir :p) to <Directory “C:/wamp/www/”>
Add the following lines inside those <Directory … >…</Directory> tags:
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
Change the line “CustomLog…” to CustomLog “C:/wamp/bin/apache/Apache2.2.11/logs/ssl_request.log”
- Stellen Sie sicher, dass es funktioniert!
a. Geben Sie in den vorherigen DOS-Eingabeaufforderungen httpd -t ein. Wenn Systax ist OK angezeigt wird, fahren Sie mit dem nächsten Schritt fort. Wenn nicht, korrigieren Sie die falsche Syntax und wiederholen Sie Schritt 3.
b. Starten Sie den Apache-Server neu. Wenn der Neustart erfolgreich ist, öffnen Sie den Browser und geben Sie http.s localhost/ ein.
Wie läufts? Funktioniert, oder? Glückwunsch! :D
- Versuchen Sie Folgendes: htt..localhost