I have been running a production server with Ubuntu 18 installed. Recently, I found that my web application was not allowed on some of the firewalls installed at the customer location.

I found that my server is communicating at TLSv1.0, TLSv1.1, TLSv1.2 protocols, I assume that the firewall setting is allowing communication with the server on TLSv1.3 protocol only.

As Ubuntu 18 is shipped with OpenSSL version 1.1.0, and to make server support TLS v1.3 I have to upgrade OpenSSL to version 1.1.1 which is the latest one.

As this is a production server running nginx server, I don't want to directly try anything on the server.

root@energy-prod:~# nginx -v
nginx version: nginx/1.14.0 (Ubuntu)

What is the best way to upgrade OpenSSL to v1.1.1 without disturbing any other settings of the server?

  • 2
    FYI: »OpenSSL 1.1.1 SRU into Bionic« lists.ubuntu.com/archives/ubuntu-devel/2018-December/… In the meantime talk to the respective contact who is in charge of the firewall configuration, ask for requirements/recommendations/waivers. I doubt that you are the only one running 18.04 and having this problem nor do I think that not supporting TLS 1.3 at this point in time is the issue as it's still quite new and contrary to your statement I read that it still causes issues with some middleboxes, but you won't find out if you don't ask. – LiveWireBT Dec 19 '18 at 4:33
  • 2
    Upgrading will not be possible until that SRU goes through. There's just too much stuff that depends on OpenSSL to do the upgrade yourself, because it could break everything. – Thomas Ward Jan 24 at 19:42
  • 1
    finally bugs.launchpad.net/ubuntu/+source/openssl/+bug/1797386 is in Progress now – Tino Feb 28 at 12:59

According to the OpenSSL website:

The latest stable version is the 1.1.1 series. This is also our Long Term Support (LTS) version, supported until 11th September 2023.

Since this is not in the current Ubuntu repositories, you will need to download, compile, and install the latest OpenSSL version manually.

Below are the instructions to follow:

  1. Open a terminal (Ctrl+Alt+t).
  2. Fetch the tarball: wget https://www.openssl.org/source/openssl-1.1.1a.tar.gz
  3. Unpack the tarball with tar -zxf openssl-1.1.1a.tar.gz && cd openssl-1.1.1a
  4. Issue the command ./config.
  5. Issue the command make (You may need to run sudo apt install make gcc before running this command successfully).
  6. Run make test to check for possible errors.
  7. Backup current openssl binary: sudo mv /usr/bin/openssl ~/tmp
  8. Issue the command sudo make install.
  9. Create symbolic link from newly install binary to the default location:
    sudo ln -s /usr/local/bin/openssl /usr/bin/openssl
  10. Run the command sudo ldconfig to update symlinks and rebuild the library cache.

Assuming that there were no errors in executing steps 4 through 10, you should have successfully installed the new version of OpenSSL.

Again, from the terminal issue the command:

openssl version

Your output should be as follows:

OpenSSL 1.1.1a  20 Nov 2018

protected by Community Mar 23 at 17:06

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.