우아한 테크코스/이것저것
Self-Signed SSL 인증서 생성하기 & Springboot 적용하기
jamie.
2020. 7. 29. 15:24
반응형
OpenSSL 설치
Mac
$ brew install openssl
개인 키 및 인증서 서명 요청 생성
개인 키 생성
$ openssl genrsa -des3 -passout pass:x -out server.pass.key 2048
Generating RSA private key, 2048 bit long modulus
.......+++
.........................................................................................................................................+++
e is 65537 (0x10001)
$ openssl rsa -passin pass:x -in server.pass.key -out server.key
writing RSA key
$ rm server.pass.key
CSR 생성
CSR : Certificate Signing Request - 인증서 서명 요청
- 인증서를 발급받기 위한 정보들과 어떤 키를 사용하는지에 대한 정보를 저장하고 있음
$ openssl req -new -key server.key -out server.csr
Enter pass phrase for key.pem: # 키 파일 패스워드 사용 - 암호화하지 않았을 경우 뜨지 않음
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) []:KR # ISO 국가코드
State or Province Name (full name) []:Seoul # 도/시
Locality Name (eg, city) []: # 도시명
Organization Name (eg, company) []: # 회사명
Organizational Unit Name (eg, section) []: # 조직명
Common Name (eg, fully qualified host name) []: # 사용자명 or 서버의 host명
Email Address []: # Email 주소
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: # 인증서 PW - 따로 입력하지 않음
Creating a Self-Signed SSL Certificate
공인 인증서 파일 생성
- 공인 인증서를 발급하는 기관의 발급 절차를 따라 발급
- 인증서 발급 신청시 CSR 파일 필요
사설 인증서 파일 생성
- openssl을 이용해 사설 인증서 파일 생성
- Self-Signed SSL Cretificate
- 생성하기 : server.csr
$ openssl x509 -req -sha256 -days 365 -in server.csr -signkey server.key -out server.crt
Signature ok
subject=/C=KR/ST=Seoul
Getting Private key
$ ls
server.crt server.csr server.key
Springboot에 적용하기
Springboot에서 사용할 keystore.p12 생성
$ openssl pkcs12 -export -in server.crt -inkey server.key -out keystore.p12 -name airpageserver -CAfile server.csr -caname root
# 비밀번호 지정하지 않음
Enter Export Password:
Verifying - Enter Export Password:
application.properties
server.port=443
server.ssl.enabled=true
server.ssl.key-store=src/main/resources/keystore.p12
server.ssl.key-store-password=
server.ssl.key-store-type=PKCS12
사설 인증서이므로 다음과 같은 알림 뜸
반응형