[openssl] OpenSSL API를 이용한 보안 프로그래밍[openssl] OpenSSL API를 이용한 보안 프로그래밍

Posted at 2012. 9. 16. 13:42 | Posted in 개발이야기

OpenSSL API를 이용한 보안 프로그래밍, Part 1: API의 개요

http://www.ibm.com/developerworks/kr/library/l-openssl.html


OpenSSL API를 이용한 보안 프로그래밍, Part 2: 안전한 핸드쉐이크(handshake)

http://www.ibm.com/developerworks/kr/library/l-openssl2.html


OpenSSL API를 이용한 보안 프로그래밍, Part 3: 보안 서비스 제공하기

http://www.ibm.com/developerworks/kr/library/l-openssl3.html

//

[openssl] command line sample[openssl] command line sample

Posted at 2012. 9. 16. 13:41 | Posted in 개발이야기

DES encript/descript

$ openssl enc -e -des -in aaa.c -out bbb.pem

$ openssl enc -d -des -in bbb.pem -out 111.c

$ diff aaa.c 111.c


Base64 encript/descript

$ openssl enc -e -base64 -in aaa.c -out bbb.b64

$ openssl enc -d -base64 -in  bbb.b64 -out 111.c

$ diff aaa.c 111.c


DES+Base64 encript/descrip

$ openssl enc -e -des -base64 -in aaa.c -out bbb.pem

$ openssl enc -d -base64 -des -in bbb.pem -out 111.c

$ diff aaa.c 111.c

//

ssl 인증서 만들기ssl 인증서 만들기

Posted at 2012. 9. 9. 12:58 | Posted in Server

Generate a private key

key 파일 생성

$ openssl genrsa [-des3] -out test.key 1024


Generate Root CA Certificate

루트 인증기관(Root CA) 인증서 생성

$ openssl req -new -x509 -keyout cakey.pem -out cacert.pem -days 3650


Generate Self Signed Certificate

자체 서명 인증서 생성

$ openssl req -new -x509 -keyout cacert.pem -out cacert.pem -days 3650


keyout과 out에 같은 파일명을 주면되며, 분리하고 싶은 경우는

RSA PRIVATE KEY부분과 CERTIFICATE부분을 다른 파일로 분리하면 된다.


Generate Certificate signing request

인증 요청서(Certificate Signing Request) 생성

$ openssl req -new -key test.key -x509 -out test.csr


Sign certificate with private key

키로 인증서에 서명하기

$ openssl x509 -req -days 3650 -in test.csr -signkey test.key -out test.crt


[Optional] key에서 Password phase 삭제

Remove Password Requirement

$ cp test.key test.key.secure

$ openssl rsa -in test.key.secure -out test.key


Generate dhparam file(Diffie-Hellman)

$ openssl dhparam -out dh512.pem 512

※ if an error, "digest too big for rsa key", occures, simply use 1024 bits. (happens on openssl-1.0.x later)

//