Konfiguracja HTTPS w aplikacji SpringBoot

Konfiguracja HTTPS w aplikacji SpringBoot

Szyfrowanie komunikacji przy pomocy SSL jest obecnie standard. Dlatego też dość często pojawia się potrzeba konfiguracji SSL w aplikacjach webowych. W dzisiejszym wpisie zaprezentuję jak łatwa w SpringBoot jest konfiguracja kanału bezpiecznego HTTPS

1. Przykładowa aplikacja

Aby zaprezentować konfigurację SSL w aplikacji SpringBoot posłużę się poniższym przykładem HelloWorld. Po uruchomieniu i wejściu na http://localhost:8080/ możesz zauważyć, że strona nie jest zabezpieczona(mówi już o tym sam protokół http). Po zmianie protokołu na https strona nie otwiera się.

package com.bettercoding.lab;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
public class WebApp {
    public static void main(String[] args) {
        SpringApplication.run(WebApp.class, args);
    }

    @RestController
    public static class HelloController {

        @RequestMapping("/")
        public String index() {
            return "Greetings from Spring Boot!";
        }
    }
}

2. Konfiguracja SSL w aplikacji SpringBoot

Cała konfiguracja SSL w aplikacji SpringBoot sprowadza się do przygotowania lub wygenerowania keystore’a z kluczem oraz certyfikatem, a następnie skonfigurowania aplikacji aby przy jego pomocy zaszyfrowała ruch sieciowy.

2.1 Wygenerownaie keystore’a/import do keystore

Do wygenerowania certyfikatu możesz użyć narzędzia keytool dostępnego w JDK. Poniższe polecenie pozwala na wygenerowanie pary klucz/certyfikat, oraz zapisanie ich w keystore tmp_keystore.jks.

keytool -genkey -keyalg RSA -alias selfsigned -keystore tmp_keystore.jks -storepass password -validity 360 -keysize 2048

2.2 Konfiguracja aplikacji SpringBoot

Ostatnim krokiem jest skonfigurowanie odpowiednich ustawień w aplikacji. W ty celu pliku application.properties dodaj poniższe wpisy. Oczywiście plik application.properties, to tylko jedna z metod konfiguracji. Więcej na ten temat znajdziesz na https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html

server.port=443
server.ssl.key-alias=selfsigned
server.ssl.key-password=password
server.ssl.key-store=src/main/resources/tmp_keystore.jks
server.ssl.key-store-provider=SUN
server.ssl.key-store-password=password
server.ssl.key-store-type=JKS

Następnie po uruchomieniu aplikacji oraz wejściu na https://localhost:443 możesz sprawdzić, że strona jest poprawnie zabezpieczona za pomocą SSL.

Na zakończenie mam jeszcze jedną prośbę.

Jeśli pomogłem Ci rozwiązać Twój problem, to udostępnij proszę ten post. Dzięki temu będę miał okazję trafić do szerszej grupy odbirców. Dziękuję

Leave a Reply

avatar
  Subscribe  
Notify of
Close Menu