키워드 [Programming][VC++][Certfication][PFX]
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();


+ Recent posts