2016-08-02 2 views
0

DER 형식의 서버 인증서를 읽고 DB에 저장하려면 X509 구조를 사용하여 인증서를 인쇄하는 API를 찾았지만 문자열로 가져 오는 데 API가 표시되지 않습니다. 누구든지 API 또는 인증서를 읽으려는 예제를 지적 할 수 있습니까?openssl API를 사용하여 DER 형식의 서버 인증서를 읽는 방법은 무엇입니까?

+1

당신은'd2i_X509' *가 당신이 원하는 것을하지 않는다고 말하는가? 아니면 그냥 DER과 xlat에서 텍스트로 읽으 려하고 있습니까? (이미 가지고있는 것처럼 보입니다). 마지막으로, Blob로 DER 형식으로 DB에 저장하는 것이 잘못된 이유는 무엇입니까? – WhozCraig

+0

@WhozCraig, i2d_X509()를 사용하여 DER로 인증서를 변환하고 인쇄하려고 시도했습니다. 정크 문자가 인쇄되고 있습니다. i2d_X509 (cert, &der); printf ("% s \ n", der); OPENSSL_free (der); – userF

+0

'i2d'의 *** i는 내부이고 *** d는 ** * i2d는 ASN.1/DER입니다 ASN.1/DER은 바이너리이며 인쇄 가능한 ascii는 아닙니다 인쇄 쓰레기가 아니며 요청한 ASN.1/DER을 제공합니다 * 'printf ("% s \ n", der)'문자열이 아니기 때문에'printf ("% s \ n", der)'로 출력하십시오 .. * d2i_X509로 ASN.1/DER로 인코딩 된 인증서를 읽습니다. 문제가 있다면, 우리는 아마 당신을 더 잘 도울 수 있습니다. – jww

답변

0

내가 아는 한, 인증서 저장에 대한 두 가지 선택 사항이 있습니다. 첫 번째 방법은 DB 열 형식을 BLOB으로 만든 다음 이진 인증서 데이터를 저장하는 것입니다.

두 번째 방법은 DB 열 형식을 TEXT로 만들고 인증서 데이터를 Base64로 인코딩 한 다음 인코딩 된 문자열을 저장하는 것입니다. 인증서를 사용해야 할 경우 Base64에서 인증서를 ASN.1/DER로 다시 디코딩합니다.

관련 문제