본문 바로가기
자동차 사이버보안/사이버보안의 다양한 개념

웹보안의 필수툴 OpenSSL에 대한 완벽 가이드

by HYS Blog 2023. 5. 24.

👋 안녕하세요! 오늘은 웹 보안을 위한 필수 도구, OpenSSL에 대해 알아보는 시간을 가질까 합니다.

OpenSSL은 웹사이트의 보안을 강화하기 위한 핵심 유틸리티로서, SSL 관리의 효율성을 극대화해 줍니다.

이 포스트에서는 OpenSSL의 기본적인 개념부터 어떻게 사용하는지, 그리고 실제 활용 예시까지 상세하게 알려드리도록 하겠습니다.

OpenSSL이란 무엇인가요? 🤔


OpenSSL은 TLS(Transport Layer Security) 프로토콜의 오픈소스 응용 프로그램을 제공하는 종합적인 암호화 라이브러리입니다.

CSR(Certificate Signing Request)과 비공개 키 생성, SSL 인증서 설치와 같은 다양한 SSL 관련 작업을 수행할 수 있게 해 줍니다.

HTTPS가 웹 표준이 되면서 SSL 인증서의 중요성이 높아졌습니다.

이에 OpenSSL은 디지털 인증서를 신청(인증서 서명 요청 생성)하고, SSL 파일을 서버에 설치하는 데 사용됩니다.

또한 인증서를 다양한 SSL 형식으로 변환하고, 모든 종류의 검증을 수행할 수 있습니다.

그래서 일부 플랫폼에서는 OpenSSL이 인증서를 가져오고 설정하는 유일한 해결책이기도 합니다.

OpenSSL은 어떻게 사용하나요? 🖥️


OpenSSL의 핵심은 커맨드 라인에 있습니다.

몇 가지 주요 OpenSSL 명령어만 익히면 인증서 설정 과정이 점점 더 빠르고 쉬워질 것입니다.


# OpenSSL 버전 확인
openssl version -a


여기서는 Linux와 Windows 모두에서 사용할 수 있는 OpenSSL의 사용법과 명령어를 소개하도록 하겠습니다.

OpenSSL 명령어 예시 📚

 

# OpenSSL을 이용한 CSR 생성
openssl req -new -key yourdomain.key -out yourdomain.csr


CSR은 웹사이트와 회사에 대한 정보를 담은 인코딩 된 텍스트 블록입니다.

이 CSR을 인증 기관에 제출하여 승인을 받아야 합니다.

또한, OpenSSL을 이용하면 공개 키를 추출하거나, 인증서 정보를 검조할 수도 있습니다.

# 공개키 추출
openssl rsa -pubout -in private_key.pem -out public_key.pem

# 인증서 정보 확인
openssl x509 -text -noout -in certificate.crt


공개키를 추출하는 명령어는 RSA 키 쌍에서 공개키를 가져와 새 파일로 저장합니다. 이를 통해 공개키를 다른 사용자와 공유할 수 있습니다.

인증서 정보를 확인하는 명령어는 인증서의 내용을 사람이 읽을 수 있는 형식으로 출력합니다.

이를 통해 인증서의 유효기간, 주체, 발행자 등의 정보를 확인할 수 있습니다.

 

OpenSSL로 SSL 인증서 변환하기 🔀


다양한 플랫폼과 서버에서는 서로 다른 SSL 인증서 형식을 사용합니다.

OpenSSL을 이용하면 인증서를 쉽게 변환할 수 있습니다.

# PEM -> DER 형식 변환
openssl x509 -outform der -in certificate.pem -out certificate.der

# PEM -> P7B (PKCS#7) 형식 변환
openssl crl2pkcs7 -nocrl -certfile certificate.cer -out certificate.p7b -certfile CACert.cer


PEM에서 DER로 변환하는 명령어는 PEM 형식의 인증서를 DER 형식으로 변환합니다.

PEM에서 P7B로 변환하는 명령어는 PEM 형식의 인증서를 P7B (PKCS#7) 형식으로 변환합니다.

OpenSSL로 SSL 인증서 검증하기 🕵️‍♂️


인증서가 정확하게 설정되었는지 OpenSSL을 이용해 검증할 수 있습니다.

# SSL 인증서 검증
openssl verify certificate.pem


이 명령어는 인증서를 검증하고 결과를 출력합니다.

마무리

 

이 포스트에서는 OpenSSL에 대해 자세히 알아보고, 주요 명령어와 사용법을 살펴보았습니다.

OpenSSL은 웹 보안에서 필수적인 도구로, 인증서의 생성, 변환, 검증 등 다양한 작업을 수행할 수 있습니다.

이 도구를 이해하고 활용하면 웹사이트의 보안을 더욱 강화할 수 있습니다.

그럼 안녕히, 다음 포스트에서 뵙겠습니다! 👋