2011-05-22 18 views
5

Estoy trabajando en un cliente HTTPS y logré establecer una conexión segura y obtener el certificado X509 usando:
X509 *cert = SSL_get_certificate(ssl); (SSL es SSL *).

¿Cómo guardo el certificado en un archivo? Además, necesito obtener los campos "Asunto DN" y "DN Emisor" del certificado.Guardar certificado X509 en un archivo

Respuesta

7

- ¿Cómo guardo el certificado en un archivo?

#include <openssl/pem.h> 
int PEM_write_X509(FILE *fp, X509 *x); 

- Además, tengo que conseguir campos "DN" Emisor del certificado de "Asunto DN" y.

#include <openssl/x509.h> 
X509_NAME *  X509_get_issuer_name(X509 *a); 
X509_NAME *  X509_get_subject_name(X509 *a); 
+2

'X509_NAME_oneline()' es útil para convertir las estructuras 'X509_NAME' en cadenas de texto sin formato. – caf

2

para codificar el certificado en un archivo que se pueda utilizar esta función OpenSSL:

int i2d_X509_fp(X509 *x, FILE *fp); 

Codifica la estructura X509 señalado por x en un archivo utilizando la codificación DER. Más detalles sobre el OpenSSL API reference.

+0

La forma correcta es 'int i2d_X509_fp (FILE * fp, X509 * x);' – Kyrol

Cuestiones relacionadas