wake-up-neo.com

Wie kann ich ein letsencrypt SSL-Zertifikat einrichten und in einer Spring Boot-Anwendung verwenden?

Ich bin neu im Bereich der Sicherung eines Servers, daher weiß ich nicht viel darüber, aber ich brauche meine Spring Boot-Anwendung, die auf einem Digital Ocean Droplet ausgeführt wird, um HTTPS zu verwenden. 

Meine Idee ist, ein Letsencrypt-Zertifikat zu registrieren und Spring dann anzuweisen, es zu verwenden. 

Ich habe jedoch keine Ahnung, wie das geht. 

Vielen Dank. 

25
BrandenS

Ich schrieb 2 Blogbeiträge über Let's Encrypt und Spring Boot.

  1. Ausstellung eines Zertifikats.Spring Boot-Anwendung durch ein verschlüsseltes Zertifikat geschützt
  2. Zertifikat erneuern. Let 's Encrypt Certificate Renewal: für Spring Boot

Kurz gesagt, die Schritte lauten wie folgt:

  1. Ziehen Sie den Let's Encrypt-Client (certbot).
  2. Zertifikat für Ihre Domain generieren (z. B. example.com)

    ./certbot-auto certonly -a standalone -d example.com -d www.example.com

Dinge werden in /etc/letsencrypt/live/example.com generiert. Spring Boot erwartet eine PKCS # 12-formatierte Datei. Dies bedeutet, dass Sie die Schlüssel in einen PKCS # 12-Keystore konvertieren müssen (z. B. mit OpenSSL). Wie folgt:

  1. Öffnen Sie das Verzeichnis /etc/letsencrypt/live/example.com.
  2. openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out keystore.p12 -name Tomcat -CAfile chain.pem -caname root

Die Datei keystore.p12 mit PKCS12 wird jetzt in /etc/letsencrypt/live/example.com generiert.

Es ist an der Zeit, Ihre Spring Boot-Anwendung zu konfigurieren. Öffnen Sie die Datei application.properties und legen Sie dort die folgenden Eigenschaften fest:

server.port=8443
security.require-ssl=true
server.ssl.key-store=/etc/letsencrypt/live/example.com/keystore.p12
server.ssl.key-store-password=<your-password>
server.ssl.keyStoreType=PKCS12
server.ssl.keyAlias=Tomcat

Lesen Sie meinen Blogbeitrag für weitere Details und Anmerkungen. 

44
Emad Van Ben

Schritt 1: certbot von git herunterladen 

Sie müssen den Quellcode von Let's Encrypt auf Ihrem Server abrufen, auf den Ihre Domain-Adresse verweist. Dieser Schritt kann einige Minuten dauern.

$ git clone https://github.com/certbot/certbot

$ cd certbot

$ ./certbot-auto --help

Anmerkung: Python 2.7.8 (oder höher) sollte zuvor installiert werden.

Step2: erzeugt Zertifikate und einen privaten Schlüssel

Wenn Sie den folgenden Befehl in Ihrem Terminal ausführen, generiert Let's Encrypt Zertifikate und einen privaten Schlüssel für Sie.

$ ./certbot-auto certonly -a Standalone \

-d example.com -d example.com

Anmerkung: Schlüssel werden im Verzeichnis /etc/letsencrypt/live/example.com generiert

Schritt 3: PKCS12-Dateien aus PEM-Dateien generieren

So konvertieren Sie die PEM-Dateien in die PKCS12-Version: .__ Gehen Sie zu /etc/letsencrypt/live/example.comconvertieren Sie die Schlüssel mithilfe von OpenSSL im Terminal wie folgt in PKCS12.

$ openssl pkcs12 -export -in fullchain.pem \

       -inkey privkey.pem \

           -out keystore.p12 \

       -name Tomcat \

       -CAfile chain.pem \

       -caname root

Exportkennwort eingeben: 

Bestätigen - Geben Sie das Exportkennwort ein: 

(Hinweis: - Schreiben Sie jeweils eine Zeile und drücken Sie die Eingabetaste.)

Step4: Konfiguration der Spring Boot-Anwendung

Öffnen Sie Ihr 'application.properties' Legen Sie diese Konfiguration dort ab.

server.port = 8443 security.require-ssl = true

server.ssl.key-store =/etc/letsencrypt/live/example.com/keystore.p12

server.ssl.key-store-password = Passwort

server.ssl.keyStoreType = PKCS12

server.ssl.keyAlias ​​= Tomcat

9

Eine weitere Option ist die Verwendung des Spring Boot Starter ACME:

https://github.com/creactiviti/spring-boot-starter-acme

ACME (Automatic Certificate Management Environment) ist das Protokoll, das von LetsEncrypt zur automatischen Ausgabe von Zertifikaten verwendet wird. 

2
acohen
  1. Holen Sie sich ein SSL-Zertifikat von letsencrypt
  2. Fügen Sie es mit dem Befehl keytool in Java in einen Keystore ein
  3. Konfigurieren Sie Ihre Spring-Anwendung so, dass der oben generierte Keystore verwendet wird

Die Datei sollte folgendermaßen aussehen:

 server.port = 8443
 server.ssl.key-store = classpath:sample.jks
 server.ssl.key-store-password = secret
 server.ssl.key-password = password
0
AlBlue

Für Spring Boot Webflux wurde die Konfiguration der Eigenschaften geändert

server.port=443

server.ssl.enabled=true//the changed line
server.ssl.keyAlias=netty
server.ssl.key-store=path
server.ssl.key-store-password=password
server.ssl.keyStoreType=PKCS12
0
ahll