Ich fand eine sehr einfache Lösung mit dem Standalone Modus.
DER CERTBOT Client installieren (empfohlen von Encrypt Lassen Sie uns)
(go to the directory where you want to install the certbot client)
git clone https://github.com/certbot/certbot
cd certbot
./certbot-auto --help`
AUSGABE ZERTIFIKAT (ERSTE MAL)
N. B. Dieser Vorgang geschieht durch den Port 80, also im Falle Ihrer Go App lauscht auf Port 80, muss es vor der Ausführung dieses Befehls abgeschaltet werden (was sehr schnell zu laufen, übrigens)
./certbot-auto certonly --standalone-supported-challenges http-01 -d www.yourdomain.com
ADD SSL LISTENER IN YOUR GO CODE
http.ListenAndServeTLS(":443", "/etc/letsencrypt/live/www.yourdomain.com/fullchain.pem", "/etc/letsencrypt/live/www.yourdomain.com/privkey.pem", nil)
Fertig!
TO RENEW ZERTIFIKAT (Zertifikate verfallen nach 90 Tagen)
N. B.Sie können dies entweder manuell ausführen (Sie erhalten eine E-Mail mehrere Tage vor Ablauf des Zertifikats) oder eine Crontab einrichten
Wenn Ihre Go-App nicht mehr auf Port 80 hört, kann Ihre Go-App weiter ausgeführt werden diesen Befehl ausführen:
./certbot-auto renew --standalone
wenn Ihr Go App hört noch auf Port 80, können Sie die Befehle angeben, die Go-App zu beenden und neu starten:
./certbot-auto renew --standalone --pre-hook "command to stop Go app" --post-hook "command to start Go app"
für die komplette docum entation des Certbot Befehle: https://certbot.eff.org/docs/using.html
Verwenden Sie https://caddyserver.com/ - was das für Sie tut (gibt ein Zertifikat und Proxies an Ihre Anwendung aus). – elithrar
Was ist die Frage: Wie erstellt man ein Zertifikat für einen Go-Webserver? Wie konfiguriere ich den Go-Webserver für die Verwendung des Zertifikats/privaten Schlüssels? Andere ? –
Gos eigenes 'crypto/tls'-Paket kann Zertifikate (öffentliche und private Schlüssel) aus PEM-formatierten Dateien laden. Ein Tool, das von Let's Encrypt zur Verfügung gestellt wird (jetzt scheint es eher von EFF gefördert zu werden), ist in der Lage, Ihnen diese PEM-formatierte Datei zu liefern. Also: 1) Lesen Sie eine Anleitung zum Erhalten des Zertifikats von Let's Encrypt und tun Sie das; 2) Sobald Sie dieses Zertifikat haben, lesen Sie, wie man 'crypto/tls' liest und es in Ihren Servern implementiert; 3) Lassen Sie Ihre Server Ihr Zertifikat lesen. Sie sind fertig. – kostix