복붙노트

[SPRING] 어떻게하면 cleencrypt SSL 인증서를 설정하고 Spring Boot 애플리케이션에서 사용할 수 있습니까?

SPRING

어떻게하면 cleencrypt SSL 인증서를 설정하고 Spring Boot 애플리케이션에서 사용할 수 있습니까?

저는 서버 보안에 익숙하지 않아서 이것에 관해 많이 알지는 못하지만, HTTPS를 사용하기 위해 Digital Ocean Droplet에서 실행중인 Spring Boot Application을 얻어야합니다.

내 생각은 암호화 된 인증서를 등록한 다음이를 사용하도록 Spring에 알려주는 것이다.

그러나, 어떻게 해야할지 모르겠다.

감사.

해결법

  1. ==============================

    1.Let 's Encrypt and Spring Boot에 관한 2 개의 블로그 게시물을 썼습니다.

    Let 's Encrypt and Spring Boot에 관한 2 개의 블로그 게시물을 썼습니다.

    요약하면 다음과 같습니다.

    상황은 /etc/letsencrypt/live/example.com에 생성됩니다. 스프링 부트는 PKCS # 12 형식의 파일을 필요로합니다. 키를 PKCS # 12 키 스토어 (예 : OpenSSL 사용)로 변환해야한다는 의미입니다. 다음과 같이 :

    PKCS12가있는 keystore.p12 파일이 이제 /etc/letsencrypt/live/example.com에 생성됩니다.

    이제 스프링 부트 애플리케이션을 설정할 차례입니다. application.properties 파일을 열고 다음 등록 정보를 입력하십시오.

    server.port=8443
    security.require-ssl=true
    server.ssl.key-store=/etc/letsencrypt/live/example.com/keystore.p12
    server.ssl.key-store-password=<your-password>
    server.ssl.keyStoreType=PKCS12
    server.ssl.keyAlias=tomcat
    

    자세한 내용 및 설명은 내 블로그 게시물을 참조하십시오.

  2. ==============================

    2.1 단계 : git에서 certbot 다운로드

    1 단계 : git에서 certbot 다운로드

    도메인 주소가 가리키는 서버에서 Let 's Encrypt의 소스 코드를 가져와야합니다. 이 단계는 몇 분이 소요될 수 있습니다.

    참고 : Python 2.7.8 (또는 그 이상)을 미리 설치해야합니다.

    2 단계 : 인증서 및 개인 키 생성

    터미널에서 다음 명령을 실행하면 암호화를 통해 인증서와 개인 키가 생성됩니다.

    참고 : 키는 /etc/letsencrypt/live/example.com 디렉토리에 생성됩니다.

    3 단계 : PEM 파일에서 PKCS12 파일 생성

    PEM 파일을 PKCS12 버전으로 변환하려면 다음을 수행하십시오. /etc/letsencrypt/live/example.com으로 이동하십시오. 다음과 같이 터미널에서 OpenSSL을 사용하여 키를 PKCS12로 변환하십시오.

    내보내기 암호 입력 :

    확인 - 내보내기 비밀번호 입력 :

    (참고 : - 한 번에 한 줄 씩 작성하고 Enter 키를 누릅니다)

    Step4 : 스프링 부트 애플리케이션의 설정

    'application.properties'파일을 엽니 다. 이 구성을 거기에 놓으십시오.

  3. ==============================

    3.또 다른 옵션은 Spring Boot Starter ACME를 사용하는 것입니다.

    또 다른 옵션은 Spring Boot Starter ACME를 사용하는 것입니다.

    https://github.com/creactiviti/spring-boot-starter-acme

    ACME (Automatic Certificate Management Environment)는 LetsEncrypt가 자동으로 인증서를 발급하기 위해 사용하는 프로토콜입니다.

  4. ==============================

    4.파일은 다음과 같아야합니다.

    파일은 다음과 같아야합니다.

     server.port = 8443
     server.ssl.key-store = classpath:sample.jks
     server.ssl.key-store-password = secret
     server.ssl.key-password = password
    
  5. ==============================

    5.스프링 부트 webflux의 경우 속성 구성이 변경되었습니다.

    스프링 부트 webflux의 경우 속성 구성이 변경되었습니다.

    server.port=443
    
    server.ssl.enabled=true//the changed line
    server.ssl.keyAlias=netty
    server.ssl.key-store=path
    server.ssl.key-store-password=password
    server.ssl.keyStoreType=PKCS12
    
  6. from https://stackoverflow.com/questions/36991562/how-can-i-set-up-a-letsencrypt-ssl-certificate-and-use-it-in-a-spring-boot-appli by cc-by-sa and MIT license