728x90
OpenSSL은 암호화와 보안 통신을 지원하는 오픈소스 소프트웨어 라이브러리입니다. 주로 HTTPS, SSL/TLS 프로토콜 기반의 암호화 통신을 설정하는 데 사용됩니다. OpenSSL은 데이터 암호화, 디지털 서명, 인증서 생성 및 관리, 키 관리 등의 다양한 기능을 제공합니다.
주요 기능
- SSL/TLS 통신 지원:
- 안전한 데이터 전송을 위해 SSL/TLS 프로토콜 구현.
- HTTPS 웹 서버와 클라이언트 간 암호화된 연결 설정.
- 암호화 및 복호화:
- 대칭키 암호화(AES, DES 등) 및 비대칭키 암호화(RSA, ECC 등) 지원.
- 데이터를 안전하게 암호화하거나 복호화하는 데 사용.
- 디지털 인증서 관리:
- X.509 인증서 생성, 서명, 확인.
- 자체 서명 인증서(Self-signed Certificate) 생성 지원.
- 난수 생성:
- 보안 난수 생성기 제공.
예시
- RSA 키 페어 생성 OpenSSL을 사용하여 개인키와 공개키를 생성할 수 있습니다.
- private_key.pem: 2048비트 RSA 개인 키.
- public_key.pem: RSA 공개 키.
openssl genrsa -out private_key.pem 2048 openssl rsa -in private_key.pem -pubout -out public_key.pem
- 파일 암호화 및 복호화 AES 알고리즘을 사용하여 파일을 암호화하고 복호화할 수 있습니다.
- plain.txt: 원본 파일.
- encrypted.txt: 암호화된 파일.
- decrypted.txt: 복호화된 파일.
# 파일 암호화 openssl enc -aes-256-cbc -salt -in plain.txt -out encrypted.txt -pass pass:yourpassword # 파일 복호화 openssl enc -aes-256-cbc -d -in encrypted.txt -out decrypted.txt -pass pass:yourpassword
- 디지털 인증서 생성 자체 서명 인증서를 생성할 수 있습니다.
- private_key.pem: 개인 키.
- cert.pem: 생성된 인증서.
- -days 365: 인증서 유효 기간.
openssl req -new -x509 -days 365 -key private_key.pem -out cert.pem
- SSL 연결 확인 OpenSSL을 사용하여 서버의 SSL/TLS 연결을 확인할 수 있습니다.
- example.com: 확인하려는 도메인.
- 443: HTTPS 기본 포트.
openssl s_client -connect example.com:443
사용 사례
- 웹 서버 설정: Apache나 Nginx와 같은 웹 서버에서 HTTPS를 활성화하기 위해 OpenSSL을 사용하여 인증서와 키를 생성.
- 보안 파일 전송: SCP, SFTP와 같은 보안 파일 전송 과정에서 OpenSSL 기반 암호화 사용.
- 애플리케이션 개발: OpenSSL 라이브러리를 사용하여 보안 기능을 애플리케이션에 통합.
728x90
'etc' 카테고리의 다른 글
Deepseek? (1) | 2025.02.03 |
---|---|
CI/CD? (1) | 2025.01.16 |
MSA 서비스의 설계 및 구현과 예시 (2) | 2025.01.15 |
프롬프트 엔지니어링? (2) | 2024.12.18 |
Devops? (2) | 2024.12.11 |