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.

Jeśli chciałbyś mnie wesprzeć w tym co robię:
  • możesz udostępnić ten wpis np. na swoim twitterze lub facebooku
  • możesz również dołączyć do listy darczyńców udzielając drobnego wsparcia, które przeznaczę na dalszy rozwój bloga

Leave a Reply

avatar
  Subscribe  
Notify of
Close Menu