OpenSSL

OpenSSL을 활용하면 클라이언트 서버가 SSL 통신을 이용하여 데이터를 안전하게 주고 받을 수 있다.

윈도우 개발환경에서 OpenSSL을 이용하기 위한 가장 쉬운 방법은 이미 빌드가 완료된 OpenSSL을 설치하여 VisualStudio 상에서 바로 적용하는 것이다.
https://slproweb.com/products/Win32OpenSSL.html
C:\Program Files (x86)\OpenSSL-Win32
속성-VC++ 디렉터리-포함 디렉터리-(include directory 주소)
속성-VC++ 디렉터리-라이브러리 디렉터리-(lib/VC directory 주소)

속성-링커-입력-추가종속성-(
ws2_32.lib
libssl32MDd.lib
libcrypto32MDd.lib )
openssl/ssl.h        //ssl을 사용하기 위한 해더파일
openssl/err.h        //ssl관련 예외 처리를 위한 헤더파일
라이브러리 링크 테스트
#include <iostream>
#include <winsock.h>
#include <openssl/ssl.h>
#include <openssl/err.h>
using namespace std;
int main(void) {
system("pause");
return 0;
}
OpenSSL 프로젝트 디렉토리에 ssl.conf 파일 생성(인증서)
[req]
default_bits=1024
encrypt_key=yes
distinguished_name=req_dn
x509_extensions=cert_type
prompt=no
[req_dn]
# Organizational Unit Name (eq. section)
OU=Csian
# Common Name |(*. example.com is also possible)
CN=localhost
[cert_type]
nsCertType=server
Common Name은 실제 로컬 주소를 넣어 주어야한다. 테스트 컴퓨터에서 직접 함으로 localhost

위의 ssl.conf 파일 OpenSSL-Win32/bin에 잘라내기, 붙여넣기    
bin 폴더 내에 opensll.exe 파일이 있기 때문에 같이 사용 가능하다.

cmd를 관리자 권한으로 실행해준 후, bin으로 이동
OepnSSL-Win32/bin>openssl.exe req -new -x509 -nodes -config ssl.conf -out cert.pem -keyout key.pem -days 365
명령어 실행
openssl.exe를 통해서 인증키 생성
ssl.conf를 참조하여 cert.pem 인증서를 생성, key.pem 서버용 키를 생성한다.

cert.pem과 key.pem은 사용하기 위해서 OpenSSL project/Debug 디렉토리에 복사, 붙여넣기