http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=51&MAEULNo=20&no=7598&ref=7598
윈도에서 OpenSSL을 사용할경우 인증서를 익스포트 시켜서
PEM 파일로 변환한 후 로드하는 과정이 필요하죠.
보통 제어판에서 인증서를 열어가지고 마우스로 콕콕 찍어서..
프라이빗 키 설정한 후 익스포트 하여 사용하곤 하는데..
귀찬죠.. 가끔 까먹기도 하죠.. 설명할라믄 메뉴얼 작성해야죠.. -_-
윈도 크립토 API를 사용하여 간단하게 샘플을 만들어 보았습니다.
//////////////////////////////////////////////////////////
#include <windows.h>
#include <wincrypt.h>
#include <cryptuiapi.h>
class CCertToPFX
{
public:
CCertToPFX();
virtual ~CCertToPFX();
void SetStoreName(CHAR* name);
void SetCertName(CHAR* name);
void SetSaveName(CHAR* name);
void SetPrivatePassword(CHAR* name);
BOOL Export();
DWORD GetLastError();
protected:
HCERTSTORE m_hCertStore;
HCERTSTORE m_hCertTemp;
CHAR m_pszStoreName[256];
CHAR m_pszCertName[256];
CHAR m_pszSaveName[MAX_PATH];
CHAR m_pszPrivatePass[256];
DWORD m_dwLastError;
};
샘플 코드는 아래와 같습니다.
////////////////////////////////////////////////////
CCertToPFX con;
con.SetStoreName("MY");
con.SetCertName("my_ssl");
con.SetSaveName("C:\\test.pfx");
con.SetPrivatePassword("my_password");
if(!con.Export())
con.GetLastError();