HTTPS — это защищенная версия HTTP, разработанная для обеспечения безопасности транспортного уровня (TLS) [преемника Secure Sockets Layer (SSL)], значка замка в адресной строке, который устанавливает зашифрованное соединение между веб-сервером и браузером. HTTPS шифрует каждый пакет данных для безопасной передачи и защищает конфиденциальные данные от перехватчика или хакера.
Вы можете реализовать HTTPS, установив сертификаты SSL в своем веб-приложении. Вы можете использовать либо сертификат, выданный доверенными центрами сертификации (CA), либо самоподписанный сертификат.
Для целей разработки и обучения вы можете использовать самоподписанный сертификат. Вы должны сгенерировать самоподписанный сертификат с помощью Java Keytool.
Самоподписанный сертификат
Вы можете создавать сертификаты с помощью Keytool, расположенного в папке bin JDK. Например, C: \ Program Files \ Java \ jdk1.8.0_161 \ bin. Доступны два самоподписанных сертификата, как показано ниже.
- JKS (Java Key Store) легко доступен из ваших собственных приложений Java. JKS ограничен только Java и недоступен извне Java.
- PKCS12: Стандарты криптографии с открытым ключом, с другой стороны, являются не зависящим от языка способом хранения зашифрованных закрытых ключей и сертификатов и существуют достаточно долго, чтобы его можно было использовать практически везде.
Вам также может понравиться: Все о Spring Boot [Учебники и статьи]
Как создать самоподписанный сертификат
Введите cmd в поле поиска в Windows, чтобы найти командную строку, и щелкните правой кнопкой мыши по Запуск от имени администратора. Используйте команду keytool, как показано ниже. Вы можете указать название сертификата, которое вы хотите, как показано ниже.
C: \ Program Files \ Java \ jdk1.8.0_161 \ bin>
keytool -genkeypair -alias selfsigned_localhost_sslserver -keyalg RSA -keysize 2048 -storetype PKCS12 -keystore ebininfosoft-ssl-key.p12 -validity 3650
Самозаверяющий сертификат защищен паролем. Введите пароль и другие данные, как показано на скриншоте ниже.
После того, как вы выполнили вышеуказанные шаги, ключ PKS будет создан и сохранен в папке JDK Bin.
Применение SSL к Spring Boot Application
- Скопируйте ключ ebininfosoft-ssl из папки bin JDK и поместите его в папку src / main / resources вашего загрузочного приложения Spring.
- Добавьте информацию о ключе SSL в application.properties, как показано ниже.
Джава
1
#SSL Key Info
2
security.require-ssl=true
3
server.ssl.key-store-password=India
4
server.ssl.key-store=src/main/resources/ebininfosoft-ssl-key.p12
5
server.ssl.key-store-type=PKCS12
pom.xml
Ниже приведен файл POM.xml, который я использовал для указания зависимости Spring Boot.
XML
xxxxxxxxxx
1
<dependencies>
2
<dependency>
3
<groupId>org.springframework.boot</groupId>
4
<artifactId>spring-boot-starter-web</artifactId>
5
</dependency>
6
<dependency>
7
<groupId>org.springframework.boot</groupId>
8
<artifactId>spring-boot-starter-data-jpa</artifactId>
9
</dependency>
10
<dependency>
11
<groupId>com.h2database</groupId>
12
<artifactId>h2</artifactId>
13
<scope>runtime</scope>
14
</dependency>
15
<dependency>
16
<groupId>org.springframework.boot</groupId>
17
<artifactId>spring-boot-starter-test</artifactId>
18
<scope>test</scope>
19
<exclusions>
20
<exclusion>
21
<groupId>org.junit.vintage</groupId>
22
<artifactId>junit-vintage-engine</artifactId>
23
</exclusion>
24
</exclusions>
25
</dependency>
26
</dependencies>
контроллер
Простой HomeController, используемый для демонстрации запроса HTTPS Get для вашей справки.
Джава
xxxxxxxxxx
1
import org.springframework.web.bind.annotation.RequestMapping;
2
import org.springframework.web.bind.annotation.RequestMethod;
3
import org.springframework.web.bind.annotation.RestController;
4
5
6
"/home") (
7
public class HomeController {
8
9
value = "/", method = RequestMethod.GET) (
10
public String hello() {
11
return "welcome to spring boot application";
12
}
13
}
Если вы нажмете на конечную точку отдыха ( http: // localhost: 8080 / home / ) без HTTPS, вы получите следующее сообщение в браузере.
«Плохой запрос»
Эта комбинация хоста и порта требует TLS.
Если вы нажмете URL с помощью HTTPS ( https: // localhost: 8080 / home / ), вы получите ответ, как показано ниже.
«Добро пожаловать в приложение Spring Boot.»
Я поместил исходный код для весенней загрузки HTTPS вместе с операцией CRUD, используя H2 в GitHub. Пожалуйста, ознакомьтесь с кодом Java от GitHub https://github.com/ebinezargnan/Billing
Дальнейшее чтение
Создание вашего первого весеннего загрузочного веб-приложения