17

I had problem doing sudo apt update for manually added repositories (I had problem with nodejs and docker) with my Ubuntu 17.10 VM running in VirtualBox. The error I get is Could not handshake: An unexpected TLS packet was received.

The following are steps that I took when trying to add docker repository and the output. The same thing happened when I tried to add nodejs as well.

sdnc-dev@sdncdev-VirtualBox:~/tools/idea-IC-173.4674.33/bin$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
OK
sdnc-dev@sdncdev-VirtualBox:~/tools/idea-IC-173.4674.33/bin$ sudo apt-key fingerprint 0EBFCD88
pub   rsa4096 2017-02-22 [SCEA]
      9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid           [ unknown] Docker Release (CE deb) <docker@docker.com>
sub   rsa4096 2017-02-22 [S]

sdnc-dev@sdncdev-VirtualBox:~/tools/idea-IC-173.4674.33/bin$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
[sudo] password for sdnc-dev: 
sdnc-dev@sdncdev-VirtualBox:~/tools/idea-IC-173.4674.33/bin$ sudo apt update 
Ign:1 https://download.docker.com/linux/ubuntu artful InRelease
Err:2 https://download.docker.com/linux/ubuntu artful Release
  Could not handshake: An unexpected TLS packet was received.
Hit:3 http://us.archive.ubuntu.com/ubuntu artful InRelease
Get:4 http://security.ubuntu.com/ubuntu artful-security InRelease [78.6 kB]
Get:5 http://us.archive.ubuntu.com/ubuntu artful-updates InRelease [78.6 kB]       
Get:6 http://us.archive.ubuntu.com/ubuntu artful-backports InRelease [72.2 kB]
Get:7 http://us.archive.ubuntu.com/ubuntu artful-updates/main amd64 Packages [226 kB]
Get:8 http://us.archive.ubuntu.com/ubuntu artful-updates/main i386 Packages [222 kB]
Get:9 http://us.archive.ubuntu.com/ubuntu artful-updates/main Translation-en [101 kB]
Get:10 http://us.archive.ubuntu.com/ubuntu artful-updates/universe i386 Packages [91.9 kB]
Get:11 http://us.archive.ubuntu.com/ubuntu artful-updates/universe amd64 Packages [92.8 kB]
Get:12 http://us.archive.ubuntu.com/ubuntu artful-updates/universe Translation-en [52.9 kB]
Reading package lists... Done              
E: The repository 'https://download.docker.com/linux/ubuntu artful Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.

Here is the details of my setup:

   VM: Ubuntu 17.10
   VirtualBox 5.2.8 r121009 (Qt5.6.2)
   I am behind corporate proxy.

Does anyone know how to fix this?

Phuong Hoang
  • 273
  • 1
  • 2
  • 7

3 Answers3

21

Check if the proxy is also set for https. Since curl is working with https, I assume, that somewhere a https_proxy variable is set (e.g. ~/.bashrc). apt requires a proxy configuration in /etc/apt/apt.conf or /etc/apt/apt.conf.d/. You need to specify the proxy for all protocols:

# e.g. in file /etc/apt/apt.conf.d/05proxy
Acquire::http::proxy "http://192.168.0.1:3128/";
Acquire::https::proxy "http://192.168.0.1:3128/";
Acquire::ftp::proxy "http://192.168.0.1:3128/";

Also keep in mind, if the proxy configuration is only set for the sdnc-dev user, you need sudo -E to expose the environment to the root user.

Simon Sudler
  • 3,931
  • 3
  • 21
  • 34
  • 7
    I did set the https proxy in /etc/apt/apt.conf/ file. Turned out that thehttpssetting was set wrong. It was set it "https://ip:port/" instead of "http://ip:port/" (without thes` character). I changed it and it works now. Not sure if this is the real cause, but at least I have a working apt now. – Phuong Hoang Mar 14 '18 at 20:19
10

I got the same error when using apt-get update, with Ubuntu 20.04 LTS. I have configured the proxy during the installation, in this way the proxy urls are in /etc/apt/apt.conf.d/05proxy

In my case I wrongly configured the proxy URL (for my organization) and need to edit 05proxy and change https://proxy.mydom.it to http://proxy.mydom.it

Wrong config:

Acquire::http::proxy "https://proxy.mydom.it:8080";
Acquire::https::proxy "https://proxy.mydom.it:8080";

Good config:

Acquire::http::proxy "http://proxy.mydom.it:8080";
Acquire::https::proxy "http://proxy.mydom.it:8080";

Turning https to http, in my case, fixed the TLS error

0

This answer solved it in my case: https://stackoverflow.com/a/60274085/486564

Simple answer

If you are behind a proxy server, please set the proxy for curl. The curl is not able to connect to server so it shows wrong version number. Set proxy by opening subl ~/.curlrc or use any other text editor. Then add the following line to file: proxy= proxyserver:proxyport For e.g. proxy = 10.8.0.1:8080

If you are not behind a proxy, make sure that the curlrc file does not contain the proxy settings.

Jazz.
  • 101