programing

SSL을 사용하도록 설정하기 위해 Spring Boot에 .crt 추가

starjava 2023. 8. 25. 23:09
반응형

SSL을 사용하도록 설정하기 위해 Spring Boot에 .crt 추가

저는 이것을 해본 적이 없으며 대부분의 튜토리얼에서는 .crt 파일을 처리하는 방법에 대해 언급하지 않습니다.

GoDaddy에서 SSL 인증서를 구입하여 다운로드 시 Tomcat을 플랫폼으로 선택하였습니다.zip 파일에는 3개의 파일이 포함되어 있습니다.

dea08asdjakjawl.crt  
gd_bundle-g1-g1.crt  
gdig.crt.pem  

Cent에서 실행 중인 Spring Boot 애플리케이션(Tomcat이 내장된 포트 80)이 있습니다.OS7 server. (서버는 Digital Ocean에서 실행되며 도메인이 할당되어 있으며 단순 http로 작동합니다.)

https://something.com 으로 바꾸고 싶습니다.

모든 튜토리얼에서 이를 위해 .jks 또는 .p12 파일이 있어야 한다고 제안했지만 .crt 파일을 이 파일로 변환할 수 없었습니다.게다가 2.crt 파일 중에서 .jks/.p12로 변환해야 할 파일이 무엇인지 잘 모르겠습니다.

애플리케이션.yaml에 추가했지만 도움이 되지 않았습니다.

server:    
  port: 443  
  ssl:  
    enabled: true  
    key-alias: server  
    key-store: "cert.crt"  
    key-store-password: "***"  

이 인증서를 사용하여 HTTPS 쿼리를 수락하도록 실행 중인 Spring Boot 프로젝트를 변경하려면 어떻게 해야 합니까?

따라서 올바른 절차는 다음과 같습니다.

대신 Java Key Store를 사용하여 CSR을 처음부터 다시 만들어야 했습니다.

keytool -genkey -alias mydomain -keyalg RSA -keystore KeyStore.jks -keysize 2048

새 CSR:

keytool -certreq -alias mydomain -keystore KeyStore.jks -file mydomain.csr

새 .cer 파일을 생성하려면 인증서 공급자에게 다시 전송해야 합니다.그래서 그들은 언급된 2.cer 파일을 다시 보내주었습니다. "bundle" 파일은 중간 .cer 파일이었고, 저는 다음과 같이 추가해야 했습니다.

keytool -import -trustcacerts -alias intermediate -file intermediate.crt -keystore KeyStore.jks

그런 다음 실제 "긴 이름의" .cer 파일은 다음과 같습니다.

keytool -import -trustcacerts -alias mydomain -file mydomain.crt -keystore KeyStore.jks

그러면 이것은 다음과 같이 p12로 변환될 수 있습니다.

 keytool -importkeystore -srckeystore <MY_KEYSTORE.jks> -destkeystore <MY_FILE.p12> -srcstoretype JKS -deststoretype PKCS12 -deststorepass <PASSWORD_PKCS12> -srcalias <ALIAS_SRC> -destalias <ALIAS_DEST>

마지막으로 application.properties는 추가 줄이 필요했고 다음과 같이 되었습니다.

server.port=443
server.ssl.enabled=true
security.require-ssl=true
server.ssl.key-store=keystore.p12
server.ssl.key-store-password=password
server.ssl.key-alias=domain
server.ssl.key-password=password

그리고 그것은 마침내 작동하고 있습니다.

예전에 Spring Boot 작업할 때 이런 문제가 있었습니다.인증 기관에서 보낸 폴더는 다음으로 구성됩니다.

  • domain-name.crt(도메인 이름에 대해 생성된 인증서 파일)
  • bundle.crt(CA 루트 및/또는 중간 인증서 참조 포함).CA 루트 및 중간 인증서에 대한 자세한 내용은 여기를 클릭하십시오.

