SSL Tutorials ?
Daniel
- php
Hallo,
Ich bin gerade dabei eine Webanwendung zu schreiben die ziemlich sicher sein sollte, also bräuchte ich SSL dazu. Ich habe aber absolut keine Ahnung wie das funktioniert, und seltsamerweise findet sich im Internet auch nirgends etwas mit dem ich etwas anfangen könnte...ist das denn so kompliziert, das niemand ein Tutorial dazu schreiben möchte?
Weiss vielleicht irgendwer so ein Tutorial wie man SSL in PHP einbindet?
Grüsse,
Daniel
Hallo Daniel,
Weiss vielleicht irgendwer so ein Tutorial wie man SSL in PHP einbindet?
PHP bekommt von SSL kaum etwas mit. SSL arbeitet auf einer tieferen Ebene als PHP. Wenn Du einen Webserver mit SSL-Unterstützung hast, dann kannst Du dort genauso PHP laufen lassen wie auf einem normalen Webserver. Das einzige, was sich ändert, sind die URLs, die sind dann nicht mehr
http://www.example.com/test.php
sondern
https://www.example.com/test.php
Im Idealfall brauchst Du eine Webanwendung auf einen SSL-Server nur aufspielen und sie funktioniert mit SSL direkt - ohne, dass Du Dich um weitere Dinge kümmern musst. Nur, wenn sie absolute URIs erzeugt, solltest Du darauf achten, dass sie https anstelle von http ausgibt.
Viele Grüße,
Christian
Hallo Daniel!
Liegt vielleicht daran, dass man SSL nicht in PHP einbindet, sondern in die Webserver-Umgebung - also zB Apache.
Auch ich hatte vor wenigen Monaten ein ähnliches Problem und einige Tage darüber gebrütet. Als Schlagworte für die weitere Suche möchte ich Apache mit mod_ssl, OpenSSL und natürlich PHP hinterlassen.
Und als Tipp - achte auf die Versionen - ich musste mir mühsam einige Versionen downloaden, da manche dll's nur mit ganz bestimmten anderen Versionen zusammenspielen (musste das ganze auf Win machen).
Also schau mal:
http://httpd.apache.org/
http://httpd.apache.org/docs-2.0/mod/mod_ssl.html
http://www.php.net
mfg
norbert =:-)
Moin!
Ich bin gerade dabei eine Webanwendung zu schreiben die ziemlich sicher sein sollte, also bräuchte ich SSL dazu. Ich habe aber absolut keine Ahnung wie das funktioniert, und seltsamerweise findet sich im Internet auch nirgends etwas mit dem ich etwas anfangen könnte...ist das denn so kompliziert, das niemand ein Tutorial dazu schreiben möchte?
Weiss vielleicht irgendwer so ein Tutorial wie man SSL in PHP einbindet?
SSL ist eine Eigenschaft, die der ausführende Webserver zur Verfügung stellen muß. PHP hat damit absolut nichts zu tun, auch auf HTML- und Javascript-Seite ändert sich nichts.
SSL baut statt eines unverschlüsselten Kanals einen verschlüsselten Kanal zum Webserver auf. Das bringt eine wichtige Einschränkung mit: Der Server benötigt eine eigene IP exklusiv für diesen Webauftritt, weil bei SSL (genauer: HTTPS) keine virtuellen Hosts möglich sind. Der Browser muß zuerst, noch bevor der Webserver den ersten HTTP-Request erhält, das Serverzertifikat prüfen. Und zu dem Zeitpunkt kann er nur die IP-Adresse kennen. Es wäre eine riesige Sicherheitslücke, wenn sich dann hinter der einen, geprüften IP mehrere Webpräsenzen verbergen könnten. Dann könnte die eine Präsenz durch Manipulation die andere vielleicht übernehmen und so in die Datenübermittlung eindringen.
Aufgrund dieser Einschränkung kosten SSL-Webserver bei den Providern mehr als normale Webserver. Außerdem benötigt man in der Regel noch ein signiertes Zertifikat für seinen Webserver, denn ansonsten zeigen die Browser dem Benutzer eine ziemlich angstmachende Meldung, dass sie das Zertifikat nicht hätten verifizieren können. Und solch eine Signatur kostet auch.
Bei Puretec ist die Sache relativ clever und kostengünstig durch einen SSL-Proxy gelöst: Es gibt einen Server, der ein signiertes SSL-Zertifikat besitzt, und über den gehen alle SSL-Verbindungen. Der Server selbst greift dann per HTTP unverschlüsselt auf den eigentlichen Server zu - da die Daten hoffentlich im eigenen Netzwerk bleiben, ist das nur unwesentlich unsicherer. Allerdings sieht man dieses Verfahren in der URL. Da steht dann nicht mehr "www.deinedomain.tld/...", sondern irgendwas mit "www.secureserver.tld/deinedomain.tld/..." - das hat natürlich auch Auswirkungen auf deine Pfadangaben in der Seite, weil die natürlich auch stimmen müssen.
- Sven Rautenberg
Hallo nochmals
Danke erst einmal für die Antworten,
also wenn ich SSL in PHP Skripten verwenden will bräuchte ich effektiv nur "https:\" als Protokoll verwenden? Den Server muss (zum Glück) nicht ich installieren und konfigurieren, das bietet schon der Provider an, auch inkl. SSL Verschlüsselung. Ich habe nur einmal etwas in einem Buch (PHP Deluxe -> ist ein gutes Buch über PHP,sehr empfehlenswert) etwas über OpenSSL gelesen, und das war für mich reinstes Spanisch, da dort über (PHP Funktionen) Schlüsselanforderungen, Signaturen und Verschlüsselungsalgorithmen geschrieben wurde, deswegen habe ich mir gedacht, dass man das auch in PHP einbinden muss.
Grüsse,
Daniel
Moin!
also wenn ich SSL in PHP Skripten verwenden will bräuchte ich effektiv nur "https:\" als Protokoll verwenden? Den Server muss (zum Glück) nicht ich installieren und konfigurieren, das bietet schon der Provider an, auch inkl. SSL Verschlüsselung.
Richtig. Die Seite statt mit http einfach mit https aufrufen sollte funktionieren, wenn der Server korrekt konfiguriert ist.
Ich habe nur einmal etwas in einem Buch (PHP Deluxe -> ist ein gutes Buch über PHP,sehr empfehlenswert) etwas über OpenSSL gelesen, und das war für mich reinstes Spanisch, da dort über (PHP Funktionen) Schlüsselanforderungen, Signaturen und Verschlüsselungsalgorithmen geschrieben wurde, deswegen habe ich mir gedacht, dass man das auch in PHP einbinden muss.
Das, was du gelesen hast, ist relevant, wenn du mit PHP auf fremde HTTPS-Server zugreifen willst, um über einen verschlüsselten Übertragungsweg Daten zu übermitteln. PHP ist hierbei genau wie dein Browser der Client, nicht der Server.
- Sven Rautenberg
Moin,
Das, was du gelesen hast, ist relevant, wenn du mit PHP auf fremde HTTPS-Server zugreifen willst, um über einen verschlüsselten Übertragungsweg Daten zu übermitteln. PHP ist hierbei genau wie dein Browser der Client, nicht der Server.
Ähm, nein. Wenn du an einen anderen HTTPS-(oder SSL)-Server rankommen willst, reicht es aus, das PHP mitzuteilen, d.h. zum Beispiel file("https://www.foo.bar/") oder fsockopen("ssl://www.foo.bar", 80).
Die OpenSSL-Funktionen von PHP sind sogar allesamt unbrauchbar, wenn man eine verschlüsselte Übertragung aufbauen will[1]. Du kannst damit aber - wie Daniel erwähnte - Schlüsselverwaltung betreiben oder Botschaften verschlüsseln, entschlüsseln, signieren oder verifizieren.
[1] Ich bin mir nicht sicher, ob man die nicht doch für eine SSL-Verbindung verwenden kann. Es dürfte aber wirklich darauf hinauslaufen große Teile des SSL-Protokolls in PHP zu implementieren und nur die direkten Verschlüsselungsoperation an das OpenSSL-Modul abzugeben. Das wäre vermutlich _richtig_ aufwändig.
Moin!
Ähm, nein. Wenn du an einen anderen HTTPS-(oder SSL)-Server rankommen willst, reicht es aus, das PHP mitzuteilen, d.h. zum Beispiel file("https://www.foo.bar/") oder fsockopen("ssl://www.foo.bar", 80).
Das funktioniert aber nur, wenn PHP mit OpenSSL kompiliert wurde, um die grundlegenden SSL-Funktionalitäten überhaupt möglich zu machen.
Hm, kann natürlich sein, dass Daniel das nicht meinte, aber ich hab's so verstanden. :)
Tatsächlich: alle openssl_*-Funktionen beziehen sich hauptsächlich aufs Verschlüsseln und Entschlüsseln. Naja, wer's braucht, freut sich.
- Sven Rautenberg
Hallo Daniel!
also wenn ich SSL in PHP Skripten verwenden will bräuchte ich effektiv nur "https:\" als Protokoll verwenden?
Yo. Oder die Angabe, die Dein Provider dir gibt (manchmal auch https://www.provider.com/deineurl/undsoweiter). Ansonsten programmierst Du wie sonst auch - du musst in PHP-Scripten eigentlich nichts verwenden (außer bei URL-Angaben) ;-)
mfg
norbert =:-)
Hi,
Nochmals Danke für eure Hilfe :-)
Grüsse,
Daniel