xenforo HTTPS mit kostenlosem Zertifikat einrichten

Dieses Thema im Forum "XenForo Tipps & Tricks" wurde erstellt von rugk, 18. Juli 2015.

  1. rugk

    rugk Aktives Mitglied Lizenznehmer

    34
    28
    18. Juli 2015
    In unserem Computer-Security-Forum Computerguard.de sind wir auch kürzlich auf HTTPS umgezogen. Für ein Security-Forum war (und ist) HTTPS natürlich Pflicht bei uns. Nach einigen Diskussionen haben wir uns dagegen entschieden ein SSL-Zertifikat zu kaufen und haben das ganze mit einem kostenlosem umgesetzt.
    Ich würde jedoch auch jedem anderen Forum-Admin raten auf HTTPS umzuziehen, auch wenn das Forum nicht speziell etwas mit Security zu tun hat. Dank der Möglichkeit zur Verwendung eines kostenlosen SSL-Zertifikats ist dies auch kostengünstig und im besten Fall sogar kostenlos erledigbar.

    Ich erkläre in diesem Thread, wie wir mit einem kostenlosen Zertifikat auf HTTPS umgestellt haben und zuvor kurz, warum man überhaupt auf HTTPS umziehen sollte.

    Warum HTTPS?
    Darum. Dies ist ein englischer Artikel, aber dennoch fasst er die Argumente für HTTPS sehr gut zusammen. Wer es noch kürzer mag, hier eine Aufzählung der Hauptgründe meinerseits:
    • Es schützt die Privatsphäre der Nutzer und erschwert Massenüberwachung.
    • Es schützt davor, dass die Passwörter von Forum-Nutzern, auch den der Forum-Admins (für's ACP), gestohlen werden.
    • Google bezieht in das Suchmaschinenranking mit ein, ob eine Webseite HTTPS benutzt.
    Warum nicht nur auf der Login-Seite?
    Einerseits hat dies in diesem Fall natürlich keinen SEO-Effeckt, andererseits ist es auch sicherheitstechnisch eine schlechte Idee. Zum einen ist bei XenForo ja praktisch jede Seite eine Login-Seite, da immer am oberen Rand das Login-Panel ist, zum anderen kann - selbst wenn das Passwort nicht abgefangen wird - auch (auf nicht-HTTPS-Seiten) der Session-Cookie abgefangen werden, mit dem man sich dann gegenüber dem Server als den Nutzer ausgeben kann, von dem der Cookie abgefangen wurde.

    [IMHO] Warum kein kostenpflichtiges Zertifkat?
    Ich bin der Ansicht, dass einfache Verschlüsselung bzw. Sicherheit nichts kosten sollte. Der Aufwand für die CAs ist ebenfalls immer der gleiche - sie müssen nur eine kleine E-Mail senden oder ein Dokument von der Webseite aufrufen.
    Es gibt auch keinen Grund ein kostenpflichtiges Zertifikat (abgesehen von EV oder anderen speziellen Zertifikaten) einem kostenlosen vorzuziehen.


    1. Voraussetzungen prüfen bzw. schaffen
    Zunächst ist es wichtig zu prüfen ob man bei dem Hoster eigene SSL-Zertifikate hochladen und SSL verwenden kann. Dafür ist in manchen Fällen ein Hoster-Upgrade notwendig, welches natürlich Geld kosten kann - dies muss allerdings dann auf jeden Fall beim Umzug zu HTTPS gemacht werden.
    Falls man Root-Zugriff auf den Server hat, geht dies natürlich sehr viel leichter, da man da ja alles nötige machen kann. Eine einfache Möglichkeit dies auf einen Root-Server umzusetzen werde ich weiter unten erwähnen.

    2. Zertifikat offline erstellen
    Obwohl auch einige CAs dies anbieten, erstellt man das eigene Zertifikat am Besten offline. Dies kann man auf allen Linux-Systemen mit OpenSSL machen.
    Um beispielsweise ein Zertifikat für eine DE-Domain zu erstellen führt man folgendes aus:
    Code:
    openssl req -nodes -newkey rsa:4096 -sha256 -keyout 'myprivatekey.key' -out 'mypublickey.csr' -subj '/CN=XXXX.de/C=DE'
    (XXXX muss natürlich mit der verwendeten Domain ersetzt werden)
    Dies erstellt ein 4096bit Schlüsselpaar. .key ist dabei der private Schlüssel, welcher geheim gehalten werden sollte; .csr ist das sogenannte Certificate Signing Request, welches den Public Key enthält. Diese Datei müssen wir später an die CA übermitteln.

    3. Kostenlos SSL-Zertifkat signieren lassen

    Gratis SSL-Zertifikate gibt es (leider) aktuell von wenigen CAs. Allerdings waren uns im Admin-Team vor allem zwei bekannt: StartSSL (von Startcom) und WoSign.
    Beide bieten normale SSL-Zertifikate (also keine Wildcard oder EV-Zertifikate) gratis an. WoSign bietet als chinesische CA sogar eine Laufzeit von bis zu 3 Jahren eines solchen Zertifikates an.
    Dennoch haben wir uns schließlich für StartSSL entschieden. Eine bebilderte Anleitung aller folgenden Schritte findet ihr auch hier.
    Um das Zertifikat zu erhalten, muss man zunächst einen Account erstellen (Sign-Up rechts). Danach bestätigt man seine E-Mail-Adresse und erhält von StartSSL ein Client-Zertifikat. Dies muss man in den Browser importieren, denn dies wird - statt einem Passwort - zum späteren Einloggen benötigt.
    Nun verifiziert man entweder mit einer E-Mail den Domainnamen. Man muss also beispielsweise eine E-Mail an webmaster@mydomain_example.com empfangen und einen gesendeten Code eingeben, um zu Verifizieren, dass man Zugriff auf die Domain hat.
    Nun kann man dort den CSR hineinkopieren und man erhält ein Zertifikat der CA. Bei StartSSL sollte man unbedingt auch noch das mit verlinkte Intermediate-Zeretifikat downloaden, denn ohne dieses akzeptieren die Browser das eigene Zertifikat nicht.

    4. Webserver konfigurieren
    Bei Shared Hostern konfiguriert man den Webserver meistens über ein Webinterface. Dort findet man dann entsprechende Stellen um den eigenen privaten Schlüssel, den eigenen öffentlichen Schlüssel, das von der CA signierte Zertifikat und alle Intermediate-Zertifikate (auch Brückenzertifikate o.ä. genannt).
    Bei Root-Zugriff ist dies etwas schwerer, da man da noch eigene SSL-Einstellungen festlegen muss. Am Besten nutzt man dafür Mozillas SSL-Config-Generator und liest sich weitere Lektüre zu diesem Thema durch - denn dies ist schließlich ziemlich wichtig.

    Alternative: Einfache, kostenlose Einrichtung auf Root-Servern
    Mit Let's Encrypt soll dies dann in Zukunft sehr viel leichter gehen. In dem Projekt, welches von Mozilla in Zusammenarbeit mit einigen Partnern umgesetzt wird, muss man nur eine Software auf dem Webserver installieren und mit nur einem Befehl wird dies alles automatisch vollzogen - vollkommen gratis wohlgemerkt.
    Ab dem 14. September soll dies dann für jeden Webadmin möglich sein.

    5. HTTPS-Umleitung
    Damit die Nutzer auch zur HTTPS-Version umgeleitet werden, trägt man nun noch zwei Zeilen in die .htaccess ein:
    Code:
    RewriteCond %{HTTPS} !=on
    RewriteRule ^(.*)$ https://www.XXXX.de/$1 [L,R=301]
    Mehr Infos und Anleitungen für andere Webserver dazu hier.

    Außerdem sollte man noch den sogenannten HSTS-Header (HTTP Strict Transport Security) senden, der den Browser bei weiteren Besuchen anweist, nur noch die HTTPS-Version der Seite zu nutzen und nicht die unsichere HTTP-Version zu nutzen.
    Mehr Information dazu findet ihr hier. Ein Beispiel für Apache ist diese Zeile:
    Code:
    Header add Strict-Transport-Security: "max-age=15768000;includeSubdomains"
    Hinweis: "15768000" sind Sekunden und sind umgerechnet ein halbes Jahr. Dies zeigt die Zeit, in der der Header akzeptiert wird, und in der ihr HTTPS bereitstellen müsst, sonst kann auf eure Webseite nicht zugegriffen werden. Bevor ihr diesen Header also in die Einstellungen einfügt, seid euch sicher, dass ihr HTTPS über einen langen Zeitraum unterstützen könnt. (Wenn ihr HTTPS dann wirklich entfernen wollt, setzt zunächst max-age auf 0 und stellt HTTPS noch eine Weile bereit. Wenn alle Nutzer diesen neuen Header empfangen haben, könnt ihr dann HTTPS entfernen.)

    6. Finale Überprüfung
    Wenn alles fertig ist, sollte man das ganze in jedem Fall allerdings nochmal überprüfen lassen. Dazu lässt man den Test von SSLLabs durchlaufen. Bekommt man eine Bewertung unter A sollte man sich seine Konfiguration nochmal genau anschauen.
    Ist man bei einem Share-Hoster hat man auf die Konfiguration allerdings kaum Einfluss. In diesem Fall kann man sich nur beim Hoster beschweren - im Extremfall kann man natürlich auch den Hoster wechseln oder auf einen Root-Server umziehen, auf dem man die TLS-Konfiguration selber machen darf.

    Fertig
    Wenn man dann fertig ist, kann man dies als allerletzten Schritt noch im Forum verkünden.

    PS: Möglicherweise ist euch aufgefallen, dass in unserem Security-Forum noch ein paar weitere Sicherheitsfeatures genutzt wurden. Darüber kann ich, wenn ihr wollt, noch einen Thread/Post mit technischen Details schreiben. Bei Computerguard.de findet ihr ja schon mal eine grundlegende Erklärung des Prinzips.
     
    Maddrax, McAtze, otto und 2 anderen gefällt das.
  2. DRaver

    DRaver Moderator Lizenznehmer

    450
    216
    10. Juli 2015
    Danke für den sehr informativem Artikel. Ich möchte noch ergänzen, dass die Seo Auswirkung leider nur gering sind. Ausserdem: Wer seine Webseite über Werbung finanziert, könnte Probleme bekommen, weil die externen Banner meistens nicht über Ssl geladen werden.
     
  3. otto

    otto AD Lizenznehmer

    2.699
    1.087
    7. Juli 2015
    LW-Meister
    Leipzig
    Man lernt nie aus - ein wirklich guter Beitrag. Danke. :like

    Ich überlege schon länger meine Foren umzustellen, hab es aber bisher eher gescheut nach dem Motto: never touch a running system. ;) Wenn man aber liest wie es geht, nimmt es einem den Schrecken schon ein Stück weit vor diesem Schritt. :)
     
    DRaver gefällt das.
  4. au lait

    au lait Administrator Lizenznehmer

    1.901
    932
    7. Juli 2015
    Singen
    bei vB (früher) war es ein wenig aufwendiger; heute und vor allem mit XF ist es keine Hexerei mehr.

    Wichtig ist aber das man "
    Bild- und Link-Proxy
    Proxy für Bilder verwenden"
    diese Option einschaltet! Denn sonst gibt es ärger durch Bilder die zb durch external ImgaeHoster per bbCode eingebunden.
     
  5. rugk

    rugk Aktives Mitglied Lizenznehmer

    34
    28
    18. Juli 2015
    Stimmt, zumindest Bilder-Proxy ist sinnvoll, damit alle Bilder ohne Fehlermeldung angezeigt werden. Aber auch ohne diesen Proxy werden die Bilder angezeigt - es gibt dann (wenn der externe Image-Hoster kein HTTPS verwendet) nur ein paar Mixed Content-Fehlermeldungen. Mit dem Proxy kann man das natürlich gut vermeiden.
     
  6. Mr.Gibbs

    Mr.Gibbs ist öfters hier Lizenznehmer

    191
    45
    11. Juli 2015
    könnte man das z.b. bei all-inkl umsetzten?
     
  7. rugk

    rugk Aktives Mitglied Lizenznehmer

    34
    28
    18. Juli 2015
    Ja, bis 3. alles so wie ich es beschrieben habe. Bei 4. musst du dann in die All Inkl-Weboberfläche gehen (wie hier gezeigt bis Schritt 2) und dort die benötigten Daten hinein kopieren.
    In diesem Fall musst du das erste Feld "CSR" leer lassen und nur die folgenden Felder befüllen. ("KEY" für den privaten Schlüssel, "CRT" für dein Zertifikat von StartSSL und das Brückenzertifikat)

    Mehr Informationen gibt es auch hier. (ab Post #13)
     
  8. Lemminator

    Lemminator Mitglied Lizenznehmer

    88
    23
    14. Juli 2015
    ja geht definitiv ... ich bin dort :) und habe dies zum laufen bekommen
     
    au lait gefällt das.
  9. au lait

    au lait Administrator Lizenznehmer

    1.901
    932
    7. Juli 2015
    Singen
  10. otto

    otto AD Lizenznehmer

    2.699
    1.087
    7. Juli 2015
    LW-Meister
    Leipzig
    Mit Plesk 12.5 und Lets Encrypt Extension ist es kaum mehr als 1 Klick und kostenlos dazu. :like
     
    Maestro2k5, McAtze und rugk gefällt das.
  11. Maestro2k5

    Maestro2k5 Administrator Lizenznehmer

    886
    361
    7. Juli 2015
    Erfurt
    Ja und läuft gut.
     
  12. otto

    otto AD Lizenznehmer

    2.699
    1.087
    7. Juli 2015
    LW-Meister
    Leipzig
    Was mir noch bisl Kopfzerbrechen bereitet ist, wie ich auch meine Emails mit SSL Verschlüsselung ausstatte (aktuell START/TLS) - Tipps? Mail Server ist Postfix und Dovcoat.
     
  13. Maestro2k5

    Maestro2k5 Administrator Lizenznehmer

    886
    361
    7. Juli 2015
    Erfurt
    Das ist eine gute Frage. Ich recherchiere mal etwas mit.
     
  14. otto

    otto AD Lizenznehmer

    2.699
    1.087
    7. Juli 2015
    LW-Meister
    Leipzig
    Und?

    Ich hab noch ein anderes Problem. Nach einem ersten erfologreichen Test, führt die Installation jedes weiteren LE Zertifikates auf meinen anderen Domains zu dem Effekt, das wenn mit https:// aufgerufen statt der Seite die Server default page angezeigt wird.

    Ich mein man kann bei LE über Plesk ja nun eigentlich nichts mehr falsch machen... hat dennoch jemand ne Idee?
     
  15. Maestro2k5

    Maestro2k5 Administrator Lizenznehmer

    886
    361
    7. Juli 2015
    Erfurt
    Zwecks der Mails habe ich auch nix gefunden.
     
  16. Maestro2k5

    Maestro2k5 Administrator Lizenznehmer

    886
    361
    7. Juli 2015
    Erfurt

    Nutzt du auch die aktuelle Erweiterung von LE, also ich habe 3 Domains abgesichert und das geht.
     
  17. otto

    otto AD Lizenznehmer

    2.699
    1.087
    7. Juli 2015
    LW-Meister
    Leipzig
    Ich hab die am laufen, die auch www. mit absichert. Wo sieht man die Version? Wird die bei Updates nicht automatisch von Odin geuppt?
     
  18. Maestro2k5

    Maestro2k5 Administrator Lizenznehmer

    886
    361
    7. Juli 2015
    Erfurt
    Linke Seite Erweiterungen und dort Katalog darin kannst du das updaten ich have Version 1.5.
     
  19. otto

    otto AD Lizenznehmer

    2.699
    1.087
    7. Juli 2015
    LW-Meister
    Leipzig
    upload_2016-3-20_13-55-38.png
    Daran liegts nicht... :denk2:
     
  20. otto

    otto AD Lizenznehmer

    2.699
    1.087
    7. Juli 2015
    LW-Meister
    Leipzig
    Frage: Hab eines meiner Foren mit Lets Encrypt Zertifikat nun auf https umgestellt. Läuft. Aber bei bestehenden Themen zählt er mich wegen der Smilies an, die ja ale noch als http://... Bilder eingebunden sind.

    Was sollte ich tun um das zu beheben? :denk
     
OK Mehr Informationen

Diese Seite verwendet Cookies. Mit Deinem Klick auf OK, stimmst Du dem setzen von Cookies zu. Andernfalls werden keine gesetzt, was die Funktionalität einschränkt.