Creating certificates by using the OpenSSL tool
OpenSSL is a cryptography toolkit that implements the SSL/TLS network protocols, along with related cryptography standards. The openssl command-line tool provides a range of commands and options for creating and managing digital certificates. OpenSSL is used for the following:
- Encrypting data sent over a network
- Generating private keys, public keys, and SSL/TLS certificates
- Creating digital signatures
- Running secure servers and clients (for example, HTTPS, FTPS, SMTPS)
To generate a self-signed certificate
Generate a private key by running the following command:
openssl genrsa -out ca.key 2048Remove the passphrase from the key pair:
openssl rsa -in ca.key -out ca.keyGenerate a certificate signing request (CSR):
openssl req -x509 -new -key ca.key -out ca.csr -config "[openSSL folder path]\openssl.cnf"Create a self-signed certificate in X.509 :
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days XXX
To generate a server certificate
Generate a private key:
openssl genrsa -out serv.key 2048Generate a CSR certificate:
openssl req -new -key serv.key -out serv.csr -config "[openSSL folder path]\openssl.cnf"Generate a signed server certificate:
openssl x509 -req -days 730 -in serv.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out serv.crt -extensions v3_req -extfile "[openSSL folder path]\openssl.cnf"
To generate a client certificate
Generate a private key :
openssl genrsa -out cli.key 2048Generate a CSR certificate:
openssl req -new -key cli.key -out cli.csr -config "[openSSL folder path]\openssl.cnf"Generate a signed client certificate:
openssl x509 -req -days 730 -in cli.csr -CA ca.crt -CAkey ca.key -set_serial 02 -out cli.crt -extensions v3_req -extfile "[openSSL folder path]\openssl.cnf"
Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*