Spring Boot은 의 인증서 파일만 인식합니다.JKS / PKCS12.전환해야 합니다.CRT 파일을 에 저장합니다.JKS 형식 파일입니다.다음은 단계입니다.

  1. 인증서를 PKCS12 형식으로 변환openssl pkcs12 -export -in <domain-name.crt> -inkey </path-to private.key> -name <alias-name> -out <domain-name.p12>그러면 .p12 파일이 생성됩니다.
  2. JKS 키 저장소에서 PKCS12 파일 가져오기keytool -importkeystore -deststorepass <pass-phrase> -destkeystore keystore.jks -srckeystore <your .p12 file> -srcstoretype PKCS12확장명이 .jks인 파일이 생성됩니다.
  3. JKS 파일 CA 파일입니다.keytool -import -alias <alias-name> -trustcacerts -file <bundle.crt> -keystore keystore.jks

참고:

비공개로.는 CA에서 인증서 발급에 사용하기 위해 생성하는 키입니다.
암호는 개인 키를 보호하는 암호입니다.사용자가 제공하면 개인 정보가 생성됩니다.키. 자세한 내용은

으로 .복사합니다./resource update 폴더트이 데업및▁andapplication.properiesjava.

server.ssl.key-store=classpath:keystore.jks
server.ssl.key-store-password=<pass-phrase>
server.ssl.key-alias=<alias-name>

효과가 있을 겁니다.

키 저장소 및 트러스트 저장소를 생성하거나 Java에서 제공하는 기본 트러스트 저장소를 사용해야 합니다.keystore에는 개인 키와 서버 인증서가 포함됩니다.신뢰 저장소에 CA 인증서가 들어 있습니다.p12 키스토어 만들기

openssl pkcs12 -export -in [path/to/certificate] -inkey [path/to/privatekey] -certfile [path/to/ca/certificate ] -out keystore.p12

키 저장소의 암호를 입력하십시오. 응용 프로그램에서 이 키 저장소를 구성하십시오.

신뢰 저장소 항목의 경우 Java의 기본 신뢰 저장소를 사용하는 경우 CA 인증서를 ...jre/lib/security/cacerts에 추가합니다.

keytool -import -trustcacerts -alias root -file ca.crt -keystore cacerts

또는 신뢰 저장소를 만든 다음 응용 프로그램에서 이 신뢰 저장소를 구성할 수 있습니다.

인터넷에서 쉽게 찾을 수 있는 모든 주요 도구 명령을 변환/생성/가져오기/내보내기/목록...

당신이 확인할 수 있는 3개의 파일을 제공합니다 - 1. 당신의 인증서가 되어야 합니다. 2. ca 인증서 체인이 되어야 합니다.

Opensl을 스프링 부트에 추가하려는 경우.

openssl 소프트웨어를 이미 설치한 경우 아래 단계를 수행하십시오. //키 및 공용 인증서 만들기

openssl req -newkey rsa:2048 -nodes -keyout key.pem -x509 -days 365 -out certificate.pem

//테스트

openssl x509 -text -noout -in certificate.pem

//키 및 공용 인증서 가져오기

openssl pkcs12 -inkey key.pem -in certificate.pem -export -out certificate.p12

//테스트

openssl pkcs12 -in certificate.p12 -noout -info

봄에 부트 속성이 아래에 추가됩니다.

server.ssl.enabled=true
server.ssl.key-store-type=PKCS12
# The path to the keystore containing the certificate
server.ssl.key-store=classpath:certificate.p12
# The password used to generate the certificate
server.ssl.key-store-password=password

언급

하여 개인 합니다.keytool-keystore매개 변수기존의 것들을 키스토어로 가져오는 것이 가능한지 그리고 어떻게 가능한지에 대해서는 제가 알지 못한다는 것을 인정합니다.keytool인증서를 가져올 수 있지만 방법이 있을 수 있습니다.

최악의 경우 키 도구를 사용하여 CSR을 다시 생성하고 SSL/TLS 인증서를 다시 생성합니다. 추가 비용이 들지 않습니다.

언급URL : https://stackoverflow.com/questions/46670046/adding-crt-to-spring-boot-to-enable-ssl

반응형