In fact your question was duplicate and the same question already appeared in Upgrade openssl 1.1.0 to 1.1.1 in Ubuntu 18.04.
As already answered by @Kevin Bowen, openssl 1.1.1 is not in the current Ubuntu repositories, you will need to download, compile, and install the latest OpenSSL version manually.
The same thing I too suggested in the beginning in
comments section. My favorite is always to install in
/opt, so I suggested that too in
If you don't want to do, then you will be stuck for ever!
What is OpenSSL?
OpenSSL is a command line cryptography toolkit implementing the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) network protocols and related cryptography standards required by them.
Most network communication apps and tools that use
TLS / SSL protocols may have some OpenSSL tools installed in them. If you’re going to be using applications and packages that depend on the latest versions of OpenSSL, you may have to manually install it on Ubuntu systems.
OpenSSL relies on two important libraries that are part of the OpenSSL project:
- libssl provides the client and server-side implementations for SSLv3
- libcrypto provides general cryptographic and X.509 support needed by
SSL/TLS but not logically part of it
The default toolket of OpenSSL that comes with Ubuntu isn’t the latest. To get the latest, you must download it yourself and install.
Guide to install the latest version of
openssl 1.1.1b on Ubuntu 18.04.
Step 1 : Download openssl 1.1.1b
Download the latest openssl 1.1.1b release from from Ubuntu source package….
OpenSSL Cryptography and SSL/TLS Toolkit
Figure-1: Download openssl 1.1.1b
You can also easily install openssl 1.1.1b package by running the commands below…
Step 2 : Install Openssl from the tar.gb package
$ sudo mkdir /opt/openssl
Figure-2: Create folder for openssl under /opt directory.
Now that you’ve downloaded the correct archive package for your system into
~/Downloads folder, run the following commands to install
$ sudo tar xfvz ~/Downloads/openssl-1.1.1b.tar.gz --directory /opt/openssl
Figure-3: Extraction into /opt/openssl is complete.
$ perl --version
Figure-4: Perl version.
LD_LIBRARY_PATH environment variable with the following value:
$ export LD_LIBRARY_PATH=/opt/openssl/lib
LD_LIBRARY_PATH is set with correct value by this command:
$ echo $LD_LIBRARY_PATH
Figure-5: Value of environment variable LD_LIBRARY_PATH is /opt/openssl/lib.
$ cd /opt/openssl/openssl-1.1.1b
$ sudo ./config --prefix=/opt/openssl --openssldir=/opt/openssl/ssl
Figure-6: config command
$ sudo make
make test command to check for possible errors:
$ sudo make test
Figure-7: Bingo! All tests successful.
make install commands:
$ sudo make install
openssl binary being located?
Issue the following commands:
$ sudo updatedb # rebuild library cache
$ locate openssl | grep /opt/openssl/bin
Figure-8: Locate openssl binary.
/usr/bin also has
openssl binary which is an earler version. The presence of this
unwanted openssl binary
/usr/bin/openssl is going to cause us trouble, so we have to check this out!
Issue the following commands in order to tackle
$ cd /usr/bin
$ ls -l openssl
$ sudo mv openssl openssl.old # rename earlier version openssl to openssl.old
Figure-9: Rename earlier version of openssl binary to openssl.old.
Step 3 : Setup
PATH environment variable
Openssl needs to set
PATH environment variables which is to be set as shown below.
Create a file called
$ sudo touch /etc/profile.d/openssl.sh
$ sudo vi /etc/profile.d/openssl.sh
Add the following contents:
Save and close the file. Make it executable using the following command.
$ sudo chmod +x /etc/profile.d/openssl.sh
Then, set the environment variables permanently by running the following command:
$ source /etc/profile.d/openssl.sh
Log out or reboot your system.
Now, check the
PATH environment variable:
$ echo $PATH
Figure-10: PATH envirnement variable having /opt/openssl/bin directory
$ which openssl
Figure-11: The binary 'openssl' is under '/opt/openssl/bin' directory
Now, check the
openssl version using command:
$ openssl version
Figure-12: openssl latest version
Now, check the openssl version using command line tool:
Figure-13: Check version through 'openssl' command line.
What will happen if
LD_LIBRARY_PATH is not properly set?
Figure-14: Error thrown by 'openssl' command line when 'LD_LIBRARY_PATH' is not properly set.
As decribed by
Step-3, you must set
LD_LIBRARY_PATH to correct value which is
$ export LD_LIBRARY_PATH=/opt/openssl/lib:$LD_LIBRARY_PATH
This method downloads, extracts, compiles, and installs the latest OpenSSL version 1.1.1b manually.