Quassel IRC und Let’s Encrypt unter Debian

Wer weechat/screen bzw. irssi kennt, dem ist das Prinzip geläufig: ein kleiner Server ist dauerhaft mit dem IRC verbunden, der Nutzer verbindet sich darauf und hat somit die Möglichkeit eines Backlogs um Chats auch später nachlesen zu können. Aus Gründen der Faulheit und weil ich lieber grafische Clients als terminalbasierte habe, verwende ich zu diesem Zweck den Client „Quassel„. Besser gesagt: die Kombination aus Quassel Core und Quassel Client, letzteren sowohl am PC als auch auf mobilen Android-Geräten. Auch unter Windows 7 funktioniert das übrigens einwandfrei!

Die Ausgangssituation

Quassel Core erstellt bei der Installation direkt ein selbst-signiertes Zertifikat für die Transportverschlüsselung über SSL. Das ist okay, mit der – optional einmaligen – Meldung dazu im Client kann ich gut leben. Nun hat der kleine VPS aber für den darauf laufenden Webserver seit kurzem ein gültiges Zertifikat von Let’s Encrypt. Warum also nicht das auch für Quassel nutzen?

So geht’s!

Ich gehe davon aus, dass du Debian auf deinem System nutzt. Bei anderen Distributionen sollte das aber ähnlich bis identisch funktionieren.

  1. Als erstes überprüfst du, ob dein Quassel Core normal gestartet wurde oder als Systemdienst läuft. Wenn dein init System dir folgende Ausgabe liefert,
    # service quasselcore status
     quasselcore.service - LSB: distributed IRC client using a central core component
     Loaded: loaded (/etc/init.d/quasselcore)
     Active: active (running)...
  2. Je nachdem, wie du Quassel serverseitig betreibst, liegt das bestehende Zertifikat unter:
    • ~/.config/quassel-irc.org/ (Nutzer)
    • /var/lib/quassel/ (Systemdienst)
  3. Das existierende Zertifikat sichern wir lieber mal, man weiß ja nie:
    # cp /var/lib/quassel/quasselCert.pem /var/lib/quassel/quasselCert.bkup
  4. Jetzt brauchst du ein PEM Bundle aus dem private key und den fullchain. Dazu fügst du beide Dateien zusammen. In meinem Fall lagen die Dateien im Unterordner für die entsprechende Domain.
    # cd /etc/letsencrypt/live/name.der.seite/
    # cat privkey.pem fullchain.pem >> /var/lib/quasselCert.pem
  5. Abschließend startest du den Quassel Dienst neu – ein einfacher reload genügt nicht!
    # service quassel restart

Das war’s schon. Ab sofort läuft alles wie bisher – nur eben mit gültigem SSL-Zertifikat.
Ach ja: wer lieber Weechat mag, der legt das PEM Bundle einfach unter ~/.weechat/ssl ab und lädt mit /relay sslcertkey das neu Zertifikat.