Certyfikat SSL w aplikacji Spring Boot

W pliku certificate.crt.txt znajduje się certyfikat SSL, privateKey.key to klucz prywatny. Pliki te pobrałem ze swojego hostingu na którym utrzymuje domenę. Przykładowo na nazwa.pl znajdziesz je w panelu administratora w sekcji Domeny/Certyfikaty SSL.

Za pomocą openssl możesz wygenerować keystore, który następnie podepniemy do aplikacji.

openssl pkcs12 -export 
  -in certificate.crt.txt 
  -inkey privateKey.key 
  -certfile certificate.crt.txt 
  -out keystore.jks

Podczas generowania zakładasz hasło do tworzonego pliku keystore.jks. Załóżmy, że będzie to ciąg znaków secret.

Jedyną rzeczą jaką pozostaje, to dodać wygenerowany plik do zasobów – katalog resources oraz skonfigurować parametry uruchomieniowe aplikacji.

Poniżej plik application.properties

server.port=443
server.ssl.key-store-type=JKS
server.ssl.key-store=classpath:keystore.jks
server.ssl.key-store-password=secret
server.ssl.key-alias=1

Możesz również włączyć protokół HTTP2 oraz kompresję:

server.compression.enabled=true
server.compression.mime-types=application/json,application/xml,text/html,text/xml,text/plain,text/css,application/javascript
server.compression.min-response-size=2048
server.http2.enabled=true