Server/Cent OS

SSL 인증서, 키 생성

heyoon2j 2019. 8. 2. 21:50

■ SSL 사설 인증서, 키 생성

 

ㆍ공인 인증서 및 SSL 절차

 1. {Site 공개 키 + Site 정보}를 인증 기관 개인 키로 암호화하여 인증서 생성/발급, 그리고 인증 기관의 공개키가 브라우저에 저장되게 된다.

 2. Client가 Server에게 hello Packet 전송

 3. Server가 Client에게 hello Packet 전송, 이때 인증서를 전달한다.

 4. 인증서를 인증 기관의 공개키로 확인한다.

 5. 인증서에 들어있는 Server 공개 키를 이용하여 대칭 키를 암호화하여 전송

 6. Server는 받은 전달받은 값을 개인 키로 복호화하여 대칭 키를 알아낸다.

 7. 이후 Client와 Server 간의 통신은 대칭 키를 이용하여 통신하게 된다.

 

 => 대칭 키를 공개 키로 암호화하고, 실질적으로는 대칭 키를 이용해서 암호문을 주고받는다. 공개키는 대칭키를 효율적으로 보내기 위해 사용된다.

 

 * 인증 기관 - 공개 키를 위해서는 인증기관이 필요하다(중앙집권)

  1) 최상위 인증기관: KISA 등

  2) 공인인증기관: 예스사인 등

  3) 등록대행기관: 은행 등

 

 

ㆍ사설 인증서 생성 명령어

- # yum install –y openssl mod_ssl: opesnssl과 mod_ssl 설치

=> OpenSSL : 네트워크를 통한 데이터 통신에 쓰이는 Protocol인 TLS와 SSL의 Open Source, 각기 다른 다양한 암호화 알고리즘을 지원.

=> mod_ssl : OpenSSL 라이브러리를 사용하여 HTTPS를 구현한 확장 모듈이다.

 

- # openssl genrsa -out ca.key 1024: 1024bit 개인 키 생성(비밀번호 없는 키)

=> OpenSSL을 사용하면 개인 키에 공개 키 정보도 포함되므로 공개 키를 따로 생성할 필요가 없다 [1]

 

# openssl rsa -in ca.key -pubout -out public.key: 개인 키(ca.key)로 공개 키 생성

=> openssl rsa -in PRIVATE_KEY -pubout -out PUBLIC_KEY

 

- # openssl req -new -key ca.key -out ca.csr: 인증 요청서(.csr) 생성

=> 인증 요청서에는 해당 회사의 정보와 키가 포함된다.

 

1) Country Name : 국가코드, KR
2) State or Province Name : 시/도 이름, Seoul
3) Locality Name : 구/군, Jong-ro
4) Organization Name : 회사명
5) Organizational Unit Name: 부서명
6) Common Name : 도메인명, www.cloud.com
7) Email Address : 이메일 주소, Administrator@cloud.com

 

- # openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt: x509 인증서 생성

=> openssl x509 -req -days [유효기간] -in [인증 요청서] -signkey [개인키] -out [인증서 파일명]

=> Config File을 이용하여 만들 수 도 있다.

=> CERT File을 PEM File로 변환할 수 있다.

 

 

* 추가

- 블록체인은 키 제 3자(인증기관)가 필요 없다(분산 시스템, 참여자 중에 절반만 참여하면 인증된다. 하지만 최소 10분이 걸리기 때문에 쓰기 어려움)

- 이더리움은 지분이 많은 사람이 참여하면 인증된다.

 

 

 

출처

[1] https://codeday.me/ko/qa/20190308/31925.html

'Server > Cent OS' 카테고리의 다른 글

3-way Handshake & 4-way Handshake  (0) 2019.07.28
Linux Server - HTTP SSL 설정  (0) 2019.07.17
Linux Server - FTP SSL 설정  (0) 2019.07.17
Linux Server - Mail SSL 설정  (0) 2019.07.17
Linux Server - NFS(설치 & 설정 + 고정 Port)  (0) 2019.07.09