Comment configurer un certificat SSL letsencrypt et l'utiliser dans une application de démarrage?
je suis novice dans la sécurisation d'un serveur donc je ne sais pas grand chose à ce sujet mais je dois obtenir mon application de démarrage de printemps qui est en cours d'exécution sur une gouttelette D'océan numérique pour utiliser HTTPS.
mon idée est d'enregistrer un certificat letsencrypt et de dire à Spring de l'utiliser.
Cependant, je n'ai aucune idée de comment faire cela.
Merci.
5 réponses
j'ai écrit 2 billets de blog sur Let's Encrypt et Botte De Printemps.
- délivrance d'un certificat.application de démarrage à ressort sécurisée par un certificat de chiffrement
- renouveler un certificat. chiffrons le renouvellement des certificats: pour la botte de printemps
En bref, les étapes sont comme suit:
- Tirer chiffrons client (certbot).
générer un certificat pour votre domaine (par ex. example.com)
./certbot-auto certonly -a standalone -d example.com -d www.example.com
les Choses sont générés dans /etc/letsencrypt/live/example.com
. Le démarrage du printemps attend le fichier PKCS # 12 formaté. Cela signifie que vous devez convertir les clés en une touche PKCS#12 (par exemple en utilisant OpenSSL). Comme suit:
- ouvert
/etc/letsencrypt/live/example.com
répertoire. openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out keystore.p12 -name tomcat -CAfile chain.pem -caname root
Le fichier fichier de clés.p12 avec PKCS12 est maintenant généré par /etc/letsencrypt/live/example.com
.
il est temps de configurer votre application de démarrage. Ouvrez l'application.fichier de propriétés et y mettre les propriétés suivantes:
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
Lu ma blog pour plus de détails et remarques.
Étape 1: Télécharger certbot de git
vous devez récupérer le code source de Let's Encrypt sur votre serveur vers lequel votre adresse de domaine pointe. Cette étape peut prendre quelques minutes.
$ git clone https://github.com/certbot/certbot
$ cd certbot
$ ./ certbot-auto -- help
Remarque: Python 2.7.8 (ou plus haut) doit être installé préalablement.
Step2: génère des certificats et une clé privée
en exécutant la commande suivante dans votre terminal, chiffrons génère des certificats et une clé privée pour vous.
$ ./certbot-auto certonly -autonome \
-d example.com -d example.com
Remarque: Les clés sont générées dans /etc/letsencrypt/live/example.répertoire com
Step3: générer des fichiers PKCS12 à partir de PEM Les fichiers
pour convertir les fichiers PEM en version PKCS12:
Allez dans /etc/letsencrypt/live / example.
$ openssl pkcs12-export -dans fullchain.pem \
-inkey privkey.pem \ -out keystore.p12 \ -name tomcat \ -CAfile chain.pem \ -caname root
Entrer Le Mot De Passe D'Exportation:
Verifier - Entrer Exporter Mot De Passe:
(Note: Écriture seule ligne à la fois et appuyez sur entrée)
Étape 4: Configuration du ressort Démarrage De L'Application
ouvrez votre ' application.propriétés' Mettez cette configuration là.
le serveur.port = 8443 sécurité.nécessitent-ssl=true
server.ssl.key-store=/etc/letsencrypt/live/example.com/keystore.p12
le serveur.SSL.clé-magasin-mot de passe= mot de passe
le serveur.SSL.keyStoreType= PKCS12
le serveur.SSL.keyAlias= tomcat
une autre option est d'utiliser le démarrage à ressort ACME:
https://github.com/creactiviti/spring-boot-starter-acme
ACME (Automatic Certificate Management Environment) it protocole utilisé par LetsEncrypt pour délivrer automatiquement des certs.
- obtenir un certificat SSL de letsencrypt
- L'ajouter dans un keystore en utilisant le
keytool
commande en Java - configurez votre application de printemps pour utiliser le keystore généré ci-dessus
le fichier devrait ressembler à:
server.port = 8443
server.ssl.key-store = classpath:sample.jks
server.ssl.key-store-password = secret
server.ssl.key-password = password
pour webflux, la configuration des propriétés a changé
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