OpenSSL Reference
OpenSSL 암호화 도구 레퍼런스
OpenSSL Reference 소개
OpenSSL 레퍼런스는 인증서 관리, 암호화 키 생성, 암호화/복호화, 해싱, TLS 프로토콜 테스트, 인증서 검증에 필요한 가장 필수적인 OpenSSL 명령을 다루는 검색 가능한 커맨드라인 치트 시트입니다. 각 항목에는 터미널에서 바로 복사하여 사용할 수 있는 정확한 명령 구문과 실용적인 예제가 포함됩니다.
인증서 작업으로 자체 서명 인증서 생성(req -new -x509), CSR 생성(req -new), 인증서 확인(x509 -text), 유효 기간 확인(x509 -dates), PKCS#12 내보내기를 다룹니다. 키 생성은 RSA 키(genrsa, 2048/4096비트, AES-256 암호화 옵션), EC 키(ecparam -genkey, prime256v1), Ed25519 키(genpkey), 공개키 추출(rsa -pubout), 키 검증(rsa -check)을 포함합니다.
AES-256-CBC 대칭 암호화/복호화(enc)와 RSA 공개키 암호화/복호화(rsautl), SHA-256/SHA-512/MD5 해시(dgst) 및 전자서명 생성/검증, s_client TLS 연결 테스트, s_server, 인증서 체인 표시(showcerts), 암호 스위트 목록, 그리고 인증서 체인 검증, 핑거프린트 추출, CSR 검증, CRL 확인 명령을 제공합니다.
주요 기능
- 인증서 관리: 자체 서명 생성, CSR 생성, x509 확인, 유효 기간, PKCS#12 내보내기의 정확한 명령 구문
- 키 생성 명령: RSA(2048/4096비트, 암호화), EC prime256v1, Ed25519, 공개키 추출, 키 검증
- 대칭 암호화: 패스워드 기반 키 유도를 사용한 AES-256-CBC 파일 암호화 및 복호화
- RSA 비대칭 암호화: 공개키 암호화(rsautl -encrypt) 및 개인키 복호화(rsautl -decrypt)
- 해싱 및 전자서명: SHA-256, SHA-512, MD5 다이제스트 계산, 개인키 파일 서명, 공개키 서명 검증
- TLS 프로토콜 테스트: s_client 서버 연결, s_server, 전체 인증서 체인 표시(showcerts), 암호 스위트 열거
- 인증서 검증: 체인 검증(verify -CAfile), SHA-256 핑거프린트 추출, CSR 검증, CRL 확인
- 실제 파일 경로와 출력 예제가 포함된 복사-붙여넣기 가능한 명령어로 즉시 터미널에서 사용 가능
자주 묻는 질문
OpenSSL로 자체 서명 SSL 인증서를 어떻게 생성하나요?
실행: openssl req -new -x509 -days 365 -key private.key -out cert.pem -subj "/CN=example.com". 기존 개인키를 사용하여 365일 유효한 자체 서명 인증서를 생성합니다. 키가 없으면 먼저 "openssl genrsa -out private.key 2048"으로 생성하세요. 프로덕션 용도에는 CSR을 생성하여 인증 기관(CA)의 서명을 받으세요.
RSA, EC, Ed25519 키는 어떻게 생성하나요?
RSA: "openssl genrsa -out private.key 2048"(높은 보안에는 4096, 암호화에는 -aes256 추가). EC: "openssl ecparam -genkey -name prime256v1 -out ec_private.key". Ed25519: "openssl genpkey -algorithm ed25519 -out ed25519_private.key". 어떤 키든 "openssl rsa -in private.key -pubout -out public.key"(EC/Ed25519는 pkey)로 공개키를 추출합니다.
AES-256으로 파일을 암호화하고 복호화하는 방법은?
암호화: "openssl enc -aes-256-cbc -salt -in plain.txt -out encrypted.bin -pass pass:mypassword". 복호화: "openssl enc -aes-256-cbc -d -in encrypted.bin -out decrypted.txt -pass pass:mypassword". -salt 플래그가 사전 공격을 방지합니다. 소용량 파일의 RSA 암호화는 "openssl rsautl -encrypt -pubin -inkey public.key -in plain.txt -out encrypted.bin"을 사용합니다.
서버의 TLS 연결을 어떻게 테스트하나요?
실행: "openssl s_client -connect example.com:443 -servername example.com". TLS 핸드셰이크를 수행하고 서버 인증서, 인증서 체인, TLS 버전, 암호 스위트를 표시합니다. -showcerts를 추가하면 전체 인증서 체인이 표시됩니다. "openssl ciphers -v TLSv1.3"으로 특정 프로토콜 버전의 사용 가능한 암호 스위트를 확인합니다.
인증서 체인은 어떻게 검증하나요?
실행: "openssl verify -CAfile ca.pem cert.pem". cert.pem이 ca.pem의 CA 인증서로 서명되었고 체인이 유효한지 확인합니다. 핑거프린트 추출: "openssl x509 -fingerprint -sha256 -in cert.pem -noout". 만료일 확인: "openssl x509 -in cert.pem -dates -noout"로 notBefore와 notAfter 타임스탬프를 확인합니다.
전자서명을 생성하고 검증하는 방법은?
서명: "openssl dgst -sha256 -sign private.key -out signature.bin file.txt". 검증: "openssl dgst -sha256 -verify public.key -signature signature.bin file.txt"(성공 시 "Verified OK" 출력). 전자서명은 SHA-256 해싱과 RSA/EC 개인키 서명을 결합하여 무결성과 인증을 모두 보장합니다.
CSR과 자체 서명 인증서의 차이점은 무엇인가요?
CSR(인증서 서명 요청)은 "openssl req -new"로 생성하여 인증 기관(CA)에 서명을 요청하며, 공개적으로 신뢰받는 인증서가 됩니다. 자체 서명 인증서(req -new -x509)는 자체 개인키로 서명하여 브라우저에서 기본적으로 신뢰하지 않습니다. 프로덕션 웹사이트에는 CSR을, 개발/테스트/내부 서비스에는 자체 서명 인증서를 사용합니다.
이 OpenSSL 레퍼런스는 무료인가요?
네, 이 레퍼런스는 사용 제한, 계정 요구, 소프트웨어 설치 없이 완전히 무료입니다. 인증서, 키 생성, 암호화, 해싱, TLS 프로토콜, 검증에 걸쳐 28가지 필수 OpenSSL 명령을 다룹니다. 모든 데이터는 브라우저에서 로컬로 처리됩니다. liminfo.com의 무료 온라인 보안 및 DevOps 도구 모음의 일부입니다.