GetHTTPS ist ein browserbasierter ACME-Client, der kostenlose HTTPS-Zertifikate von Let’s Encrypt ausstellt — ohne serverseitige Komponente.
Die Architektur
Traditionelle ACME-Clients wie certbot und acme.sh laufen auf Ihrem Server. Sie benötigen Shell-Zugang, Root-Berechtigungen und oft einen Cronjob zur Erneuerung von Zertifikaten.
GetHTTPS verfolgt einen anderen Ansatz: Alles läuft in Ihrem Browser-Tab. Ihr privater Schlüssel wird lokal mit der Web Crypto API generiert und verlässt niemals die Seite.
So funktioniert der Ablauf
-
Kontoschlüssel-Generierung — Ein P-256-ECDSA-Schlüsselpaar wird im Browser mit
crypto.subtle.generateKey()erstellt. Dieser Schlüssel identifiziert Ihr ACME-Konto. -
Kontoregistrierung — Der öffentliche Schlüssel wird bei der ACME-API von Let’s Encrypt registriert. Jede Anfrage wird mit JWS (JSON Web Signature) signiert.
-
Auftragserstellung — Sie legen fest, welche Hostnamen das Zertifikat abdecken soll. Let’s Encrypt gibt eine Reihe von Challenges zurück.
-
Challenge-Abschluss — Für jeden Hostnamen schließen Sie entweder eine HTTP-01-Challenge ab (Datei auf dem Server ablegen) oder eine DNS-01-Challenge (TXT-Eintrag hinzufügen).
-
Vorabprüfung — Bevor GetHTTPS an Let’s Encrypt übermittelt, prüft es Ihre Challenge-Konfiguration aus dem öffentlichen Internet. Dies erkennt Tippfehler, bevor sie einen Rate-Limit-Versuch verbrauchen.
-
Zertifikatsausstellung — Sobald die Challenges bestanden sind, wird ein separates Zertifikatsschlüsselpaar generiert, ein CSR (Certificate Signing Request) erstellt und der Auftrag finalisiert. Let’s Encrypt gibt die signierte Zertifikatskette zurück.
-
Download — Sie laden
privkey.pem,cert.pem,chain.pemundfullchain.pemherunter und setzen sie auf Ihrem Server ein.
Sicherheitsmodell
GetHTTPS ist so konzipiert, dass selbst wir nicht auf Ihre privaten Schlüssel zugreifen können.
Private Schlüssel verlassen niemals den Browser
Jeder Schlüssel — Kontoschlüssel und Zertifikatsschlüssel — wird mit der Web Crypto API des Browsers (crypto.subtle.generateKey()) generiert. Das Schlüsselmaterial existiert nur im JavaScript-Speicher Ihres Tabs. Es wird niemals auf die Festplatte serialisiert, niemals über das Netzwerk gesendet und ist niemals für gethttps.com zugänglich.
Wenn Sie auf „Download” klicken, wird die PEM-Datei clientseitig mit URL.createObjectURL() erstellt und Ihnen als Download übergeben. Die Datei geht vom Speicher in Ihr Dateisystem — sie berührt niemals unsere Server.
Kein Backend, kein Proxy
Traditionelle Zertifikats-Tools führen einen serverseitigen Prozess aus. Das bedeutet, dass Ihr privater Schlüssel auf einem Server existiert, den Sie möglicherweise nicht kontrollieren.
GetHTTPS hat kein Backend. Die Website besteht aus statischem HTML, CSS und JavaScript. Ihr Browser sendet ACME-Anfragen direkt an acme-v02.api.letsencrypt.org. Wir proxyen, inspizieren oder protokollieren diese Anfragen nicht.
Was wir sehen und was nicht
| Wir sehen | Wir sehen nicht | |
|---|---|---|
| Ihre privaten Schlüssel | ✗ | ✓ (nur im Browser) |
| Ihre Domains | ✗ | ✓ (direkt an Let’s Encrypt gesendet) |
| ACME-Anfragen | ✗ | ✓ (Browser → Let’s Encrypt) |
| Challenge-Token | ✗ | ✓ (im Browser generiert) |
| Ihre E-Mail | ✗ | ✓ (nur an Let’s Encrypt gesendet) |
DNS-Vorabprüfungen
Für die Challenge-Verifizierung fragt GetHTTPS öffentliche DNS-Resolver ab (über die DNS-over-HTTPS-API von Google). Diese Abfragen enthalten nur den Domainnamen und den erwarteten TXT-Eintrag — keine privaten Daten.
Bedrohungsmodell
Wovor wir schützen:
- Schlüsseldiebstahl durch Server-Kompromittierung (kein Server zum Kompromittieren)
- Man-in-the-Middle bei Schlüsselmaterial (Schlüssel verlassen niemals den Tab)
- Datensammlung (standardmäßig keine Analytik, kein Backend-Logging)
Wovor wir nicht schützen:
- Ein kompromittierter Browser (wenn Ihr Browser kompromittiert ist, gibt es keinen Schutz)
- Ein kompromittierter DNS-Anbieter (wenn ein Angreifer Ihr DNS kontrolliert, kann er Zertifikate über DNS-01 ausstellen)
- Browser-Erweiterungen, die den Seitenspeicher lesen können
Was ist mit Erneuerungen?
Let’s-Encrypt-Zertifikate sind 90 Tage gültig. Zur Erneuerung kommen Sie zurück und durchlaufen den gleichen Ablauf. Ihr Kontoschlüssel (falls gespeichert) wird erkannt, sodass Sie sich nicht erneut registrieren müssen.
Für automatische Erneuerungen ziehen Sie einen serverseitigen Client wie certbot in Betracht. GetHTTPS ist für die manuelle, einmalige Ausstellung konzipiert, bei der Sie volle Kontrolle und Transparenz wünschen.