devstory

Installer un certificat SSL gratuit Let's Encrypt pour Spring Boot

  1. Objectif de l'article
  2. Inscription au certificat SSL
  3. Convertissement au format PKCS-12
  4. Configuration de Spring Boot

1. Objectif de l'article

Let’s Encrypt est un fournisseur de certificat SSL gratuit développé par Internet Security Research Group (ISRG). Let's Encrypt fournit deux types de certificats dont SSL pour les noms de domaine standard et Wildcard SSL pour les domaines standard et les sous-domaines (subdomain).
Dans cet article, je vous aide à créer une inscription de certificat SSL Let's Encrypt pour votre nom de domaine et le déployer pour l'application Spring Boot.
Les instructeurs seront effectués sur le système d'exploitation Ubuntu car il est muni des outils tels que openssl et keytool. Cependant, il est possible de travailler avec le système d'exploitation Windows si vous installez ces outils.
Bien que le certifiat SSL est fourni gratuitement par Let's Encrypt, sa période de validité est courte, à savoir 90 jours. Par conséquent, vous devez recréer le certificat SSL tous les 90 jours. Mais heureusement, les étapes de recréer le certificat sont très simples et ne prennent pas beaucoup de temps.
Vous seriez probablement intéressé:

2. Inscription au certificat SSL

Il y a plusieurs façons de créer le certificat Let's Encrypt, mais je vous recommande à vous inscrire à sslforfree.com. Ce site web permet de créer un compte avec votre adresse mail et d'inscrire un certificat SSL pour votre nom de domaine. Si vous devez recréer un certificat, il suffit de faire une simple clique pour télécharger un nouveau certificat pour une durée de 90 jours.
Sur sslforfree.com, entrer votre nom de domaine et cliquer "Create Free SSL Certificate".
Ce site web sslforfree vous demandera de créer un compte:
Ensuite, vous devez prouver que vous êtes propriétaire du nom du domaine et déclarer les informations de votre nom de domaine, tels que votre pays, la ville, le nom de l'entreprise, etc.
Enfin, Let's Encrypt permet de télécharger un fichier ZIP contenant trois fichiers.
Remarque: Pour les applications du web écrites par le language Java, il faut sélectionner Tomcat pour "Server Type".
  • certificate.crt: Certificate generated for your domain name.
  • private.key: Private key of your certificate.
  • ca_bundle.crt: Intermediate CA (Certificate Authority)

3. Convertissement au format PKCS-12

Extraire le fichier ZIP que vous avez téléchargé dans n'importe quel dossier dans Ubuntu. Par exemple:
  • /home/{username}/mydomain.com
Les applications Java peuvent lire les certificats lorsqu'ils sont au format PKCS-12 (*.p12). Il faut donc convertir vos fichiers à ce format.
openssl pkcs12 -export -in /home/tran/mydomain.com/certificate.crt -inkey /home/tran/mydomain.com/private.key -name mydomain -out /home/tran/mydomain.com/mydomain_com.p12


keytool -importkeystore -deststorepass YourPassword -destkeystore /home/tran/mydomain.com/mydomain_com.jks -srckeystore /home/tran/mydomain.com/mydomain_com.p12 -srcstoretype PKCS12
Après avoir terminé ces deux commandes, vous avez deux nouveaux fichiers affichés comme ci-dessous:

4. Configuration de Spring Boot

Dans le projet Spring Boot, ouvrir le fichier application.properties pour configurer SSL.
application.properties
server.port=443

server.ssl.key-store=file:/home/tran/mydomain.com/mydomain_com.p12

server.ssl.key-store-password=YourPasswoord

server.ssl.key-alias=mydomain
Déployer votre site web et y accéder avec HTTPS:
  • https://mydomain.com
Remarque: Si vous emballer l'application Spring Boot au format JAR (ou WAR) et directement exécuter via COMMAND, ce n'est pas nécessaire d'ajouter quoi que ce soit à application.properties. Il suffit d'exécuter l'application comme ci-dessous:
java -jar mydomaintest-1.0.war --server.port=443 -Dserver.ssl.key-store=file:/home/tran/mydomain.com/mydomain_com.jks -Dserver.ssl.key-store-password=YourPassword -Dserver.ssl.key-alias=mydomain

Tutoriels Spring Boot

Show More