회원가입| 아이디/비밀번호
 
홈 >커뮤니티> 정보공유 게시판


  OpenSSL로 인증서 생성 및 변환
 

작성자:관리자    작성일:2010-09-08     조회수:49922

   
  OpenSSL로 인증서 생성 및 변환 간략 정리

테스트 용도 및 내부 어플리케이션 사용 용도라면 굳이 돈주고 Verisign 인증서 같은걸 사서 쓸 필요 없이 간단히 OpenSSL로 만들어 사용하는 것도 좋은 방법이지요.

인증서란 것이 발급한 기관이 어디냐에 따라서 브라우저 같은 Application에서 그냥 넘어가느냐 못믿을 놈이니 확인해라 라는 컴플레인을 하거나의 차이일 뿐 표준에 따라 만드는 것이라 다를 것이 없으니까요....

OpenSSL로 인증서 생성 및 변환하는 것을 아주 간략히 정리해봅니다.
OpenSSL을 설치하면 openssl 이라는 이름의 실행파일이 있으며 이는 OpenSSL 패키지에 대한 데모 및 샘플 코드 제공, 각종 암호키에 대한 변환 등의 기능을 제공하는 툴입니다.
이 툴로 사실 우리가 필요로 하는 거의 대부분의 키 핸들링이 가능하다고 볼 수 있습니다.


1. Demo CA 설정
- 현재 디렉토리에 demoCA 디렉토리 생성 : mkdir demoCA
- demoCA 디렉토리 안에 시리얼 파일 생성 : serial 이란 이름의 text 파일에 00 을 적는다.
- index 파일 생성 : index.txt 란 이름으로 빈 파일을 만든다.

2. CA 인증서 생성
- CA 개인키 생성 : openssl genrsa -des3 -out ca.key 1024
- Self-Signed CA 인증서 생성 : openssl req -new -x509 -days 365 -key ca.key -out ca.crt

3. 하위 인증서 생성 (예: HTTPS Web 서버용..)
- server 개인키 생성 : openssl genrsa -des3 -out server.key 1024
- server 인증서 발급을 위한 요청파일 생성 : openssl req -new -days 365 -key server.key -out server.csr
- server 인증서 발급 : openssl ca -in server.csr -out server.crt -keyfile ca.key -cert ca.crt -outdir .

위 작업의 결과로 server.crt 라는 server용인증서가 생성되고 index 파일에 발급내역이, serial이 16진수로 1씩 증가한다.

4. 인증서 인코딩 포멧 변경
- openssl 이 생성하는 인증서의 인코딩은 발급 시 옵션을 주지 않으면 디폴트가 PEM (base64 encoding)이다.
- Java 등에서 사용하기 위한 DER 포맷(바이너리)으로 변경은 다음과 같이 수행한다.
: openssl x509 -in ca.crt -out ca.der -outform DER

5. 인증서 내용 보기
- openssl x509 -in ca.crt -text (PEM 포맷인 경우)
- openssl x509 -in ca.der -inform DER -text (DER 포맷인 경우)
==============================================================================================================


CA 개인키 생성
openssl genrsa -des3 -out ca.key 1024

CA csr 키 생성
openssl req -new -key ca.key -out ca.csr

Root CA 인증서 생성
openssl x509 -req -days 1280 -in ca.csr -signkey ca.key -out ca.crt

개인키에서 패스워드 삭제하기
openssl rsa -in ca.key -out ca_key.pem

------------------------------------------------------------------------------------------

Server 개인키 생성
openssl genrsa -des3 -out server.key 1024

Server csr 키 생성
openssl req -new -key server.key -out server.csr

Server 인증서 생성
openssl x509 -req -in server.csr -out server.crt -signkey server.key -CA ca.crt -CAkey

ca.key -CAcreateserial -days 365

개인키에서 패스워드 삭제하기
openssl rsa -in server.key -out server_key.pem

------------------------------------------------------------------------------------------

Client 개인키 생성
openssl genrsa -des3 -out client.key 1024

Client csr 키 생성
openssl req -new -key client.key -out client.csr

Client 인증서 생성
openssl x509 -req -in client.csr -out client.crt -signkey client.key -CA server.crt -CAkey

server.key -CAcreateserial -days 365

개인키에서 패스워드 삭제하기
openssl rsa -in server.key -out server_key.pem

------------------------------------------------------------------------------------------

crt->der 포맷변경
openssl x509 -in ca.crt -out ca.der -outform DER

pem->der 포맷변경
openssl x509 -in demoCA/cacert.pem -outform DER -out cacert.der

der->pem 포맷변경
x509 -in cert.cer -inform DER -out cert.pem -outform PEM

인증서 확인
openssl x509 -noout -text -in client.crt

비밀키 보기
openssl rsa -noout -text -in server.key

openssl 설치완료 확인
httpd -t

pfx 변환
openssl pkcs12 -export -in client.crt -inkey client.key -certfile ca.crt -out bundle.p12

pfx에서 키 추출
OpenSSL> pkcs12 -in filename.pfx -nocerts -out key.pem

pfx에서 인증서 추출
OpenSSL> pkcs12 -in filename.pfx -clcerts -nokeys -out cert.pem

라디우스 실행
/usr/local/sbin/radiuse -x

------------------------------------------------------------------------------------------

인증에 사용될 파일 6개
ca_key.pem ca.crt
server_key.pem server.crt
client_key.pem client.crt
   

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, bool given in /home/innocert/www/community/board.html on line 134

     
 
번호 제목 작성자 등록일 조회
12 윈도우 XP SP2 기술지원 관리자 2010-09-08 35444
11 OpenSSL로 인증서 생성 및 변환 관리자 2010-09-08 49921
10 Web Hacking & Deface List 2010-09-08 관리자 2010-09-08 15639
9 Web Hacking & Deface List 2010-09-07 관리자 2010-09-08 4448
8 Web Hacking & Deface List 2010-09-06 관리자 2010-09-08 3026
7 Web Hacking & Deface List 2010-09-03 관리자 2010-09-08 11989
6 Web Hacking & Deface List 2010-09-02 관리자 2010-09-02 34725
5 Web Hacking & Deface List 2010-09-01 관리자 2010-09-01 4542
4 Web Hacking & Deface List 2010-08-30 관리자 2010-08-30 41790
3 OpenSSL CA를 사용한 인증서 만료일 연장 관리자 2010-08-30 6538
첫 페이지로 이동    1 2     마지막 페이지