• Skip to main content
  • Skip to primary sidebar
  • Skip to footer
Tech Quintal
  • Guides
  • Best
  • Reviews
Home / Guides / Internet
June 6, 2023 Swalih

OpenSSL Commands Examples

OpenSSL Commands

OpenSSL is an open-source implementation of the SSL protocol. The OpenSSL commands are supported on almost all platforms including Windows, Mac OSX, and Linux operating systems. The OpenSSL can be used for generating CSR for the certificate installation process in servers. So, today we are going to list some of the most popular and widely used OpenSSL commands. These examples will probably include those ones which you are looking for. So, have a look at these best OpenSSL Commands Examples.

What are OpenSSL Commands?

OpenSSL commands are functions provided by OpenSSL to perform various operations such as generating and managing cryptographic keys and certificates and performing encryption and decryption operations.

These commands make it extremely easy to work with your certificates. If you are familiar with the basics of the terminal, you can easily understand the OpenSSL commands and their usage.

Common OpenSSL Commands

OpenSSL Command Examples

There are some random Open SSL commands which allow completing various tasks such as generating CSR and private keys. Let’s have a look at them.

Generate new private key and CSR (Certificate Signing Request)

openssl req -out CSR.csr -new -newkey rsa:2048 -nodes -keyout privateKey.key

Generate self-signed certificate

openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout privateKey.key -out certificate.crt

This will generate a self-signed SSL certificate valid for 1 year. The 2048-bit RSA alongside the sha256 will provide the maximum possible security to the certificate.

Generate a CSR for an existing private key in the server

openssl req -out CSR.csr -key privateKey.key -new

Generate a CSR for an existing certificate

openssl x509 -x509toreq -in certificate.crt -out CSR.csr -signkey privateKey.key

Generate an RSA key

openssl genrsa

Generate an RSA Private key

openssl genrsa -out private.key 2048

Generate a DSA key

openssl dsaparam -noout -out dsakey.pem -genkey 1024

Remove a passphrase from private key

openssl rsa -in privateKey.pem -out newPrivateKey.pem

Connect to a web server using SNI

openssl s_client -connect www.massivehost.com:443 -servername www.myhost.com

Base64-encode

openssl enc -base64 -in filename.txt

Encrypt a file

openssl enc -aes-256-cbc -salt -in filename.txt -out filename.enc

Decrypt a file

openssl enc -d -aes-256-cbc -in filename.enc

Check Using OpenSSL

Instead of performing the operations such as generating and removing keys and certificates, you could easily check the information using the OpenSSL commands. Here are a few examples.

Check a CSR (Certificate Signing Request)

openssl req -text -noout -verify -in CSR.csr

Check a private key

openssl rsa -in privateKey.key -check

Check a certificate

openssl x509 -in certificate.crt -text -noout

Check a PKCS#12 file with extension .pfx or .p12

openssl pkcs12 -info -in keyStore.p12

Test SSL certificate of particular URL

openssl s_client -connect yoururl.com:443 –showcerts

Check the Certificate Signer Authority

openssl x509 -in certfile.pem -noout -issuer -issuer_hash

Check PEM File Certificate Expiration Date

openssl x509 -noout -in certificate.pem -dates

Check OpenSSL version

openssl version

Check Certificate Expiration Date of SSL URL

openssl s_client -connect secureurl.com:443 2>/dev/null | openssl x509 -noout –enddate

Check if particular cipher is accepted on URL

openssl s_client -cipher 'ECDHE-ECDSA-AES256-SHA' -connect secureurl:443

Check Hash Value of A Certificate

openssl x509 -noout -hash -in bestflare.pem

Check contents of PKCS12 format cert

openssl pkcs12 –info –nodes –in cert.p12

Debugg Using OpenSSL

Often times, you may face errors such as the private key doesn’t match the certificate. In such situations, the following commands will be helpful.

Check MD5 hash of the public key to check it matches with a CSR or private key

openssl x509 -noout -modulus -in certificate.crt | openssl md5
openssl rsa -noout -modulus -in privateKey.key | openssl md5
openssl req -noout -modulus -in CSR.csr | openssl md5

Check an SSL connection

openssl s_client -connect www.paypal.com:443

Benchmark using OpenSSL

The OpenSSL commands are also available for benchmarking needs. You could benchmark your server performance and connection stability using the commands.

Benchmark my system’s performance

openssl speed

Benchmark remote connections

openssl s_time -connect remote.host:443

Convert Operations using OpenSSL

To convert the SSL certificates or keys from one format to another, you could utilize the following commands. You can change the format from one to another to make the certificates compatible with the server.

Convert a PEM file to DER

openssl x509 -outform der -in certificate.pem -out certificate.der

