Problem mit dem Zertifikat des App Center Servers

appcenter
german
certificates

#1

Hallo zusammen,

ich habe eine Meldung im AppCenter mit der ich nicht richtig klar komme, vielleicht kann mir ja jemand einen Tipp geben.

nach: ~$ sudo univention-app update
kommt die Meldung:

Downloading "https://appcenter.software-univention.de/meta-inf/categories.ini"...
Es gibt ein Problem mit dem Zertifikat des App Center Servers https://appcenter.software-univention.de. ([SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:661))

und nach:~$ sudo update-ca-certificates
Updating certificates in /etc/ssl/certs...
0 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...
done.

Das ganze ist das erstemal aufgetreten, als ich OpenVPN installieren wollte. Hier wurde eine “korupte Installation” hinterlassen und alle weitere Versuche z.B. aufruf des AppCenters im UCS bringen o.g. Fehlermeldung.
Die momentan installierte Version ist 4.3-1 errata157.
Die Installation ist auf einer virtuellen Maschiene mit Citrix XEN, falls das noch einen Einfluß hat, denke aber nicht.

Gruß Jo


#2

Huhu,

wie lautet die Ausgabe des folgenden Befehls:

curl -v https://appcenter.software-univention.de/meta-inf/categories.ini > /dev/null

Verwenden Sie in Ihrem Netzwerk einen Proxy für HTTP(S), entweder explizit eingestellt (über UCR-Variablen) oder einen transparenten Proxy?

Gruß
mosu


#3

Hallo Mosu,
danke für die Antwort,
ich hab mittlerweile schon ein paar Einstellungen probiert. Leider nicht mit dem Erfolg, den ich mir wünsche.
Zu Deiner Frage:

:/$ curl -v https://appcenter.software-univention.de/meta-inf/categories.ini > /dev/null
*   Trying 192.168.95.1...
* TCP_NODELAY set
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0* connect to 192.168.95.1 port 1080 failed: Verbindungsaufbau abgelehnt
* Failed to connect to 192.168.95.1 port 1080: Verbindungsaufbau abgelehnt
* Closing connection 0
curl: (7) Failed to connect to 192.168.95.1 port 1080: Verbindungsaufbau abgelehnt
:/$ ping univention.com
PING univention.com (78.47.199.151) 56(84) bytes of data.
64 bytes from www.univention.com (78.47.199.151): icmp_seq=1 ttl=59 time=4.67 ms
64 bytes from www.univention.com (78.47.199.151): icmp_seq=2 ttl=59 time=4.43 ms
64 bytes from www.univention.com (78.47.199.151): icmp_seq=3 ttl=59 time=4.59 ms
^C
--- univention.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 4.435/4.567/4.670/0.098 ms
:/$ ping 192.168.95.1
PING 192.168.95.1 (192.168.95.1) 56(84) bytes of data.
64 bytes from 192.168.95.1: icmp_seq=1 ttl=64 time=0.063 ms
64 bytes from 192.168.95.1: icmp_seq=2 ttl=64 time=0.056 ms
64 bytes from 192.168.95.1: icmp_seq=3 ttl=64 time=0.050 ms
64 bytes from 192.168.95.1: icmp_seq=4 ttl=64 time=0.043 ms
^C
--- 192.168.95.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3079ms
rtt min/avg/max/mdev = 0.043/0.053/0.063/0.007 ms

Ich habe noch zwei Pings hintendrann gesetzt weil ich mit unsicher war ob die Verbindung überhaupt steht.
Der Rechner hat zwei Netzwerkkarten:

docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.17.42.1  netmask 255.255.0.0  broadcast 0.0.0.0
        ether 02:42:67:69:9d:33  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet xxx.xxx.xxx.54  netmask 255.255.255.252  broadcast xxx.xxx.xxx.55
        inet6 fe80::6003:68ff:fe03:48b4  prefixlen 64  scopeid 0x20<link>
        ether 62:03:68:03:48:b4  txqueuelen 1000  (Ethernet)
        RX packets 10618  bytes 1159133 (1.1 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 16009  bytes 12444253 (11.8 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.95.1  netmask 255.255.255.0  broadcast 192.168.95.255
        inet6 fe80::28f2:89ff:fe71:92da  prefixlen 64  scopeid 0x20<link>
        ether 2a:f2:89:71:92:da  txqueuelen 1000  (Ethernet)
        RX packets 7374  bytes 1564568 (1.4 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 5525  bytes 8474687 (8.0 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1  (Lokale Schleife)
        RX packets 82485  bytes 20729680 (19.7 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 82485  bytes 20729680 (19.7 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Die externe “eth0” hängt fest am Web.
Vielleicht habe ich da was vertauscht.

Gruß Jo


#4

Hey,

Das bedeutet, dass Sie einen Proxy konfiguriert haben, der Proxy aber momentan nicht läuft. Entweder, Sie sorgen dafür, dass der Proxy wieder läuft, oder Sie schalten die Nutzung des Proxies aus, indem Sie die UCR-Variablen proxy/http und proxy/https wieder ausschalten (ucr unset proxy/http proxy/https).

Gruß
mosu


#5

Hallo mosu,

Ich habe tatsächlich di Variablen im Univention Configuration Registry gesetzt. Ich dachte eigentlich Squid installiert zu haben, da habe ich mich wohl mit den verschiedene Configurationen geirrt. Sorry.
Ich habe die Variablen über die Registry gelöscht. Mit dem Ergebnis:

:~$ sudo ucr dump| grep proxy
proxy/http:
proxy/https:
security/packetfilter/package/univention-bind/tcp/53/all/en: DNS proxy
security/packetfilter/package/univention-bind/udp/53/all/en: DNS proxy

Dannach habe ich den oben beschriebenen Befehl ausgeführt:

:*$ sudo ucr unset proxy/http proxy/https
Unsetting proxy/http
Unsetting proxy/https
File: /etc/systemd/system/docker.service.d/http-proxy.conf
File: /etc/clamav/freshclam.conf
File: /etc/apt/apt.conf.d/80proxy
File: /etc/profile
File: /etc/default/docker

Mit dem Ergebnis:

:~$ sudo ucr unset proxy/http proxy/https
W: The config registry variable 'proxy/http' does not exist
W: The config registry variable 'proxy/https' does not exist

Das scheint jetzt also funktioniert zu haben.

Der curl Befehl macht aber komische Sachen, das habe ich nicht verstanden:

ohne sudo:

:~$ curl -v https://appcenter.software-univention.de/meta-inf/categories.ini > /dev/null
*   Trying 192.168.95.1...
* TCP_NODELAY set
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0* connect to 192.168.95.1 port 3128 failed: Verbindungsaufbau abgelehnt
* Failed to connect to 192.168.95.1 port 3128: Verbindungsaufbau abgelehnt
* Closing connection 0
curl: (7) Failed to connect to 192.168.95.1 port 3128: Verbindungsaufbau abgelehnt

und mit sudo:

:~$ sudo curl -v https://appcenter.software-univention.de/meta-inf/categories.ini > /dev/null
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0*   Trying 176.9.114.147...
* TCP_NODELAY set
* Connected to appcenter.software-univention.de (176.9.114.147) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
* successfully set certificate verify locations:
*   CAfile: /etc/ssl/certs/ca-certificates.crt
  CApath: /etc/ssl/certs
* TLSv1.2 (OUT), TLS header, Certificate Status (22):
} [5 bytes data]
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
} [512 bytes data]
* TLSv1.2 (IN), TLS handshake, Server hello (2):
{ [113 bytes data]
* TLSv1.2 (IN), TLS handshake, Certificate (11):
{ [4472 bytes data]
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
{ [333 bytes data]
* TLSv1.2 (IN), TLS handshake, Server finished (14):
{ [4 bytes data]
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
} [70 bytes data]
* TLSv1.2 (OUT), TLS change cipher, Client hello (1):
} [1 bytes data]
* TLSv1.2 (OUT), TLS handshake, Finished (20):
} [16 bytes data]
* TLSv1.2 (IN), TLS change cipher, Client hello (1):
{ [1 bytes data]
* TLSv1.2 (IN), TLS handshake, Finished (20):
{ [16 bytes data]
* SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384
* ALPN, server accepted to use http/1.1
* Server certificate:
*  subject: C=DE; postalCode=28359; ST=Bremen; L=Bremen; street=Mary-Somerville Str. 1; O=Univention GmbH; OU=PremiumSSL Wildcard; CN=*.software-univention.de
*  start date: Aug 31 00:00:00 2015 GMT
*  expire date: Nov 28 23:59:59 2018 GMT
*  subjectAltName: host "appcenter.software-univention.de" matched cert's "*.software-univention.de"
*  issuer: C=GB; ST=Greater Manchester; L=Salford; O=COMODO CA Limited; CN=COMODO RSA Organization Validation Secure Server CA
*  SSL certificate verify ok.
} [5 bytes data]
> GET /meta-inf/categories.ini HTTP/1.1
> Host: appcenter.software-univention.de
> User-Agent: curl/7.52.1
> Accept: */*
>
{ [5 bytes data]
< HTTP/1.1 200 OK
< Date: Tue, 07 Aug 2018 18:49:25 GMT
< Server: Apache/2.4.25 (Debian)
< Last-Modified: Thu, 31 May 2018 09:04:45 GMT
< ETag: "181-56d7cc235338a"
< Accept-Ranges: bytes
< Content-Length: 385
<
{ [385 bytes data]
* Curl_http_done: called premature == 0
100   385  100   385    0     0   7453      0 --:--:-- --:--:-- --:--:--  7549
* Connection #0 to host appcenter.software-univention.de left intact

Das hat prinzipiel jetzt geklappt, wobei mir der unterschied zwischen dem Befehl mit und ohne sudo nicht klar ist. Das Problem mit dem AppCenter ist jetzt gelöst.

Also erstmal vielen herzlichen Dank

Gruß Jo


#6

Huhu,

dass es ohne sudo nicht funktioniert, ist klar. Die Proxykonfiguration wird in eine der Startdateien der Shell geschrieben. Wenn Sie also in einer laufenden Shell mit ucr unset … die Variablen entfernen, so wird nur diese Startdatei verändert — nicht aber die in der laufenden Shell bereits vorhandene Konfiguration (die Umgebungsvariablen http_proxy und https_proxy). Daher versucht curl ohne sudo weiterhin, diese zu nutzen.

Wenn Sie den Befehl mit sudo starten, so löscht sudo zuerst nahezu alle Umgebungsvariablen (darunter auch die für den Proxy), startet dann eine neue Shell (in der nun die Startdatei die Proxykonfiguration nicht mehr enthält) und dann curl. Ergo: kein Proxy.

Ohne sudo geht’s sofort auch dann, wenn Sie eine neue Shell starten (z.B. Logout & erneuter Login).

Das laufende App Center sollte sofort von der geänderten Konfiguration profitieren. Die manuellen curl-Aufrufe dienten ja nur dem Debugging.

Gruß
mosu