>  기사  >  Java  >  SpringBoot의 HTTPS 구성을 구현하는 방법

SpringBoot의 HTTPS 구성을 구현하는 방법

王林
王林앞으로
2023-05-27 16:29:061440검색

HTTPS 구성

보안이 우수하기 때문에 개발 과정에서 HTTPS가 점점 더 널리 사용되고 있습니다. WeChat 공식 계정, 소규모 프로그램 등의 개발은 HTTPS를 사용하여 완료해야 합니다. 개인 개발자의 경우 아직은 HTTPS 인증서 가격이 다소 비싼 편입니다. 국내 클라우드 서버 제조사 중 일부는 무료로 HTTPS 인증서를 제공하고 있으며, 하나의 계정으로 여러 개를 신청할 수 있습니다. 하지만 jdkbin 디렉터리에는 Java 디지털 인증서 관리 도구인 keytool이 제공되어 있으며, 이 도구를 사용하여 직접 디지털 인증서를 생성할 수 있습니다.

keytool -genkey -alias tomcathttps -keyalg RSA -keysize 2048 -keystore sang.p12 -validity 365
  • genkey는 인증서를 생성한다는 의미입니다. 새 열쇠.

  • alias는 키스토어의 별칭을 나타냅니다.

  • keyalg는 사용된 암호화 알고리즘이 비대칭 암호화 알고리즘인 RSA임을 나타냅니다.

  • keysize는 키의 길이를 나타냅니다.

  • keystore는 생성된 키의 저장 위치를 ​​나타냅니다.

  • validity는 키의 유효 시간(일)을 나타냅니다.

프롬프트에 따라 cmd 창에서 명령을 실행할 때 비밀번호 또는 비밀번호 및 기타 정보를 입력해야 실행 프로세스가 완료됩니다. 명령이 실행되면 현재 사용자 디렉터리에 sang.p12라는 파일이 생성됩니다. 이 파일을 프로젝트의 루트 디렉터리에 복사한 후 application.properties에서 다음 구성을 수행합니다.

# key-store表示密钥文件名。
server.ssl.key-store=sang.p12 
# key-alias表示密钥别名。
server.ssl.key-alias=tomcathttps
#key-store-password 就是在cmd命令执行过程中输入的密码。
server.ssl.key-store-password=123456

구성이 성공하면 프로젝트를 시작하고 브라우저에 "https:/localhost:8080"을 입력하여 결과를 확인하세요. 생성된 인증서는 브라우저에서 인증되지 않으므로 신뢰를 추가하거나 계속 진행해야 합니다. 아래 그림을 참고해주세요.

SpringBoot의 HTTPS 구성을 구현하는 방법

성공한 작업의 결과는 그림과 같습니다

SpringBoot의 HTTPS 구성을 구현하는 방법

이때 HTTP를 통해 인터페이스에 접근하면 그림과 같이 접근이 실패하게 됩니다

SpringBoot의 HTTPS 구성을 구현하는 방법

원본 재작성 : Spring Boot는 구성을 지원하지 않습니다. NET에서 HTTP와 HTTPS를 모두 활성화합니다. 이때 HTTP 요청을 HTTPS 요청으로 리디렉션하도록 요청 리디렉션을 구성할 수 있습니다. 구성은 다음과 같습니다

@Configuration
public class TomcatConfig {
    @Bean
    TomcatServletWebServerFactory tomcatServletWebServerFactory() {
        TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory() {
            @Override
            protected void postProcessContext(Context context) {
                SecurityConstraint constraint = new SecurityConstraint();
                constraint.setUserConstraint("CONFIDENTIAL");
                SecurityCollection collection = new SecurityCollection();
                collection.addPattern("/*");
                constraint.addCollection(collection);
                context.addConstraint(constraint);
            }
        };
        factory.addAdditionalTomcatConnectors(createTomcatConnector());
        return factory;
    }

    private Connector createTomcatConnector() {
        Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
        connector.setScheme("http");
        connector.setPort(8080);
        connector.setSecure(false);
        connector.setRedirectPort(8081);
        return connector;
    }
}

여기서 먼저 TomcatServletWebServerFactory를 구성한 다음 Tomcat에 커넥터를 추가하고(포트 8080 수신) 요청을 8081로 전달합니다.
구성이 완료된 후 브라우저에 "http://localhost:8080/"을 입력하면 자동으로 https://localhost:8081/로 리디렉션됩니다.

위 내용은 SpringBoot의 HTTPS 구성을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제