Convert a PKCS#12 file (.pfx .p12) containing a private key and certificates to PEM

openssl pkcs12 -in keyStore.pfx -out keyStore.pem -nodes

You can add -nocerts to only output the private key or add -nokeys to only output the certificates.

Convert a PEM certificate file and a private key to PKCS#12 (.pfx .p12)

openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt

Convert a DER file (.crt .cer .der) to PEM

openssl x509 -inform der -in certificate.cer -out certificate.pem

The list of all available OpenSSL commands

If you don’t know, the command line itself can tell you the complete available OpenSSL commands. To do this, the best option is to input an invalid command to the command line. For example, you could use this command.

$ openssl help

It will display the list of available commands like this

$ openssl help
openssl:Error: 'help' is an invalid command.

Standard commands
asn1parse         ca                ciphers           cms
crl               crl2pkcs7         dgst              dh
dhparam           dsa               dsaparam          ec
ecparam           enc               engine            errstr
gendh             gendsa            genpkey           genrsa
nseq              ocsp              passwd            pkcs12
pkcs7             pkcs8             pkey              pkeyparam
pkeyutl           prime             rand              req
rsa               rsautl            s_client          s_server
s_time            sess_id           smime             speed
spkac             ts                verify            version
x509

Message Digest commands (see the `dgst' command for more details)
md2               md4               md5               rmd160
sha               sha1

Cipher commands (see the `enc' command for more details)
aes-128-cbc       aes-128-ecb       aes-192-cbc       aes-192-ecb
aes-256-cbc       aes-256-ecb       base64            bf
bf-cbc            bf-cfb            bf-ecb            bf-ofb
camellia-128-cbc  camellia-128-ecb  camellia-192-cbc  camellia-192-ecb
camellia-256-cbc  camellia-256-ecb  cast              cast-cbc
cast5-cbc         cast5-cfb         cast5-ecb         cast5-ofb
des               des-cbc           des-cfb           des-ecb
des-ede           des-ede-cbc       des-ede-cfb       des-ede-ofb
des-ede3          des-ede3-cbc      des-ede3-cfb      des-ede3-ofb
des-ofb           des3              desx              idea
idea-cbc          idea-cfb          idea-ecb          idea-ofb
rc2               rc2-40-cbc        rc2-64-cbc        rc2-cbc
rc2-cfb           rc2-ecb           rc2-ofb           rc4
rc4-40            seed              seed-cbc          seed-cfb
seed-ecb          seed-ofb          zlib

There you can find out all the possible commands recognized by your command line. In addition, you could also find out a list of the arguments by using an incorrect argument like this.

$ openssl dgst -h
unknown option '-h'
options are
-c              to output the digest with separating colons
-r              to output the digest in coreutils format
-d              to output debug info
-hex            output as hex dump
-binary         output in binary form
-sign   file    sign digest using private key in file
-verify file    verify a signature using public key in file
-prverify file  verify a signature using private key in file
-keyform arg    key file format (PEM or ENGINE)
-out filename   output to filename rather than stdout
-signature file signature to verify
-sigopt nm:v    signature parameter
-hmac key       create hashed MAC with key
-mac algorithm  create MAC (not neccessarily HMAC)
-macopt nm:v    MAC algorithm parameters or key
-engine e       use engine e, possibly a hardware device.
-md4            to use the md4 message digest algorithm
-md5            to use the md5 message digest algorithm
-ripemd160      to use the ripemd160 message digest algorithm
-sha            to use the sha message digest algorithm
-sha1           to use the sha1 message digest algorithm
-sha224         to use the sha224 message digest algorithm
-sha256         to use the sha256 message digest algorithm
-sha384         to use the sha384 message digest algorithm
-sha512         to use the sha512 message digest algorithm
-whirlpool      to use the whirlpool message digest algorithm

Now you know a bunch of useful commands for the OpenSSL. Go and try them yourself.

How to Fix “ASN Bad tag value met” or “Cannot find certificate request associated with this certificate file” error on the IIS7
7 Steps to Create a Self-Signed SSL Certificate

Primary Sidebar

Author

Swalih

Swalih is a tech expert with 10+ years of experience in various fields of technology. He writes tech guides, reviews products, crafts top 10 lists, and a lot more. During these years, he contributed to several tech websites educating millions of readers all over the globe. Writing is one of his biggest passions, but he is also a programmer in his free time.


LinkedIn

Related Articles

Footer

Tech Quintal

Website

  • About
  • Advertise
  • Our Services
  • Write For Us
  • Contact Us

Policies

  • Privacy Policy
  • Terms and Conditions
  • Facebook
  • Twitter
  • Pinterest
Copyright © 2025 · Tech Quintal