How to Manually Install OpenSSL on Ubuntu
Manually installing OpenSSL on Ubuntu gives you the newest security tools.
OpenSSL is a free program that helps computers talk to each other securely, like when you visit a website. It also handles secret codes to keep information safe.
You might need to install it yourself if your apps need the very latest security updates. For example, the version that comes with Ubuntu 22.04 might not be new enough for some tasks.
This guide shows you how to add the latest OpenSSL version so your programs have the best security available.
Download the latest OpenSSL package from openssl.org, then compile and install it using `make` and `make install`. Update your system’s `manpath.config` and `/etc/environment` files to point to the new installation directory.
Download the OpenSSL Package
First, visit the official website to get the latest version. https://www.openssl.org/
Install OpenSSL Manually
To manually install OpenSSL on Ubuntu, you’ll start by downloading the source code files and then unpacking them on your computer. This process involves running a few commands in your terminal to get the files and set them up.
Run these commands to download the files:
cd /tmp
wget https://www.openssl.org/source/openssl-1.1.1.tar.gz
tar xvf openssl-1.1.1.tar.gz
Once that's complete, run these commands to install the files:
cd openssl-1.1.1
sudo ./config -Wl,--enable-new-dtags,-rpath,'$(LIBRPATH)'
sudo make
sudo make install
Your new files are now stored in this folder:
OpenSSL 1.1.1 11 Sep 2018
built on: Sun Sep 23 22:27:39 2018 UTC
platform: linux-x86_64
options: bn(64,64) rc4(16x,int) des(int) idea(int) blowfish(ptr)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -O3 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPADLOCK_ASM -DPOLY1305_ASM -DNDEBUG
OPENSSLDIR: "/usr/local/ssl"
ENGINESDIR: "/usr/local/lib/engines-1.1"
Seeding source: os-specific
Update Your System Paths
Once OpenSSL is manually installed on Ubuntu, you must update your system's paths. This tells the system where to find the new version.
This is an important step to ensure your computer uses the OpenSSL you just installed, rather than an older version.
OpenSSL 1.1.0g 2 Nov 2017
built on: reproducible build, date unspecified
platform: debian-amd64
compiler: gcc -DDSO_DLFCN -DHAVE_DLFCN_H -DNDEBUG -DOPENSSL_THREADS -DOPENSSL_NO_STATIC_ENGINE -DOPENSSL_PIC -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DRC4_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DPADLOCK_ASM -DPOLY1305_ASM -DOPENSSLDIR=""/usr/lib/ssl"" -DENGINESDIR=""/usr/lib/x86_64-linux-gnu/engines-1.1""
OPENSSLDIR: "/usr/lib/ssl"
ENGINESDIR: "/usr/lib/x86_64-linux-gnu/engines-1.1"
) by default, you must tell your computer where to find your new installation.
1. Update the manual pages:
Edit the configuration file using this command:
sudo nano /etc/manpath.config
Add this line to the file:
MANPATH_MAP /sbin /usr/share/man
MANPATH_MAP /usr/sbin /usr/share/man
MANPATH_MAP /usr/local/bin /usr/local/man
MANPATH_MAP /usr/local/bin /usr/local/share/man
MANPATH_MAP /usr/local/sbin /usr/local/man
MANPATH_MAP /usr/local/sbin /usr/local/share/man
MANPATH_MAP /usr/X11R6/bin /usr/X11R6/man
MANPATH_MAP /usr/bin/X11 /usr/X11R6/man
MANPATH_MAP /usr/games /usr/share/man
MANPATH_MAP /opt/bin /opt/man
MANPATH_MAP /opt/sbin /opt/man
MANPATH_MAP /usr/local/ssl/bin /usr/local/ssl/man
Save and close the file, then update the database:
sudo mandb
2. Update the execution path:
Open the environment configuration file:
sudo nano /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/local/ssl/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
Save your changes and restart your computer. Your system should now recognize the new version of OpenSSL.
Summary
- OpenSSL is a toolkit that keeps your network communication secure.
- Manual installation is necessary if you need the latest version not provided by Ubuntu's default updates.
- The process involves downloading the files, installing them, and updating your system configuration files so your computer knows where to find the new software.
OpenSSL is a toolkit that keeps your network communication secure. Manual installation becomes necessary when you need the latest version, especially if it's not yet available through Ubuntu's default updates. This process involves downloading the files, installing them, and then updating your system configuration so your computer recognizes the new software.
Was this guide helpful?
About the Author
Richard
Tech Writer, IT Professional
Richard, a writer for Geek Rewind, is a tech enthusiast who loves breaking down complex IT topics into simple, easy-to-understand ideas. With years of hands-on experience in system administration and enterprise IT operations, he’s developed a knack for offering practical tips and solutions. Richard aims to make technology more accessible and actionable. He's deeply committed to the Geek Rewind community, always ready to answer questions and engage in discussions.
ideally don’ t use `sudo config` or `sudo make`
also in config you can specify where the openssl library installs to by using
`–openssldir=/foo/bar` that way you should be able to skip all the workarounds for linking
“ideally don’ t use `sudo config` or `sudo make`”
what do you use instead?
how to make apache on ubunt 16.04 working with openssl 1.1.1, phpinfo() still show 1.0.2 version
Thanks all i needed.
OpenSSL 1.1.1 11 Sep 2018
built on: Sun Sep 23 22:27:39 2018 UTC
platform: linux-x86_64
options: bn(64,64) rc4(16x,int) des(int) idea(int) blowfish(ptr)
compiler: gcc -fPIC -pthread -m64 -Wa,–noexecstack -Wall -O3 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPADLOCK_ASM -DPOLY1305_ASM -DNDEBUG
OPENSSLDIR: “/usr/local/ssl”
ENGINESDIR: “/usr/local/lib/engines-1.1”
Seeding source: os-specific
how to get all this verbose information of the package, tried openssl version command didn’t get much help. Also how to point the path to the different path