Security2013. 12. 3. 16:22
반응형

 개발업무나 인트라넷 웹서버 구축 등과 같은 업무를 수행하다 보면 직접 서명한(Self-Signed) 증명서(Certification Authority)가 필요한 경우가 있다. 이 경우 아래와 같이 생성할 수 있다.

 증명서를 생성하기 위해서는 먼저 openssl등의 SSL유틸이 필요하다. http://www.openssl.org/사이트에서 배포판의 다운로드가 가능하다. 윈도우즈용의 컴파일된 배포판도 인터넷에서 다운로드가 가능할 것으로 생각된다. 이 예제에서는  윈도우즈용 Apache(httpd)에 포함된 openssl을 이용하여 증명서를 생성하는 방법으로 예를 들어보도록 하겠다.


1. 개인키 생성

[아파치 설치경로/bin] openssl genrsa -out [개인키 파일명] 2048(비트수)

pass phrase를 이용하고 싶은경우는 -des3옵션을 붙이면 된다.


※실제 실행한 스크린 샷

  • pass phrase 이용하지 않을 경우


  • pass phrase 이용할 경우



2. Root 증명서 생성

[아파치 설치경로/bin] openssl req (-config [설정 파일 경로]) -new -x509 -days [유효기간] -key [기 생성한 개인키파일] -out [출력할 증명서 파일명]

 설정 파일 경로 옵션은 생략이 가능하나 환경문제로 읽어들일 수 없을 경우는 직접 지정하여야 한다.

 위의 증명서 생성은 실제와는 다르게 인증기관에 인증을 요청할 필요가 없기 때문에 인증 기관에 보낼 CSR(Certificate Signing Request) 생성과 셀프 사인이 동시에 진행된 것이다.


※실제 실행한 스크린 샷

생성시에는 제시할 정보를 입력하여야 한다.(생략도 가능)

Country Name : 2문자로 표기되는 국가 네임 코드

State or Province Name : 주나 도의 명칭

Locality Name : 지역명(주로 도시명)

Organizational Name : 조직명(주로 회사명)

Organizational Unit Name : 팀명

Common Name : 서버명이나 , 대표할 이름 등

Email Address : 증명서 관리자 전자메일 주소



3. 생성된 증명서 확인

[아파치 설치경로/bin]openssl x509 -in [증명서 파일명]



 위와 같은 과정을 거쳐서 직접 서명한 증명서를 생성할 수 있다. 이를 아파치등과 같은 웹서버에 적용하면 실제 인증은 되지 않겠지만 SSL통신을 적용할 수 있게 된다. 물론 외부에 제공하는 서비스의 경우에는 실제 인증기관에 요청해서 인증받은 증명서를 이용해야 신뢰할 수 있는 서비스를 제공할 수 있게 된다.



'Security' 카테고리의 다른 글

robots.txt와 보안  (0) 2015.03.18
보안에 대한 생각 - 파일 해시 검증하기  (0) 2015.03.04
CSRF(cross site request forgery)  (3) 2014.07.14
Session Fixation 취약점  (2) 2014.07.02
웹 파일 업로드 보안 취약점  (2) 2013.12.20
Posted by Reiphiel