본문 바로가기
Server/SSL

[SSL] Localhost 적용을 위한 테스트용 SSL 만들기

by Youngs_ 2022. 5. 23.

1. 개인키 , 공개키 발급

실행이 됬다면, 먼저 PrivateKey를 생성해줍니다.

openssl genrsa -des3 -out 키이름 2048

openssl genrsa -des3 -out private.pem 2048

를 실행하면

 

비밀번호까지 두번 입력하면

비밀번호가 담긴 개인키를 만들수 있다 .

공인인증서의 경우는 비밀번호가 필요하지만.....

 

https의 ssl 인증서에는 서비스등록할때마다, 비밀번호를 입력해줘야하기 때문에,

 

 

비밀번호가 없는 키를 새로 만들어주자..

openssl genrsa  -out 키이름 2048

openssl genrsa  -out private.key 2048

비밀번호가 없는 private키를 새롭게 발급하였다.

 

생성된 private.key를 확인해보면 아래와 같은 키가 생겨있는걸 알수 있다.

 

 

이제 아래 명령어로 해당 개인키와 쌍이되는 공개키를 뽑아내보자

openssl rsa -in <개인키> -pubout -out public.key

openssl rsa -in private.key -pubout -out public.key

 

 

개인키와, 공개키가 생성되었다!

 

2. CSR( 인증요청서 ) 만들기

CSR이란 ?

SSL 인증의 정보를 암호화하여 인증기관에 보내 인증서를 발급받게하는 신청서입니다.

정보항목에는 국가코드, 도시, 회사명, 부서명, 이메일, 도메인주소 등이 들어가있습니다.

 

다음 명령어로 CSR을 생성합니다.

openssl req -new -key <키> -out CSR이름csr

openssl req -new -key private.key -out private.csr

 

 

명령어 진행후 , 추가 사항을 입력하면 됩니다.

( 개발용이기때문에 아무 정보나 입력했습니다. )

 

3. CRT( 인증서 ) 만들기

CSR까지 생성했다면, CRT는 그냥 만들수 있지만,

나는 나만의 사설 CA에서 인증까지 받은 인증서를 만들어보려고한다.

먼저 인증서의 서명을 해줄 rootCA가 필요하다.

 

3-1> rootCA.key 생성하기!

openssl genrsa <암호화 알고리즘> -out 키이름 2048

openssl genrsa -aes256 -out rootCA.key 2048

 

 

3-2> rootCA 사설 CSR 생성하기

rootCA.key를 사용하여 10년 짜리 rootCA.pem을 생성한다.

openssl req -x509 -new -nodes -key rootCA.key -days 3650 -out rootCA.pem

(임시로 국가,도시, 회사, 도메인,메일 등을 입력했습니다.)

 

3-3> CRT 생성

[2]에서 만들었던 csr을 나만의 커스텀 CA인 rootCA의 인증을 받아 private.crt로 생성합니다.

openssl x509 -req -in private.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out private.crt -days 3650

 

 

 

파일을 확인해보면 CRT를 확인할수 있습니다!

 

 

 

 

인증서를 확인할수 있습니다.

 

 

저는 TOMCAT에 인증서를 적용할것이기 때문에 pkcs12라는 형식으로 바꿔줍니다.

 

1. >

 

openssl pkcs12 -export -in private.crt -inkey private.key -out .keystore -name tomcat

 

 

 

 

자이제

.keystore를 사용하여 SSL 통신을 구현할 수 있습니다.


위 부분을 실행해도 .keystore파일로 SSL적용이 제대로 안되어서 추가로 찾아보던 도중 아래 방법을 추가로 진행해서

mykeystore.jks 파일을 사용해 SSL 적용을 성공하였다.

위에 적어놓은 명령어를 순서대로 진행하지 않고 아래 명령어만을 순서대로 진행하다보면 pem파일이 없을텐데 그럴때는 상단에 명시해놓은 명령어들을 순서대로 진행해서 pem 파일을 만들고 해당 rootCA.pem 파일을 이용하여 진행하면 정상적으로 jks파일이 만들어지며, SSL에 정상 접속이된다.


