페이지 선택

인터넷, 또는 네트워크 통신의 보안을 위해 소켓 계층에  TLS/SSL 인증 및 암호화 방식을 올릴 수 있다.

TLS/SSL 암호화를 위해서는 아래 그림과 같이 기본적으로 각종 인증서 와 암호키들이 필요하다.

이 페이지에서는 OpenSSL를 사용하여 TCP/UDP , HTTPS, MQTT 등 통신에 필요한 암호키 와 인증서를 생성하는 예를 보이고 있다.

 

 

♦ OpenSSL 설치는 도구모음 메뉴를 참조한다.

 

 

 

1. CA 보안키와 인증서 생성하기

 

절차 명령
OpenSSL/bin 으로 경로 이동  
CA 보안키 생성 OpenSSL/bin>openssl genrsa -des3 -out ca.key 2048
CA 인증서 생성 OpenSSL/bin>openssl req -new -x509 -days 3650 -key ca.key -out ca.crt

 

 

♦ CA 보안키 생성

⊕ OpenSSL에서 만들어진 이 보안키 파일에는 개인키와 공개키가 모두 포함되어 있다.

 

♦ CA 인증서 생성

입력항목 Default 값(Enter Key) 예제 적용값
Country Name AU Enter 키 입력
State or Province Some-State Enter 키 입력
Locality Name   Enter 키 입력
Organization Name Internet Widgits Ltd Enter 키 입력
Organization Unit   Enter 키 입력
Common Name   Enter 키 입력
Email Address   Enter 키 입력

 

 

 

 

2. 서버 보안키 와 인증서 생성

 

절차 명령
서버(Server)) 키 생성 openssl/bin>openssl genrsa -out server.key 2048 
서버 CSR(인증서 서명 요청서) 생성 openssl/bin>openssl req -new -out server.csr -key server.key
CSR을 CA로 발송 → 서버 인증서 생성 openssl/bin>openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 3650
서버 인증서 검증해 보기 openssl/bin>openssl verify -CAfile ca.crt server.crt

 

 

♦ 서버 보안키 생성

⊕ OpenSSL에서 만들어진 이 보안키 파일에는 개인키와 공개키가 모두 포함되어 있다.

 

♦ 서버 CSR 생성

입력항목 Default 값(Enter Key) 예제 적용값
Country Name AU Enter 키 입력
State or Province Some-State Enter 키 입력
Locality Name   Enter 키 입력
Organization Name Internet Widgits Ltd Enter 키 입력
Organization Unit   Enter 키 입력
Common Name   momopc
Email Address   Enter 키 입력
Challenge password   Enter 키 입력
Option company name   Enter 키 입력

⊗ Common Name은 임의의 값을 입력해도 인증서 생성에는 문제 없지만, 다양한 툴에서 시험할 때 호환성을 위해 반드시 서버가 설치된 PC의 Host Name이나 IP를 입력하도록 한다.

⊗ 가급적 Common Name을 Host Name으로 입력했으면 시험에서 Host Name을 입력하고, IP를 입력했으면 IP로 구동한다. (툴/PC에 따라 호환성 차이가 있는 듯)

 

 

♦ CSR를 CA로 발송 → CA Signing 서버 → 서버(Server) 인증서 발행

 

 

 

♦ 서버 인증서 검증하기

서버 인증서가 올바르게 만들어 졌는 지 검증을 해본다. 에러가 나면 다시 뺑뺑이 ~~~!

 

 

 

 

 

3. Client 보안키와 인증서 생성하기

 

절차 명령
클라이언트  키 생성

openssl/bin>openssl genrsa -out client.key 2048

또는 pass phrase 사용의 경우:  openssl genrsa -des3 -out client.key 2048

클라이언트 CSR (인증서 서명 요청서) 생성 openssl/bin>openssl req -out client.csr -key client.key -new
CSR을 CA로 발송 → Client 인증서 생성 openssl/bin>openssl x509 -req -in client.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out client.crt -days 3650
클라이언트 인증서 검증 openssl/bin>openssl verify -CAfile ca.crt client.crt

⊕ openssl genrsa -out client.key 2048 옵션을 사용시 Client 키에 대한 pass pharase를 사용하지 않는다.

⊕ 추후 시험에서 MQTT.fx 사용시 pass phrase 가 있는 client key는 호환이 안되는 듯 하다. pass phrase가 있는 키 → pass phrase가 없는 키로 수정하는 명령은 다음과 같다.

    → openssl rsa -in client.key -out client-new.key

 

 

♦ 클라이언트(client) 보안키 생성

⊕ 이어지는 모든 시험에서 특별한 경우가 아니면 client key 에 대한 pass phrase를 사용하지 않을 것이다.

⊕ OpenSSL에서 만들어진 이 보안키 파일에는 개인키와 공개키가 모두 포함되어 있다.

 

 

♦ 클라이언트 CSR 생성

입력항목 Default 값(Enter Key) 예제 적용값
Country Name AU Enter 키 입력
State or Province Some-State Enter 키 입력
Locality Name   Enter 키 입력
Organization Name Internet Widgits Ltd Enter 키 입력
Organization Unit   Enter 키 입력
Common Name   momopc
Email Address   Enter 키 입력
Challenge password   Enter 키 입력
Option company name   Enter 키 입력

 

 

 

♦ CSR를 CA로 발송 → CA Signing 서버 → 클라이언트(Client) 인증서 발행

 

 

 

♦ 클라이언트 인증서 검증하기

 

 

 

Viewed Page List