Intro
The easy way
How to examine a pkcs12 (pfx) file
$ openssl pkcs12 ‐info ‐in file_name.pfx
It will prompt you for the password a total of three times!
The hard way
I went through this whole exercise because I originally could not find the easy way!!!
Get the source for openssl.
Look for pkread.c. Mine is in /usr/local/src/openssl/openssl-1.1.0f/demos/pkcs12.
Compile it.
My first pass:
$ gcc ‐o pkread pkread.c
/tmp/cclhy4wr.o: In function `sk_X509_num': pkread.c:(.text+0x14): undefined reference to `OPENSSL_sk_num' /tmp/cclhy4wr.o: In function `sk_X509_value': pkread.c:(.text+0x36): undefined reference to `OPENSSL_sk_value' /tmp/cclhy4wr.o: In function `main': pkread.c:(.text+0x93): undefined reference to `OPENSSL_init_crypto' pkread.c:(.text+0xa2): undefined reference to `OPENSSL_init_crypto' pkread.c:(.text+0x10a): undefined reference to `d2i_PKCS12_fp' pkread.c:(.text+0x154): undefined reference to `ERR_print_errors_fp' pkread.c:(.text+0x187): undefined reference to `PKCS12_parse' pkread.c:(.text+0x1be): undefined reference to `ERR_print_errors_fp' pkread.c:(.text+0x1d4): undefined reference to `PKCS12_free' pkread.c:(.text+0x283): undefined reference to `PEM_write_PrivateKey' pkread.c:(.text+0x2bd): undefined reference to `PEM_write_X509_AUX' pkread.c:(.text+0x320): undefined reference to `PEM_write_X509_AUX' collect2: ld returned 1 exit status |
Corrected compile command
$ gcc ‐o pkread pkread.c ‐I/usr/local/include ‐L/usr/local/lib64 ‐lssl ‐lcrypto
Note that this works for me because I put my ssl and crypto libraries in that directory. Your installation may have put them elsewhere:
$ ll /usr/local/lib64/*.a
-rw-r--r--. 1 root root 4793162 Aug 16 15:30 /usr/local/lib64/libcrypto.a -rw-r--r--. 1 root root 765862 Aug 16 15:30 /usr/local/lib64/libssl.a |
References and related
My favorite openssl commands.