Talk is cheap, show me the code!
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <openssl/bio.h>
#include <openssl/x509v3.h>
int main(int argc, char **argv)
{
char cn[256] = "";
BIO *bio = NULL;
bio = BIO_new_file(argv[1], "r");
assert(bio);
X509 *x = NULL;
x = PEM_read_bio_X509(bio, NULL, NULL, NULL);
assert(x);
X509_NAME *name = X509_get_subject_name(x);
X509_NAME_get_text_by_NID(name,NID_commonName, cn, sizeof(cn));
printf("%s\n", cn);
}
gcc -lssl a.c
./a.out 1.crt