2012-07-26 2 views
1

OpenSSL의 OCSP 기능을 described here으로 구현하려고하는데 X509 개체가 매개 변수로 필요합니다. 내가 가지고있는 것은 .cer 형식의 x.509 인증서 파일입니다. OpenSSL에서 .cer 인증서를 사용하여 X509 개체를 초기화하는 방법은 무엇입니까? (중요한 경우 XCode에서 OpenSSL 1.0.0g를 사용하고 있습니다.).cer 파일을 사용하여 OpenSSL 라이브러리에서 X509 객체를 초기화하는 방법은 무엇입니까?

답변

5

두 가지 주된 경우가 있습니다. 나는 여기 둘 다 다룰 것이다.

저는 C++을 사용하고 있다고 가정했습니다. 플랫폼의 선택은 정상적인 경우 이러한 기능에 대한 바인딩을 가져야합니다.


첫 번째 경우 인증서 파일은 소위 PEM 양식입니다. 텍스트 편집기에서 인증서를 열어 사람이 읽을 수있는 헤더가있는 Base64로 인코딩 된 일부 데이터를 볼 경우 PEM 파일입니다. 이 경우, 원하는 기능은

X509 *PEM_read_X509(FILE *fp, X509 **x, pem_password_cb *cb, void *u); 

첫 번째 인수는 fopen()에 의해 반환되는 파일 객체에 대한 포인터 서명이 있습니다. 마지막 세 개의 인수는 NULL으로 남겨 둘 수 있습니다. 이 함수는 생성 된 X509 개체에 대한 포인터를 반환하거나 오류시 NULL을 반환합니다.


두 번째 경우 인증서 파일은 소위 DER 양식입니다. 텍스트 편집기에서 인증서를 열고 약간의 가비지를 볼 경우, 아마도 DER 파일 일 것입니다. 이 경우, 원하는 기능을 당신은 두 번째 인수 NULL을 떠날 수 있어야한다 서명

X509 *d2i_X509_fp(FILE *fp, X509 **x); 

있습니다. 이 함수는 생성 된 X509 개체에 대한 포인터를 반환하거나 오류시 NULL을 반환합니다.


공식 OpenSSL 설명서는 잘 알려지지 않은 것으로 유명합니다. 좋은 레퍼런스 매뉴얼을 찾고 있다면 O'Reilly의 "OpenSSL을 사용한 네트워크 보안"(ISBN 978-0-596-00270-1)을 추천 할 수 있습니다. OpenSSL 0.9.6/0.9.7 용으로 작성되었으며 일부 주제 (예 : CRL)에 대해서는 완전히 다루지는 않지만 모든 중요한 사항을 다루고 예제 코드를 제공합니다. 무엇이라도 잃어버린 적은 도움이 될 것입니다. :)

+0

Thank you! 훌륭한 대답, 정확히 내가 필요로하는 것. –

관련 문제