gbmin's Tech Notes

서버 구축 및 유지보수, 클라우드 컴퓨팅, 네트워크 보안, IT 분야 기술 노트. :)

Tech Notes/SSL

[Linux command] openSSL 명령어 사용법

gbmin 2023. 4. 25. 22:03

openssl 명령어 자주 사용되는 예제 정리
SSL 인증서 형식 변환, key. csr 생성, SSL 모듈 체크 방법 등 자주 사용 하는 openssl 명령어와 예제를 정리하였다.

 

 

1. key 생성 (RSA 알고리즘을 사용하여 2048bit 개인키 생성)

openssl genrsa -out private_key.pem 2048

2. key 확인

openssl rsa -in private_key.pem -text -noout

3.Keypassword제거

openssl rsa -in private_key.pem -out private_key_without_password.pem

4. Key password 추가

openssl rsa -in private_key_without_password.pem -des3 -out private_key_with_password.pem

5. CSR 생성

openssl req -new -key private_key.pem -out csr.pem

# CSR 생성시 아래와 같은 항목으로 영문으로 정보가 입력을 해야함.
Country Name ( 국가코드) [] : KR (두자리의 국가코드. 한국이기 때문에 KR을 입력)
State or Province Name ( 지역 ) [] : Gyeonggi-do (거주지 도시)
Locality Name ( 시/군/구 ) [] : Gwangmyeong-si (거주지 구/군)
Organization Name ( 회사명 ) [] : gbminnote (회사명)
Organizational Unit Name ( 부서명 ) [] : technical team (부서명)
Common Name ( 서비스도메인명 ) [] : tech.gbminnote.com (도메인명)
Email Address [] : root@gbminnote.com (관리자 이메일 주소)
암호키 : (사용할 비밀번호)

6. CSR 내용 확인

openssl req -in csr.pem -text -noout

 

7. 인증서 내용 확인

openssl x509 -in certificate.pem -text -noout

8. 원격지 cert 확인

openssl s_client -connect tech.gbminnote.com:443

9. DER 형식의 인증서를 PEM 형식으로 바꾸기

openssl x509 -in certificate.der -inform DER -out certificate.pem -outform PEM

10. PEM 형식의 인증서를 DER 형식으로 바꾸기

openssl x509 -in certificate.pem -inform PEM -out certificate.der -outform DER

11. PFX에서 Key 추출

openssl pkcs12 -in certificate.pfx -nocerts -out private_key.pem

12. PFX에서 인증서 추출

openssl pkcs12 -in certificate.pfx -clcerts -nokeys -out certificate.pem

13. PFX 생성 (개인키와, 인증서를 포함)

openssl pkcs12 -export -out certificate.pfx -inkey private_key.pem -in certificate.pem

14 PKCS #12 형식으로 변환

openssl pkcs12 -export -out certificate.pfx -inkey private_key.pem -in certificate.pem

15. Key와 인증서 모듈 일치 체크 방법 (불일치 시 설치 불가)

openssl x509 -noout -modulus -in certificate.crt | openssl md5
openssl rsa -noout -modulus -in private_key.key | openssl md5

# 위와 같이 각각의 명령어를 실행하여 나오는 md5 해시값이 같으면 모듈일치 한다고 판단할 수 있다.