Skip to content

SSL 인증서

andy edited this page Sep 29, 2019 · 1 revision
  • 네티 서버에 TLS 프로토콜을 적용하려면 공개키 암호화에서 사용되는 인증서가 필요

  • 이 인증서는 웹 서버에서 사용하는 인증서와 동일하며 파일은 Pem 형식

  • 인증서는 JDK의 keytool or OpenSSL 프로그램을 사용하여 생성

OpenSSL 설치

대부분의 운영체제에는 OpenSSL 배포판이 사전 설치 되어있음

인증서 생성

인증서를 만드려면 먼저 개인키공개키를 생성

개인키 생성

$ openssl genrsa -aes256 -out privatekey.pem 2048
  • OpenSSL을 이용하여 공개키 알고리즘 중 하나인 RSA 비밀키를 생성
  • 개인키 생성 시 암호를 입력하여, privatekey.pem 파일의 내용을 보호하기 위한 AES 암호키로 사용 비밀키를 보호하는 데 사용 가능한 암호화 알고리즘: DES, 3DES, IDEA, SEED, AES128/192/256, CAMELLIA128/192/256

CSR 파일 생성

  • 인증서 서명 요청을 위한 CSR(Certificate Signing Request) 파일을 생성할 때 자동으로 공개키가 생성되어 포함됨

    CSR파일은 파일을 생성한 기관의 공개키웹 서비스를 제공하는 회사의 정보를 암호화한 내용이 담겨 있음

    이 파일을 인증기관으로 전송하여 인증기관의 비밀키로 전자서명을 받으면 인증서가 완성 (비용 지불)

$ openssl req -new -key priviatekey.pem -out netty.csr
  • 생성한 개인키를 사용하여 CSR 파일을 생성

CSR 파일에 전자서명하여 인증서 생성

  • 작성한 개인키로 CSR에 전자서명 (자체서명 인증)
$ openssl x509 -in netty.csr -out netty.ctr -req -signkey privatekey.pem -days 365

검증

인증서 검증

$ openssl x509 -noout -text -in ./netty.crt

개인키 검증

openssl rsa -noout -text -in privatekey.pem