betacode

Установите бесплатный сертификат Let's Encrypt SSL для Spring Boot

  1. Цель статьи
  2. Регистрация SSL сертификата
  3. Преобразование в формат PKCS-12
  4. Конфигурация Spring Boot

1. Цель статьи

Let's Encrypt - это автоматическая система получения бесплатных SSL сертификатов предоставляемая компанией Internet Security Research Group (ISRG). Let's Encrypt предоставляет два типа сертификатов: SSL для стандартных доменных имен и Wildcard SSL для стандартных доменов и поддоменов (subdomain).
В этой статье я расскажу вам, как создать SSL Let's Encrypt сертификатдля вашего доменного имени и развернуть его для приложения Spring Boot.
Инструкции будут выполнены в операционной системе Ubuntu, потому что в этой системе доступны такие инструменты, как openssl и keytool. Однако вы можете работать с операционной системой Windows, если установите эти инструменты.
Хотя SSL сертификат, предоставляемый Let's Encrypt, является бесплатным, но он имеет очень короткий срок действия, а именно 90 дней, поэтому через каждые 90 дней вы должны заново создавать сертификат SSL. Но, слава Богу, шаги по воссозданию сертификата очень просты и не отнимают у вас много времени.

2. Регистрация SSL сертификата

Существует несколько способов регистрации сертификатов Let's Encrypt, но я настоятельно рекомендую вам зарегистрироваться по адресу sslforfree.com. Этот веб-сайт позволяет вам создать учетную запись с вашей электронной почтой и зарегистрировать SSL сертификат для вашего доменного имени. Когда нужно повторно создать сертификат, вам нужно всего лишь кратко нажать кнопку мыши, чтобы загрузить новый сертификат со сроком действия 90 дней.
Прежде всего, на sslforfree.com, введите свое доменное имя и нажмите кнопку "Create Free SSL Certificate".
Веб-сайт sslforfree попросит вас создать учетную запись, если вы не сделали этого раньше.
Затем вы должны убедиться, что вы действительно являетесь владельцем этого доменного имени, и предоставить информацию о вашем доменном имени (ваша страна, город, название компании и т. д.)
Наконец, Let's Encrypt позволит вам загрузить файл ZIP, содержащий 3 файла.
Примечание: для веб-приложений, написанных на языке Java, необходимо выбрать Tomcat для "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. Преобразование в формат PKCS-12

На Ubuntu, распакуйте ZIP архив, который вы скачали. Например:
  • /home/{username}/mydomain.com
Java приложения могут открыть сертификаты, когда они находятся в формате PKCS-12 (*.p12), поэтому вы должны преобразовать извлеченные файлы в этот формат.
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
После выполнения вышеуказанных двух команд у вас будет 2 новых файла, как показано ниже:

4. Конфигурация Spring Boot

В проектеSpring Boot, откройте application.properties для настройки 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
Разверните свой веб-сайт и получите доступ к нему с помощью HTTPS:
  • https://mydomain.com
Примечание: Если вы упаковываете приложение Spring Boot как JAR (или WAR) и запускаете его непосредственно через COMMAND, вам, возможно, не нужно ничего добавлять в application.properties, просто запустите приложение следующим образом:
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

Руководства Spring Boot

Show More