What is OpenSSL? Useful OpenSSL Commands to Work with SSL Certificates

1 vote, average: 5.00 out of 51 vote, average: 5.00 out of 51 vote, average: 5.00 out of 51 vote, average: 5.00 out of 51 vote, average: 5.00 out of 5 (1 votes, average: 5.00 out of 5, rated)
Loading...
Useful OpenSSL Commands

An effective SSL configuration is necessary for a secure and encrypted website. Furthermore, as many website owners are choosing SSL for the first time, it’s extremely important to offer them access to all the tools and resources they require.

One of these helpful resources is OpenSSL, an open-source implementation of the SSL protocol that additionally serves as one of the most versatile SSL tools available.

Let’s now discuss OpenSSL and its significance for security.

What Is OpenSSL?

OpenSSL is a strong cryptography tool, perhaps a powerful tool for the average user. It is an open-source software library for certificate as well as digital communication protection. A lot of websites and international organizations encrypt data while it’s being transmitted across computer networks or the internet, including emails and online traffic.

Moreover, OpenSSL gives reliable parties a way to digitally sign documents or certificates, ensuring the authenticity and integrity of the data. The crucial security layer provided by OpenSSL helps to better protect online transactions from malevolent attackers.

OpenSSL is available for almost all operating systems, including Linux, Windows, and Mac OS X. The CSR and private keys for many systems, including Apache, are frequently created using OpenSSL.

It also offers hundreds of other functions, such as viewing a CSR or certificate’s details, comparing the private key and certificate’s MD5 hash to ensure they match, verifying that a certificate is installed correctly on any website, and converting a certificate to a different format.

Developers can create highly secure apps that shield user data from malicious third parties by using OpenSSL’s features.

Why Is OpenSSL Used?

A robust and adaptable tool, OpenSSL could be used for various applications. The following are some tasks that can be completed using OpenSSL:

Developing and Overseeing SSL Certifications: 

With OpenSSL, creating and managing SSL certificates, needed to verify an entity’s identity is a simple process.

Creating Certificate Signing Requests (CSRs) and Private keys:

OpenSSL can also be used to create CSRs and private keys, which are required when requesting an SSL certificate from a certificate authority.

Creation and Management of Certificate Authorities and Revocation Lists:

CAs and CRLs utilized to issue and remove SSL certificates that have been hacked or are no longer required can be developed and maintained with OpenSSL.

Digital Signature Creation and Verification:

Digital signatures, which verify the authenticity of a message and the sender’s identity, could be made using OpenSSL’s libraries.

Benefits of OpenSSL

OpenSSL is more popular because of several predominant characteristics.

Longevity and Extensive Use: 

OpenSSL has been around for a while and has been put through its paces in various applications. Its stability and dependability are influenced by its widespread acceptance and maturity. The SSL/TLS implementation provided by OpenSSL has been widely used and evaluated and has proven crucial to the security of internet connections.

Community and Documentation: 

OpenSSL has a sizable, vibrant development and user community, which leads to improved security updates, bug fixes, and support. There are also tons of learning and troubleshooting resources and documentation accessible.

Packed with Great Features:

OpenSSL is appropriate for a broad range of applications and use cases as it offers an extensive collection of cryptographic operations, protocols, and tools. It provides critical management, certificate-related activities, and several encryption techniques in addition to SSL/TLS.

How to Use OpenSSL?

Command lines are the core of OpenSSL. With every new certificate, the configuration procedure will get easier and faster. All you need to do is learn a few standard OpenSSL commands.

OpenSSL is accessible for Windows, Linux, macOS, and BSD operating systems. Pre-compiled OpenSSL is included with most Linux distributions.

How Can Windows Users Use OpenSSL?

 If you’re using a computer running Windows initially, download OpenSSL.

Your C drive will have a directory called C:\OpenSSL-Win32 created for the program by default installation.

OpenSSL-Win32\bin\ is the location where the program is located. Double-click the openssl.exe file to launch it. You’ll see an OpenSSL> prompt popping up in a text window.

You need to enter the following OpenSSL instructions at this prompt. This is the location where the files you produce will be. Linux servers utilize Linux commands, while Windows users use Windows commands for OpenSSL.

How Can I Verify Whether Linux Has OpenSSL Installed?

Use the instructions below to see if your Linux system has OpenSSL installed.

With GNU/Linux distributions using rpm packages:

rpm -qa | grep -i openssl

With GNU/Linux distributions utilizing deb packages,

dpkg -l | grep -i openssl

For use with Arch Linux:

pacman -Q openssl

Commands for Generating CSR, Secret Keys, and Other Tasks

Case 1: Use the command shown below to create a CSR and a secret key:

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

Note: As an alternative, you may use a CSR-generating tool to generate CSR by using https://certera.com/ssl-tools/csr-generator link.

Case 2: Use the following command to create a self-signed certificate:

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

Case 3: Use the following command to create a CSR for a current secret key:

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

Case 4: Execute the following command to create a CSR based on an active certificate:

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

Case 5: Use the following command to remove a passphrase from a secret key:

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

OpenSSL for Checking

You can use these commands to verify the data included in a private key, certificate, or CSR.

