예전에 CA(Certificate Authority)를 구축할 수 있는 Software를 판매한 적이 있었다. 직접 참여를 하지는 않았지만 관여를 하고 있었기 때문에 보안과 인증서에 대해서 공부를 했었다. 그 때 경험이 향후 보안과 관련된 작업을 할 때 여러모로 도움이 많이 되었다.
오픈소스 중에는 OpenSSL이라는 인증서를 만들고 관리할 수 있는 소프트웨어가 있다. 인증서를 생성할 수 있기 때문에 OpenSSL을 사용하면 사설 CA를 구축할 수도 있다. 사설 CA를 구축하는 것은 좀 큰일이고 인증서가 있으면 SSL, TLS 등 보안과 관련된 기본적인 여러가지 기능을 구현할 수 있다.
여기서는 OpenSSL을 사용하여 사설 인증서와 서버 인증서를 생성하는 방법을 알아 보자.
개인키와 사설 인증서 생성
* 개인키 (private.key) 생성
openssl genrsa -des3 - out private.key 2048
#--- 개인키 생성시 암호를 입력 한다. 이 암호는 반드시 기억해 두자.
* -des3 : 삼중 DES 암호화 적용
* 2048 : 2048-bits RSA 키 생성
* 서명 정보가 포함된 CSR (private.csr) 생성
openssl req -new -key private.key -out private.csr
#--- private.key 생성시 입력한 암호 입력
Country Name (2 letter code) [AU]: 국가 (KR)
State or Province Name (full name) [Some-State]: 시/도/군
Locality Name (eg, city) []: 구/군
Organization Name (eg, company) [Internet Widgits Pty Ltd]: 회사명
Organizational Unit Name (eg, section) []: 서버도메인(www.jopenbusiness.com)
Common Name (eg, YOUR name) []: 이름
Email Address []: 이메일_주소
엔터
엔터
인증기관에 인증서 신청시, 서명정보가 포함된 CSR을 보내 공인 인증서를 받을 수 있습니다. 여기서는 이 CSR을 이용하여 사설 인증서를 만들어 봅니다.
* 자신이 서명한 사설 인증서(private.crt) 생성
openssl x509 -req -days 3560 -in private.csr -signkey private.key -out private.crt
#--- private.key 생성시 입력한 암호 입력
* -days 3560 : 인증서 유효 기간을 3650일로 설정
서버 인증서 생성
위에서 만든 사설 인증서를 가지고 자신이 CA인 것처럼 하여 서버 인증서를 만들어 봅시다. 여기서는 자세한 사항은 생략하고 사용 명령어만 기술 합니다.
#--- server.key 생성
openssl genrsa -des3 -out server.key 2048
#--- 서명 정보가 포함된 server.csr 생성
openssl req -new -key server.key -out server.csr
#--- 서버 인증서 (server.crt) 생성
openssl x509 -req -days 3560 -in server.csr -signkey server.key -out server.crt
-CA private.crt -CAkey private.key -CAcreateserial
#--- server.key의 암호와 private.key의 암호를 물어보면 입력해 줍니다
Posted by 산사랑