개발업무나 인트라넷 웹서버 구축 등과 같은 업무를 수행하다 보면 직접 서명한(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 |