Sinusbot mit SSL-Zertifikat absichern

Der Sinusbot ist wirklich eine feine Sache. Wer einen Teamspeak-Server sein eigen nennt, setzt oftmals auch auf den Sinusbot. Man kann Musik damit einspielen, einen Status anzeigen lassen, inaktive User verschieben und noch viel mehr. So wie die meisten Dienste sonst abgesichert werden möchten wir den Sinusbot ebenfalls gerne mit einem SSL-Zertifikat gesichert haben.

Im Idealfall kann man hier sein bereits vorhandenes Zertifikat nutzen. Ich in meinen Fall habe das ganze mit einem Skript gelöst. Wie das geht, zeige ich hier. Zuerst aber werde ich die benötigten Files kopieren und die “Config.ini” anpassen.

Zuerst begebe ich mich in das Verzeichnis, in welches mein SSL-Zertifikat liegt. Dieses Zertifikat nutze ich u.a. für meinen Webserver. Sollte noch keins existieren, so kann man sich mit dem Certbot eines erstellen lassen.
Mein Zertifikat liegt hier: “/etc/letsencrypt/live/domain/”. Ich nehme jetzt die “cert.pem” und kopiere sie in das Verzeichnis, in dem mein Sinusbot liegt. 

root@ubuntu-2gb-nbg1-1 ~ # cp "/etc/letsencrypt/live/domain/cert.pem"  "/opt/sinusbot/ssl/SSLCertFile.cer"

mit diesen Befehl kopiere ich die “cert.pem” in das Verzeichnis “/opt/sinusbot/ssl” und benenne die Datei beim kopieren in “SSLCertFile.cer” um.
Das gleiche mache ich mit der “privkey.pem” auch. Ich kopiere sie in das neue Verzeichnis und benenne sie in “SSLKeyFile.key” um.

root@ubuntu-2gb-nbg1-1 ~ # cp "/etc/letsencrypt/live/domain/privkey.pem"  "/opt/sinusbot/ssl/SSLKeyFile.key"

Jetzt geben wir dem User “sinusbot”, welcher auch in der Gruppe “sinusbot” ist, die Berechtigungen zum lesen der Dateien.

root@ubuntu-2gb-nbg1-1 ~ # chown sinusbot:sinusbot "/opt/sinusbot/ssl/SSLCertFile.cer"
root@ubuntu-2gb-nbg1-1 ~ # chown sinusbot:sinusbot "/opt/sinusbot/ssl/SSLKeyFile.key"

Jetzt rufe ich die “config.ini” auf und trage alle nötigen Daten ein.

root@ubuntu-2gb-nbg1-1 ~ # nano "/opt/sinusbot/config.ini"
UseSSL = true
SSLKeyFile = "/opt/sinusbot/ssl/SSLKeyFile.key"
SSLCertFile = "/opt/sinusbot/ssl/SSLCertFile.cer"

Ich speichere die “config.ini” ab und starte mit

root@ubuntu-2gb-nbg1-1 ~ # sudo service sinusbot restart

den Sinusbot neu. Jetzt sollte das Zertifikat eingebunden sein und die Seite via “https://IP:8087” aufrufbar sein.

Jetzt ist es bei den Letsencrypt Zertifikaten aber in der so, dass diese alle drei Monate erneuert werden möchten, da sie sonst ihre Gültigkeit verlieren. Damit ich nicht alle drei Monate die Files wieder rüber kopieren muss habe ich ein kleines Skript geschrieben, welches ich dann als Cronjob laufen lasse. Ich erstelle die Datei

root@ubuntu-2gb-nbg1-1 ~ # nano "/opt/sinusbot/sinusbot_cert.sh"

und fülle sie mit den Daten, die ich oben schon mal angegeben habe:

rm -rf "/opt/sinusbot/ssl/SSLCertFile.cer"
rm -rf "/opt/sinusbot/ssl/SSLKeyFile.key"
cp "/etc/letsencrypt/live/domain/cert.pem"  "/opt/sinusbot/ssl/SSLCertFile.cer"
cp "/etc/letsencrypt/live/domain/privkey.pem"  "/opt/sinusbot/ssl/SSLKeyFile.key"
chown sinusbot:sinusbot "/opt/sinusbot/ssl/SSLCertFile.cer"
chown sinusbot:sinusbot "/opt/sinusbot/ssl/SSLKeyFile.key"

sudo service sinusbot restart

Das Skript mache ich jetzt ausführbar mit

root@ubuntu-2gb-nbg1-1 ~ # chmod +x "/opt/sinusbot/sinusbot_cert.sh"

Ich pack das Skript jetzt noch in den Cronjob. Das Zertifikat (wenn es neu erzeugt wird) wird nun automatisch aktuell gehalten.

Danke fürs Teilen!