// 기존 환경에서 CA 인증 Public key를 키스토어에 넣으려 할 때 발생하는 오류

D:\ca>keytool -import -v -alias pms -file public.cer -keystore pms.jks

keystore 암호를 입력하십시오:  weblogic

keytool 오류: java.lang.Exception: 회신의 체인을 설정하지 못했습니다.

 

// 이하는 인증서를 새로 생성하여 작업한 내역입니다.

 

keytool -genkey -keyalg RSA -alias mykey -keystore mykeystore.jks

 

 

keystore 암호를 입력하십시오:  password

이름과 성을 입력하십시오.

  [Unknown]:  Saltware

조직 단위 이름을 입력하십시오.

  [Unknown]:  CS

조직 이름을 입력하십시오.

  [Unknown]:  Saltware

//시 이름을 입력하십시오?

  [Unknown]:  Seoul

/도 이름을 입력하십시오.

  [Unknown]:  Seoul

이 조직의 두 자리 국가 코드를 입력하십시오.

  [Unknown]:  KR

CN=Saltware, OU=CS, O=Saltware, L=Seoul, ST=Seoul, C=KR() 맞습니까?

 [아니오]:  y

 

<mykey>에 대한 키 암호를 입력하십시오.

        (keystore 암호와 같은 경우 RETURN을 누르십시오):  password

 

keytool -certreq -keystore mykeystore.jks

keystore 암호를 입력하십시오:  password

-----BEGIN NEW CERTIFICATE REQUEST-----

-----END NEW CERTIFICATE REQUEST-----

 

D:\ca\test>dir

 D 드라이브의 볼륨: Data

 볼륨 일련 번호: 8066-5005

 D:\ca\test 디렉터리

 

2007-01-10  오전 11:18    <DIR>          .

2007-01-10  오전 11:18    <DIR>          ..

2007-01-10  오전 11:16               976 ca.pem  <= TestRootCA 인증서

2007-01-10  오전 11:17             1,736 intermediateCA.pem <= TestIntermediateCA 인증서

2007-01-10  오전 11:07             1,334 mykeystore.jks

2007-01-10  오전 11:18             1,920 public.pem <= VeriSign 에서 받은 인증서

7개 파일               5,966 바이트

               2개 디렉터리  10,939,572,224 바이트 남음

 

// Keystore  RootCA  intermediate 인증서 import

keytool -import -alias verisignaCA -file ca.pem -keystore mykeystore.jks -trustcacerts

keystore 암호를 입력하십시오:  password

이 인증서를 신뢰하십니까?[아니오]:  y

 

keytool -import -alias verisignIntemdiateCA -file intermediateCA.pem -keystore mykeystore.jks -trustcacerts

keystore 암호를 입력하십시오:  password

 

// VeriSign에서 받은 인증서 설치 , 이때 alias private 키와 public 키의 별칭을 같게함

keytool -import -alias mykey -file public.pem -keystore mykeystore.jks -trustcacerts

keystore 암호를 입력하십시오:  password

 

keytool -v -list -keystore mykeystore.jks

 

keystore 암호를 입력하십시오:  password

 

 


출처 : https://lollaziest.tistory.com/117

 

Localhost https적용을 위한 key파일생성

로컬에서 https통신을 해야해서 아래와같은 부분을 찾아서 직접 keystore파일을 생성하여 ssl적용을 시켜봤었다. 아래를 따라서 진행하면서 오류가 나던 부분이나 이런건 찾아서 수행했다! 먼저 HTTP

lollaziest.tistory.com

https://m.cafe.daum.net/sepro/5CO5/29?listURI=%2Fsepro%2F5CO5 

 

SSL 설정 (공인인증서 발급과정)

// 기존 환경에서 CA 인증 Public key를 키스토어에 넣으려 할 때 발생하는 오류 D:\cakeytool -import -v -alias pms -file public.cer -keystore pms.jks keystore 암호를 입력하십시오: weblogic keytool 오류: java.lang.Exception:

m.cafe.daum.net

 

댓글