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 형식 파일입니다.다음은 단계입니다.
- 인증서를 PKCS12 형식으로 변환
openssl pkcs12 -export -in <domain-name.crt> -inkey </path-to private.key> -name <alias-name> -out <domain-name.p12>
그러면 .p12 파일이 생성됩니다. - JKS 키 저장소에서 PKCS12 파일 가져오기
keytool -importkeystore -deststorepass <pass-phrase> -destkeystore keystore.jks -srckeystore <your .p12 file> -srcstoretype PKCS12
확장명이 .jks인 파일이 생성됩니다. - JKS 파일 CA 파일입니다.
keytool -import -alias <alias-name> -trustcacerts -file <bundle.crt> -keystore keystore.jks
참고:
비공개로.키는 CA에서 인증서 발급에 사용하기 위해 생성하는 키입니다.
암호는 개인 키를 보호하는 암호입니다.사용자가 제공하면 개인 정보가 생성됩니다.키. 자세한 내용은
으로 .복사합니다./resource
update 폴더트이 데업및▁andapplication.properies
java.
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
'programing' 카테고리의 다른 글
MySQL - 여러 JOIN 일치 항목에 열 추가 (0) | 2023.08.25 |
---|---|
빌드를 사용할 때 분석 수집을 위한 각도 클리킹 중지 (0) | 2023.08.25 |
Angular ActivatedRoute 데이터가 빈 개체를 반환함 (0) | 2023.08.20 |
플래시 없이 클립보드에 복사 (0) | 2023.08.20 |
null 값 식에서 메서드를 호출할 수 없습니다. (0) | 2023.08.20 |