Verify a Certificate Signing Request (CSR)

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

Verify a Private Key

openssl rsa -in privateKey.key -check

Verify a Certificate

openssl x509 -in certificate.crt -text -noout

Use the Command to Verify a PKCS#12 File (.pfx or .p12)

openssl pkcs12 -info -in
openssl pkcs12 -info -in keyStore.p12

Troubleshooting Through OpenSSL

Try one of these instructions if you get an error message that the private differs from the certificate or that a certificate you put on a website isn’t trusted.

Check to see if the data inside of the CSR or private key matches the MD5 hash of the public 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

Verify the SSL connection. Every certificate, including the intermediate ones, needs to be on show.

openssl s_client -connect www.paypal.com:443

Wrap Up!

It may take some time to become familiar with OpenSSL commands, but the more you use them, the more proficient SSL certificate management becomes. This article is a great resource if you’re searching for OpenSSL and its commands.

You should be familiar enough with it by now to create, install, and maintain SSL certificates on different servers using its commands.

<?xml version="1.0" encoding="UTF-8"?><svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 109.7 29.02"><defs><style>.cls-1{fill:#fff;}</style></defs><path class="cls-1" d="m5.38,22.85c-3.1-.26-5.3-1.92-5.38-4.8h3.6c.1,1.1.67,1.85,1.78,2.09v-4.58c-2.47-.62-5.38-1.32-5.38-4.87,0-2.83,2.26-4.68,5.38-4.92v-1.94h1.54v1.94c3,.24,5.02,1.85,5.23,4.7h-3.62c-.1-.94-.67-1.66-1.61-1.94v4.54c2.5.65,5.42,1.3,5.42,4.85,0,2.45-1.92,4.73-5.42,4.97v1.94h-1.54v-1.97Zm0-10.25v-4.15c-1.1.17-1.87.84-1.87,2.06,0,1.13.77,1.7,1.87,2.09Zm1.54,3.38v4.2c1.22-.22,1.94-1.06,1.94-2.14s-.82-1.68-1.94-2.06Z"/><path class="cls-1" d="m17.62,8.33h-2.33v-3.1h5.78v17.5h-3.46v-14.4Z"/><path class="cls-1" d="m28.27,17.81c.26,1.39,1.15,2.18,2.71,2.18,1.97,0,2.83-1.46,2.83-5.4-.74,1.03-2.16,1.63-3.7,1.63-3.02,0-5.45-1.9-5.45-5.59,0-3.5,2.21-5.81,5.91-5.81,4.75,0,6.22,3.22,6.22,8.76,0,5.95-1.32,9.17-5.95,9.17-3.72,0-5.5-2.38-5.69-4.94h3.12Zm5.23-7.15c0-1.92-1.1-2.98-2.81-2.98s-2.81,1.18-2.81,2.93c0,1.58.89,2.88,2.93,2.88,1.68,0,2.69-1.13,2.69-2.83Z"/><path class="cls-1" d="m41.28,22.9c-1.22,0-2.09-.86-2.09-1.97s.86-1.97,2.09-1.97,2.04.86,2.04,1.97-.86,1.97-2.04,1.97Z"/><path class="cls-1" d="m49.54,17.81c.26,1.39,1.15,2.18,2.71,2.18,1.97,0,2.83-1.46,2.83-5.4-.74,1.03-2.16,1.63-3.7,1.63-3.02,0-5.45-1.9-5.45-5.59,0-3.5,2.21-5.81,5.91-5.81,4.75,0,6.22,3.22,6.22,8.76,0,5.95-1.32,9.17-5.95,9.17-3.72,0-5.5-2.38-5.69-4.94h3.12Zm5.23-7.15c0-1.92-1.1-2.98-2.81-2.98s-2.81,1.18-2.81,2.93c0,1.58.89,2.88,2.93,2.88,1.68,0,2.69-1.13,2.69-2.83Z"/><path class="cls-1" d="m64.56,17.81c.26,1.39,1.15,2.18,2.71,2.18,1.97,0,2.83-1.46,2.83-5.4-.74,1.03-2.16,1.63-3.7,1.63-3.02,0-5.45-1.9-5.45-5.59,0-3.5,2.21-5.81,5.9-5.81,4.75,0,6.22,3.22,6.22,8.76,0,5.95-1.32,9.17-5.95,9.17-3.72,0-5.5-2.38-5.69-4.94h3.12Zm5.23-7.15c0-1.92-1.1-2.98-2.81-2.98s-2.81,1.18-2.81,2.93c0,1.58.89,2.88,2.93,2.88,1.68,0,2.69-1.13,2.69-2.83Z"/><path class="cls-1" d="m81.79,0h3.29l-6.48,27.07h-3.29L81.79,0Z"/><path class="cls-1" d="m96.89,9.43h3.58l-8.23,19.59h-3.58l2.88-6.62-5.33-12.96h3.77l3.43,9.29,3.48-9.29Z"/><path class="cls-1" d="m105.62,22.73h-3.36v-13.3h3.36v2.06c.84-1.37,2.23-2.26,4.08-2.26v3.53h-.89c-1.99,0-3.19.77-3.19,3.34v6.62Z"/></svg>