How to Install and Configure OpenSSL on Windows 10 and 11
Definitive guide to installing OpenSSL using precompiled binaries, configuring system environment variables, and validating cryptographic certificate generation from the terminal.
01. Introduction and Prerequisites
OpenSSL is an essential cryptographic tool for developers and system administrators. It allows you to generate self-signed SSL certificates, RSA/ECC keys, and test secure TLS connections. On Windows, the cleanest way to install it without compiling source code is by using official community-maintained binaries.
02. Download and Binary Installation
- For Windows, the recommended approach is using precompiled binaries from trusted maintainers (such as Shining Light). You can also review the official source code, development status, and community releases directly on their official repository:
- Official OpenSSL GitHub Repository: github.com/openssl/openssl
- Windows Binaries Distributor: Shining Light Win32/Win64 OpenSSL
- Download the appropriate 64-bit installer for Windows, run it with administrator privileges, and leave the default installation path at
C:\Program Files\OpenSSL-Win64.
03. Configuring Environment Variables
To execute openssl from any CMD or PowerShell console without typing the full path, you must add it to the system PATH:
- Press the
Windowskey, type Environment variables and open the system settings option. - Click on the Environment Variables... button.
- Under system variables, locate and select Path, then click Edit.
- Add a new path entry pointing to the binary folder:
C:\Program Files\OpenSSL-Win64\bin
04. Verification and Testing in PowerShell
Open a new PowerShell or Command Prompt window and verify that the installation responds correctly by running:
To generate a test RSA private key and a self-signed certificate valid for 365 days, run the following commands in your working directory:
# Generate private key
openssl genrsa -out private.key 2048
# Generate self-signed certificate
openssl req -new -x509 -key private.key -out certificate.crt -days 365