OpenSSL 설치 및 인증서 발급
OpenSSL이란
OpenSSL은 데이터를 암호화하거나 보안을 적용할 때 사용하는 오픈소스 툴킷
보통 인터넷에서 HTTPS 같은 보안 통신, 전자서명, 인증서 발급, 암호화된 파일 생성 등에 사용
공인된 인증 기관(CA)에서 인증서를 발급받기 위한 제출용 CSR을 만들거나
자체 서명 인증서(Self-Signed)로 개발 및 테스트용 인증서 발급 가능
설치는 Windows 기준으로 작성합니다.
1. OpenSSL 다운로드
Full 버전: 모든 기능 포함, 인증서 생성·서명 등 고급 작업 가능
Light 버전: 기본 기능만 포함, 간단한 암호화 / 복호화 용도
저는 인증서 발급을 위해 Full 버전으로 받았습니다.
Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions
Minimum system requirements: Windows XP or later 32MB RAM 200MHz CPU 30MB hard drive space Recommended system requirements: Windows XP or later 128MB RAM 500MHz CPU 300MB hard drive space April 9, 2025 - OpenSSL 3.5 is available. Users should currently ins
slproweb.com
2. 시스템 환경변수 설정
시스템 속성 > 고급 탭 > 환경 변수에서
시스템 변수 > 새로 만들기 클릭
변수 이름 / 변수 값(OpenSSL 설치 경로)을 입력하면
터미널에서 OpenSSL 사용이 가능합니다.
3. 터미널 열고 OpenSSL 버전 확인
openssl -v
4. 자체 서명 인증서 발급
인증서 발급 시 여러 포맷이 존재합니다.
해당 표를 참고하여 원하는 포맷의 인증서를 발급받으면 됩니다.
발급 이후 포맷 변환도 가능합니다.
확장자 | 포맷 | 설명 | 텍스트/바이너리 |
.pem | PEM (Base64 인코딩) | 가장 널리 사용됨. -----BEGIN CERTIFICATE-----로 시작 |
텍스트 |
.crt | PEM 또는 DER | 확장자만 다르고 내용은 PEM일 수도 있음 | 보통 텍스트 |
.cer | PEM 또는 DER | Windows에선 주로 DER (이진), 리눅스에선 PEM일 수도 |
둘 다 가능 |
.der | DER (Distinguished Encoding Rules) |
바이너리 형식, 주로 Windows/Java용 | 바이너리 |
.pfx / .p12 |
PKCS#12 | 개인키 + 인증서 묶은 파일, 암호화 가능 | 바이너리 |
.key | PEM | 개인키 (Private Key) | 텍스트 |
5. 개인키 + 인증서 발급 명령어 입력
인증서를 발급할 때도 여러 옵션이 존재합니다.
주요 옵션을 정리해봤습니다.
옵션 | 설명 |
-x509 | 자체 서명 인증서 생성 (CA 없이 직접 발급) |
-newkey rsa:2048 | 새 RSA 키 생성 (2048 비트) |
-keyout <파일명> | 생성할 개인키 파일명 지정 |
-out <파일명> | 생성할 인증서(CRT) 또는 CSR 파일명 지정 |
-nodes | 개인키에 암호 설정하지 않음 (비밀번호 없이 저장) |
-days <숫자> | 인증서 유효기간 (ex: -days 365 = 1년) |
-subj "/C=KR/ST=Seoul/..." | DN 입력값을 자동으로 주입 (대화식 입력 생략 가능) |
-config <파일> | 확장 설정 파일 지정 (SAN 등 포함 시 사용) |
-sha256 | 서명 해시 알고리즘 지정 (기본은 SHA1, SHA256 이상 권장) |
명령어 입력!
// -x509 : 자체 서명 인증서 생성
// -newkey rsa:2048 : RSA 2048 개인키와 공개키 쌍을 생성
// -keyout mydomain.key 개인키 파일명
// -out mydomain.crt 인증서 파일명
// -days 365 인증서 유효기간(1년)
// -nodes 키 파일 내 비밀번호 설정하지 않음(No DES)
openssl req -x509 -newkey rsa:2048 -keyout mydomain.key -out mydomain.crt -days 365 -nodes
6. 인증서의 DN 입력
DN(Distinguished Name)은 인증서에서 사용자나 서버의 고유한 신원을 나타내는 식별 정보 집합입니다.
주로 국가, 조직, 도메인 등으로 구성되며 인증서의 Subject나 Issuer 필드에 사용됩니다.
트리 구조라는 것을 기억해주세요.
7. 발급된 인증서 확인!
openssl x509 -in mydomain.crt -text -noout
다음엔 제출용 CSR 발급 & 활용 방법도 작성해볼게요.