Step for Generating a PKCS#12
Private Key and Public Certificate
Last week I was jumbled up with creating a secure certificate and PKCS key which i need to use into a connected app for Salesforce. While i was searching some some good resources I have found an awesome link:
These instructions assume you have downloaded and installed the Windows binary distribution of OpenSSL. Refer to Using OpenSSL for the general instructions
- Generate an RSA private key:
- <Key Filename> is the desired filename for the private key file
- <Key Size> is the desired key length of either 1024, 2048, or 4096
- Generate a Certificate Signing Request:
- <Key Filename> is the input filename of the previously generated private key
- <Request Filename> is the output filename of the certificate signing request
- Follow the on-screen prompts for the required certificate request information.
- Generate a self-signed public certificate based on the request
- <Request Filename> is the input filename of the certificate signing request
- <Key Filename> is the input filename of the previously generated private key
- <Certificate Filename> is the output filename of the public certificate
- Generate a PKCS#12 file:
- <Public Certificate Filename> is the input filename of the public certificate, in PEM format
- <Private Key Filename> is the input filename of the private key
- <PKCS#12 Filename> is the output filename of the pkcs#12 format file
- <Display Name> is the desired name that will sometimes be displayed in user interfaces.
>C:\Openssl\bin\openssl.exe genrsa -out <Key
Filename> <Key Size>
Where:
For example, type:
>C:\Openssl\bin\openssl.exe genrsa -out my_key.key
2048
In version 0.9.8g:
>C:\Openssl\bin\openssl.exe req -new -key <Key
Filename> -out <Request Filename> -config C:\Openssl\bin\openssl.cnf
In version 0.9.8h and later:
>C:\Openssl\bin\openssl.exe req -new -key <Key
Filename> -out <Request Filename> -config C:\Openssl\bin\openssl.cfg
Where:
For example, type:
>C:\Openssl\bin\openssl.exe req -new -key my_key.key
-out my_request.csr -config C:\Openssl\bin\openssl.cnf
>C:\Openssl\bin\openssl.exe x509 -req -days 3650
-in <Request Filename> -signkey <Key Filename> -out <Certificate
Filename>
Where:
For example, type:
>C:\Openssl\bin\openssl.exe x509 -req -days 3650
-in my_request.csr -signkey my_key.key -out my_cert.crt
>C:\Openssl\bin\openssl.exe pkcs12 -keypbe PBE-SHA1-3DES
-certpbe PBE-SHA1-3DES -export -in <Public Certificate Filename>
-inkey <Private Key Filename> -out <PKCS#12 Filename> -name
"<Display Name>"
Where:
For example, type:
>C:\Openssl\bin\openssl.exe pkcs12 -keypbe PBE-SHA1-3DES
-certpbe PBE-SHA1-3DES -export -in my_cert.crt -inkey my_key.key -out
my_pkcs12.pfx -name "my-name"
(Optional) Delete unneeded files. At this point, you only need the PKCS#12 format file, so you can delete the certificate signing request (.csr) file, the private key (.key) file, and the public certificate (.crt) file.
The resulting PKCS#12 format file may
now be used within Secure FTP Server - FIPS.