Modu.link 서비스에 SSL을 붙이면서 무료 인증서만 사용하다 라이브 서비스에는 유료 인증서를 붙이는게 좋겠다는 생각에 붙이면서 블로그에도 함께 정리합니다.

무료 인증서(https://www.sslforfree.com/ 같은 서비스)는 개인키와 CSR를 생성해서 보내는게 아닌 DNS 인증이나 간단한 도메인 인증만으로도 인증서를 발급 받을수 있지만 상용 인증서는 자신의 CSR을 생성하는 과정이 필요하여 그 과정을 간락하게 설명한다.

가비아 SSL 인증서 기준으로 개인키는 2048이상을 요구함 (요즘은 다 2048 이상 키를 원하는것으로 보임.) 하단 명령어는 ubuntu16 / Mac Mojave 버전에서 테스트하였음

개인키 (private.key) 생성하기

openssl genrsa -des3 -out 개인키명.pem 2048

이 개인키는 자신만 가지고 있는 키로 인증서를 탑제할때도 필요하니
완전 중요하게 관리해야함.

CSR 생성하기

openssl req -new -key 개인키명.pem > csr.pem

이후 개인키를 사용하여 CSR (SSL 인증서 발급전 정보들)을 넣어준다. 이 과정에서 csr.pem 생성시 여러 질문을 하는데, 도메인 기준대로 등록해준다.

Country Name (2 letter code) [AU]: 국가영어코드 (ex : KR)
State or Province Name (full name) [Some-State]: 지역
Locality Name (eg, city) []: 시군구 / 지역
Organization Name (eg, company) [Internet Widgits Pty Ltd]: 회사명
Organizational Unit Name (eg, section) []: 부서명
Common Name (e.g. server FQDN or YOUR name) []: 서비스 도메인명
Email Address []:이메일 주소

...

A challenge password []:패스워드
An optional company name []:회사명

생성된 csr를 가지고 가비아나 타 SSL 등록 대행 업체를 사용하여 등록해주면 정상적으로 발급 프로세스를 진행 할 수 있다.

인증서 변환 명령어

PEM -> CRT

openssl x509 -outform der -in 인증서명_cert.pem -out 인증서명_cert.crt

PEM -> KEY

openssl rsa -outform der -in 처음에 만든 개인키.pem -out private.key

CRT + KEY -> PFX

openssl pkcs12 -export -in 인증서명.crt -inkey private.key -out cert.pfx

개인키 패스워드 제거

openssl rsa -in 개인키.pem -out no_password_개인키.pem

확장자가 pem 뿐만아니라 key 확장자여도 제거가 가능함.

개인키 패스워드 추가

openssl rsa -in no_password_개인키.pem -passout pass:'패스워드' -out password_개인키.pem -des3

이것도 확장자가 pem 뿐만 아니라 key확장자여도 가능함.

후기

인증서를 발급 받고 인증서명_cert.pem 와 인증서명csr이 동봉된 압축 파일을 받았는데
여기에 포함된 파일 (Csr)를 key로 착각하고 댕청하게 삽질함 ㅜㅜ