상세 컨텐츠

본문 제목

[리눅스 명령어 정리] OpenSSL 개념 및 명령어

리눅스/linux 명령어 정리

by 해공학(해킹을 공부하는 학생) 2023. 5. 31. 06:46

본문

open ssl은 네트워크를 통한 데이터 통신에서 쓰이는 프로토콜인 TLS,SSL의 오픈소스 판이다.

C언어로 작성되어 있는 라이브러리 안에는, 기본적으로 암화호화 기능및 여러 유틸리티 함수들이 구현되 있다.

 

이제 좀 풀어서 설명해보겠습니다.

openSSL는 TLS/SSL 프로토콜을 실제 사용하게 만든 라이브러리 입니다. 

그리고 이 라이브러리의 기능은 개인키/공개키 페어 생성, X.509 인증서 생성, TLS/SSL과 관련된 암호화/복호화 등이 있습니다.

 

OpenSSL 명령어 

명령어 사용법 : openssl 명령어 [옵션] [매개변수] 

 

openssl의 라이브러리의 명령어를 알아보겠습니다.

 

1. enc 

이 명령어는 파일을 암호화와 해독할때 쓰이는 명령어 입니다.

 

암호화 

openssl enc -aes-256-cbc -salt -in plaintext.txt -out encrypted.txt

-aes -256 -cbc :  cbc모드를 사용하여 256비트 크기의 aes 알고리즘을 사용하여 암호화 한다는 말

-salt : 좀더 복잡하게 암호화 한다는말

-in : 뒤에 있는 파일이 암호화 할파일

-out : 암호화 된 파일을 저장할 경로 와 파일

 

해독

openssl enc -d -aes-256-cbc -in encrypted.txt -out decrypted.txt

-d : 암호를 해독 한다는 뜻 입니다.

 

2. s_client

 

이 명령어는 SSL/TLS와 관련된 일을 하는 명령어 입니다.

 

1. SSL/TLS 연결 테스트

openssl s_client -connect www.example.com:443

s_client : Openssl의 클라이언트 도구를 활성화 시킵니다.

conmect : 접속할 host와 포트를 지정해 줍니다.

 

2. 서버에게 특정 데이터를 전달하고 받아오기

echo "GET /index.html" | openssl s_client -connect www.example.com:443

echo "GET /index.html" : 서버로 보낼 데이터가 index.html 입니다.

 

 

 

 

이 외에도 인증서 생성하기등 이있습니다. 하지만 지금은 잘 이해가 안되는 부분이라 나중에 포스팅을 업데이트 하겠습니다 죄송합니다.

관련글 더보기