Seite 1 von 4 1234 LetzteLetzte
Ergebnis 1 bis 20 von 72

Thema: [HowTo]: Forenbereiche mit HTTPS absichern - ein Anfang

  1. #1
    Benutzer
    Registriert seit
    07.10.2006
    Ort
    Bayreuth
    Beiträge
    44

    [HowTo]: Forenbereiche mit HTTPS absichern - ein Anfang

    Hallo,

    ich bin der Meinung, gewisse Bereiche in einem Forum sollten nur verschlüsselt übertragen werden. Dazu gehört z. B. die Registrierung, die PMs oder das Kontrollzentrum.

    Ich habe mich jetzt mal drangesetzt und das für mein Forum umgesetzt und läuft dort auch seit einiger Zeit Problemlos. das vBulletin ist recht sauber geschrieben weshalb es an sich keinerlei Probleme mit dem hin- und herspringen von https und http hat. Alles möchte ich aus Lastgründen nicht über https laufen lassen.

    Was leider (noch) nicht funktioniert, ist der Login. Wenn ich hier von https wieder auf http umspringe verlier ich die Daten und naja dann klappt das halt nicht

    Vorarbeit: Natürlich brauchen wir hierfür ein SSL-Zertifikat. Ich persönlich halte nicht viel von selbstunterzeichneten. Sicher funktioniert das genauso aber die Warnmeldung (die ja im IE7 sehr brutal aussieht ) schreckt doch mehr Leute ab als das es was bringt. Es gibt ja doch jede Menge recht günstige Anbieter im Netz die Zertifikate für ein Taschengeld anbieten. Damit SSL sauber läuft benötigt man eine eigene IP mit Reverse-Lookup. Das derjenige der das einsetzt sich damit aber auskennt setz ich jetzt vorraus und soll jetzt mal nicht das Thema dieses HowTos sein.

    Ich habe es so eingerichtet, dass ich das Forum ohne https und http://www.domain.tld erreichbar mache. https geht über https://domain.tld (das muss ja fest im Zertifikat angegeben werden ausser man leistet sich ein teures Wildcard-Zertifikat).

    Wenn das Forum nun per https und https erreichbar ist, kann man sich dran setzen, die Umschreibungen zu bauen...

    Umschreibung: Die Umschreibung geschieht bei mir mit einer .htaccess-Datei. mod-rewrite muss aktiviert sein und ich muss das per htaccess steuern dürfen.

    Hier der Inhalt meiner Datei:
    Code:
    RewriteEngine On
    # SSL-Umschreibung
    RewriteCond %{SERVER_PORT}  !^443$ 
    RewriteCond %{REQUEST_FILENAME} usercp.php   [OR]
    RewriteCond %{REQUEST_FILENAME} private.php   [OR]
    RewriteCond %{REQUEST_FILENAME} profile.php   [OR]
    RewriteCond %{REQUEST_FILENAME} register.php   [OR]
    RewriteCond %{REQUEST_FILENAME} moderation.php   [OR]
    RewriteCond %{REQUEST_FILENAME} member.php   [OR]
    RewriteCond %{REQUEST_FILENAME} subscription.php
    RewriteRule (.*)  https://forumsdomain.tld%{REQUEST_URI} [L]
    RewriteCond %{REQUEST_METHOD} !^POST$
    RewriteCond %{SERVER_PORT}  ^443$  
    RewriteCond %{REQUEST_FILENAME} !usercp.php 
    RewriteCond %{REQUEST_FILENAME} !private.php
    RewriteCond %{REQUEST_FILENAME} !profile.php
    RewriteCond %{REQUEST_FILENAME} !register.php
    RewriteCond %{REQUEST_FILENAME} !moderation.php
    RewriteCond %{REQUEST_FILENAME} !member.php
    RewriteCond %{REQUEST_FILENAME} !subscription.php
    RewriteCond %{REQUEST_FILENAME} (.*)\.php 
    RewriteRule (.*)  http://www.forumsdomain.tld%{REQUEST_URI} [L]
    Was passiert hier nun? Ich mache nichts anderes, wie den Port auf dem die Anfrage kommt (http kommt ja auf 80 und https auf 443) abzufragen und dann zu schauen, was für eine datei wird abgefragt. Wenn die Datei zu schützende Inhalte beinhaltet (z. B. das usercp oder das profile) dann schreib ich die Anfrage auf https um. Ist das nicht der Fall, dann erfolgt die Auslieferung per http. Damit bevormunde ich zwar meinen Besucher aber ich kann hier sehr genau einstellen, wann ich eine höhere Last durch Verschlüsselung auf meiner Maschine erzeuge.

    Nacharbeit: Bei einem Standardboard ist jetzt alles OK. Wer jedoch Werbung, Analytic Tools, etc. auf seinem Board hat, hat jetzt ein Problem. Sobald die Umschaltung auf https geschieht, erfolgt die Meldung, das unsichere Elemente geladen werden und ob fortgefahren werden soll oder nicht. Ich persönlich hasse diese Meldung wie die Pest.

    Was kann man tun? Das Stichwort ist ein Plugin! Im Template habe ich einen Platzhalter für das Werbebanner eingebaut (nenne ich jetzt einfach $werbebanner). Ein Plugin ersetzt das ganze durch meinen Ad-Code.

    Einstiegspunkt: parse_templates
    Plugin-Name: Werbebanner anzeigen
    Ausführungsreihenfolge: 6
    Code:
    PHP-Code:
    // normale HTTP-Anfragen 
    if($_SERVER['SERVER_PORT'] == 80) { 
      
    // Banner anzeigen 
      
    $werbebanner '<<< CODE 1 >>>'
    // HTTPS-Anfragen 
    } else { 
      
    $rnd rand(01); 
      
    // HTTPS Banner 
      
    if($rnd == 0) { 
        
    $werbebanner '<<< CODE 2 a >>>'
      } else { 
        
    $werbebanner '<<< CODE 2 b >>>'
      } 

    Im Prinzip mache ich hier das selbe wie in der .htaccess-Datei. Ich überprüfe auf welchen Port die Anfrage kommt und entsprechend handle ich.

    CODE 1: Das ist mein normales reguläres Banner ohne https (wer einen Anbieter kennt der sauber seine Banners über https ausliefert möchte mir as bitte sagen)

    CODE 2: Diese Banner halte ich auf meinem Server vor und werden deshalb sauber via https ausgeliefert. In diesem Beispiel habe ich zwei Banner die abwechselnd eingeblendet werden.

    Dieses Beispiel kann man auch für andere Sachen verwenden. Ich schalte so z. B. noch ein SiteSeal und ein Analytic-Tools (das leider auch nicht per https geht).

    Ende: So jetzt bin ich schon mal am Ende meines kleines HowTos. Über Vorschläge/Erweiterungen/etc. bin ich dankbar. Wehe ihr zerreist mich in der Luft

    cu tb

    Änderungen:
    2008-09-12: POST für Login ausgeschlossen. Danke an Christian...
    Geändert von Xandrian (12.09.2008 um 07:12 Uhr)
    www.pg-forum.de: das deutschsprachige PostgeSQL Forum
    HowTo: vBulletin mit https absichern

  2. #2
    vBulletin-Germany Team Avatar von Mystics
    Registriert seit
    01.11.2001
    Alter
    30
    Beiträge
    27.236
    Danke für dein HowTo. Ich habe es mal nach "vBulletin Tipps und Tricks" verschoben, da es ja nicht auf 3.6 beschränkt ist

  3. #3
    vB-Guru Avatar von Gandalf2003
    Registriert seit
    30.07.2003
    Ort
    Hamburg
    Alter
    40
    Beiträge
    1.683
    Sehr schön geschrieben, und ich werde das mal, nachdem ich mit der Konfiguration meines neuen Roots fertig bin, selbst versuchen.

    Auf jeden Fall bekommt dieser Beitrag von mir 5 Sterne

  4. #4
    Profi-Benutzer Avatar von SchwarzeGenetik
    Registriert seit
    02.08.2007
    Ort
    Dresden
    Alter
    39
    Beiträge
    465
    hi ihr!

    ne frage, wo muß denn die htaccess rein wenn mein forum nicht im root liegt? also www.meinedomain.de/forum

    und was muß ich da an der htaccess anpassen?

    Gruß SG

  5. #5
    Benutzer
    Registriert seit
    07.10.2006
    Ort
    Bayreuth
    Beiträge
    44
    Hi,

    die .htaccess kannst du sowohl als auch hinterlegen... Da eine .htaccess-Datei auch rekursiv funktioniert, klappt das dann auch im entsprechenden Unterverzeichnis.

    cu tb.
    www.pg-forum.de: das deutschsprachige PostgeSQL Forum
    HowTo: vBulletin mit https absichern

  6. #6
    Profi-Benutzer Avatar von SchwarzeGenetik
    Registriert seit
    02.08.2007
    Ort
    Dresden
    Alter
    39
    Beiträge
    465
    ok danke dir! dann werd ich das mal probieren

    Gruß SG

  7. #7
    Benutzer
    Registriert seit
    07.10.2006
    Ort
    Bayreuth
    Beiträge
    44
    Hallo,

    da ich seit längerer Zeit jetzt schon lighttpd verwende, möchte ich hier meine Umschreibungen mal posten...

    Code:
    # http Server
    $SERVER["socket"] == "<IP.DES.SER.VERS>:80" {
            $HTTP["url"] =~ "^/(usercp\.php|private\.php|profile\.php|moderation\.php|member\.php|subscription\.php|register\.php)" {
                      url.redirect = ( "^/(.*)" => "https://host.name/$1" )
            }
    }
    # https Server
    else $SERVER["socket"] == "<IP.DES.SER.VERS>:443" {
            # SSL aktivieren
            ssl.engine  = "enable"
            ssl.pemfile = "/etc/lighttpd/zertifikat.pem"
            ssl.ca-file = "/etc/lighttpd/zertifikat.ca.crt"
     
            # Umschreiben wenn keine zu schützenden Dateien
            $HTTP["url"] !~ "^/(usercp\.php|private\.php|profile\.php|moderation\.php|member\.php|subscription\.php|register\.php)" {
                    url.redirect = ( "^/(.*)" => "http://www.host.name/$1" )
            }
    }
    Vielleicht hilft das den ein oder anderen weiter... Mein Forum ist mit vBSEO erweitert. Ich hoffe ich hab die zusätzlichen Umschreibungen alle entfernt.

    cu tb.
    www.pg-forum.de: das deutschsprachige PostgeSQL Forum
    HowTo: vBulletin mit https absichern

  8. #8
    Profi-Benutzer Avatar von SchwarzeGenetik
    Registriert seit
    02.08.2007
    Ort
    Dresden
    Alter
    39
    Beiträge
    465
    hi ihr!

    also ich bin bei domaingo und da gibts ne erweiterung das man auch ohne gültiges zertifikat https nutzen kann.
    man muß einfach die eigene domain mit https://sslsites.de/eigenedomain/ aufrufen.

    nur wenn ich das tu, stimmen die ganzen pfade nich mehr, und es werden z.b. keine grafigen der webseite angezeigt.

    gibts da trotzdem vielleicht ne lösung das obrige einzusetzen?

    Gruß SG

  9. #9
    Benutzer
    Registriert seit
    07.10.2006
    Ort
    Bayreuth
    Beiträge
    44
    Ach das gibts noch immer? Kenn ich noch von meinen d)f Zeiten... Das aber schon nicht mehr wahr

    Naja das ist nichts ganzes und nichts halbes. Das kann hier nicht sauber funktionieren. Die haben im Prinzip einen Proxy laufen. Wenn du https willst dann verwend ein richtiges Zertifikat für deine Domain und einen Anbieter der das unterstützt...

    cu tb
    www.pg-forum.de: das deutschsprachige PostgeSQL Forum
    HowTo: vBulletin mit https absichern

  10. #10
    vBulletin-Germany Team Avatar von StGaensler
    Registriert seit
    04.11.2004
    Ort
    München
    Beiträge
    12.298
    Blog-Einträge
    1
    Das keine Grafiken angezeigt werden, liegt daran, dass du bei der Webseite die Grafiken vermutlich absolut referenziert hast. Nachdem du die Domain nun über ein Unterverzeichnis aufrufst, kann das nicht mehr funktionieren. Ändere die absoluten Pfade ('/verzeichnis/bild.jpg') in relative Pfade ('verzeichnis/bild.jpg') um, dann sollten die nun auch funktionieren.

    Viele Grüße,
    Stefan

  11. #11
    Profi-Benutzer Avatar von SchwarzeGenetik
    Registriert seit
    02.08.2007
    Ort
    Dresden
    Alter
    39
    Beiträge
    465
    cool, danke dir stefan!

  12. #12
    Dazu habe ich noch eine Frage.

    Wie muss man denn den Virtual-Host im Zusammenhang mit SSL und mod-rewrite konfigurieren damit das Zertifikat auch als solches anerkannt wird?

    Wenn ich es nämlich so blind übernehme sagt Apache mir dass +FollowSymlinks nicht aktiviert ist. Setze ich ein entsprechenden Eintrag läuft mod-rewrite aber das Zertifikat wird nicht anerkannt, was ohne mod-rewrite jedoch bestens läuft.

    Hat da eventuell jemand einen Tipp?
    Der Himmel wird erst schön durch ein paar Wolken!

  13. #13
    Benutzer
    Registriert seit
    07.10.2006
    Ort
    Bayreuth
    Beiträge
    44
    Hm, hast du darauf geachtet, das ich https ohne www. und http mit www. gemacht habe? Entsprechend muss der VHost und das Zertifikat eingerichtet werden.

    cu tb.
    www.pg-forum.de: das deutschsprachige PostgeSQL Forum
    HowTo: vBulletin mit https absichern

  14. #14
    Zitat Zitat von Xandrian Beitrag anzeigen
    Hm, hast du darauf geachtet, das ich https ohne www. und http mit www. gemacht habe? Entsprechend muss der VHost und das Zertifikat eingerichtet werden.

    cu tb.
    Mein Zertifikat ist auf www.domain.tld ausgestellt, also habe ich es auch entsprechend so abgewandelt und die Seite aufgerufen.

    Folgendes habe ich zusätzlich in den Virtualhost mit dem ich SSL für die Domain steuer eingetragen:

    Code:
     <Directory "/home/user/html">
      AllowOverride FileInfo
      Options +FollowSymlinks
     </Directory>
    Damit tut mod-rewrite was es soll, aber das (definiv gültige) SSL-Zertifikat wird nicht mehr anerkannt.

    Muss ich da noch etwas mehr hinzufügen?
    Der Himmel wird erst schön durch ein paar Wolken!

  15. #15
    Benutzer
    Registriert seit
    07.10.2006
    Ort
    Bayreuth
    Beiträge
    44
    Hm,... kannst du mal deine VHost hier posten?
    www.pg-forum.de: das deutschsprachige PostgeSQL Forum
    HowTo: vBulletin mit https absichern

  16. #16
    Hat etwas gedauert, aber hier ist der komplette Eintrag:

    Code:
    <VirtualHost 111.222.333.444:443>
      ServerName www.example.com
      DocumentRoot /home/user/html
      SuexecUserGroup user group
      ScriptAlias /cgi-bin/ /home/user/html/cgi-bin/
    
     <Directory "/home/user/html">
      AllowOverride FileInfo
      Options +FollowSymlinks
     </Directory>
    
      <IfModule mod_python.c>
        <Files ~ "\.py$">
          AddHandler python-program .py
          PythonHandler mod_python.publisher
        </Files>
      </IfModule>
      suPHP_ConfigPath /etc/apache2/usw
    
      <IfModule mod_ssl.c>
        SSLEngine on
        SSLCertificateFile /ssl/cert.crt
        SSLCACertificateFile /ssl/cert.ca
        SSLCertificateKeyFile /ssl/cert.key
        SetEnvIf User-Agent ".*MSIE.*" \
          nokeepalive ssl-unclean-shutdown \
          downgrade-1.0 force-response-1.0
        <Files ~ "\.(cgi|shtml|phtml|php3?)$">
          SSLOptions +StdEnvVars
        </Files>
         <Directory "/home/user/html/cgi-bin">
          SSLOptions +StdEnvVars
        </Directory>
      </IfModule>
    </VirtualHost>
    Edit:
    Auf wundersame Weise funktioniert es jetzt nachdem ich den Eintrag mehrfach rausgenommen, wieder eingefügt und den Apache neugeladen habe.

    Noch eine andere Frage:
    Warum funktioniert das eigentlich nicht mit der login.php?
    Geändert von charokee (17.11.2007 um 20:56 Uhr)
    Der Himmel wird erst schön durch ein paar Wolken!

  17. #17
    Benutzer
    Registriert seit
    07.10.2006
    Ort
    Bayreuth
    Beiträge
    44
    Vielleicht einmal den reload des Indianers vergessen?

    Naja weil ein rewrite die POST Informationen vergisst. Deswegen geht das nicht...

    cu tb.
    www.pg-forum.de: das deutschsprachige PostgeSQL Forum
    HowTo: vBulletin mit https absichern

  18. #18
    Zitat Zitat von Xandrian Beitrag anzeigen
    Naja weil ein rewrite die POST Informationen vergisst. Deswegen geht das nicht...
    Schade, hätte auch gerne einen verschlüsselten Login realisiert, aber dazu muss ich dann wohl doch das ganze Board über https:// laufen lassen. Dabei finde ich deinen Ansatz nur bestimmte Bereiche zu verschlüsseln gut.
    Der Himmel wird erst schön durch ein paar Wolken!

  19. #19
    Benutzer
    Registriert seit
    07.10.2006
    Ort
    Bayreuth
    Beiträge
    44
    Nun da gibt es sicher auch eine Lösung - mir fehlt nur die Zeit, um mich darum zu kümmern

    cu tb.
    www.pg-forum.de: das deutschsprachige PostgeSQL Forum
    HowTo: vBulletin mit https absichern

  20. #20
    vB-Guru
    Registriert seit
    20.12.2001
    Ort
    MS-Land
    Alter
    40
    Beiträge
    3.372
    Blog-Einträge
    5
    Funktioniert das nicht mit beiden unter www?

    Hat das schon mal jemand getestet der vbSEO hat?
    immer ans Backup denken!
    _________________________________

    Blutschwerter.de - Das Rollenspielportal für Pen&Paper

Seite 1 von 4 1234 LetzteLetzte

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •