Skip to content

Nerdkram: EtherCalc via SSL Reverse Proxy

Weil man in den zahlreichen Anleitungen, wie man ethercalc mit nginx hinter einen Reverse Proxy setzt nicht enthalten ist, wie auf man diesen SSL verschlüsselt zugreifen kann dachte ich mir, ich mach das und blogge das auch gleich mal. Erstens weil ich ein Gedächtnis wie ein Sieb habe, zweitens als Fingerübung und drittens, weil das vielleicht jemand brauchen kann. Als SSL Zertifikat verwende ich das freie von Let's encrypt.

Die "# managed by certbot" Zeilen werden durch den certbot automatisch hinzugefügt. Also diese nicht einfach kopieren ;-) Die Konfguration in dem Beispiel setzt weiterhin voraus, daß ethercalc bereits installiert ist und auf Port 8000 lauscht. Zudem ist eine (sub)Domain ethercalc.domainname.de angenommen. Diese ist durch die eigene Domain zu ersetzen.

Zum Herumspielen habe ich hier einen ethercalc Server aufgesetzt. Nach 144 Stunden = 6 Tagen werden inaktive Spreadsheets gelöscht - also vorher lokal sichern!
Für die Aufrechterhaltung, Pflege und Datensicherung gebe ich keinerlei Gewähr!

Bei mayfirst.org ist eine virtual host Konfiguration verfügbar.

upstream ethercalc {
  server 127.0.0.1:8000; # Auf Port 8000 lauscht in diesem Beispiel ethercalc
}

server {
    server_name ethercalc.domainname.de;

    location / {
        proxy_pass http://ethercalc/;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $http_host;

        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forward-Proto http;
        proxy_set_header X-Nginx-Proxy true;

        proxy_redirect off;
    }

    listen 443 ssl; # managed by Certbot - über diesen Standard port für https ist der Reverse Proxy erreichbar
    ssl_certificate /etc/letsencrypt/live/ethercalc.domainname.de/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/ethercalc.domainname.de/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}

server {
    if ($host = ethercalc.domainname.de) {
        return 301 https://$host$request_uri;
    } # managed by Certbot

    listen 80;
    server_name ethercalc.domainname.de;
    return 404; # managed by Certbot

}

Ich freue mich über eine Unterstützung via Paypal über Liberapay oder auch ein paar Satoshis an: bc1qgthwzrszw48lw9jl8zjg94fp6w6xfkw0929vg0


cronjob