Odpověď číslo 2 - v odkazu o naimportování certifikátu není uvedeno řešení či návod. Není mi jasné, proč chyba vzniká, žádný kejkle na routeru nedělám. Proč se to vyskytuje jen u mně ?
Na fóru jsem k tomuto problému sice něco našel, ale popis není user friendly, je tam jen cosi “naznačeno”. V Errata chyba není uvedena.
root@Omnia:~# curl https://api.turris.cz/firewall/turris-ipsets.gz.sign --cacert /etc/ssl/turris.pem
-o /tmp/turris-ipsets.gz.sign
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1024 100 1024 0 0 7420 0 --:--:-- --:--:-- --:--:-- 7420
root@Omnia:~# wget https://api.turris.cz/firewall/turris-ipsets.gz.sign -P /tmp/
--2019-02-01 19:50:24-- https://api.turris.cz/firewall/turris-ipsets.gz.sign
Resolving api.turris.cz... 217.31.192.101, 2001:1488:ac15:ff80::101
Connecting to api.turris.cz|217.31.192.101|:443... connected.
ERROR: cannot verify api.turris.cz's certificate, issued by 'emailAddress=michal.vaner@nic.cz,CN=Turris Emergency CA,OU=Labs,O=CZ.NIC,L=Prague,ST=Czech republic,C=CZ':
Unable to locally verify the issuer's authority.
To connect to api.turris.cz insecurely, use `--no-check-certificate'.
root@Omnia:~#
U mě ten příkaz proběhl korektně.
Jinak jsem analyzoval skript z balíčku turris-firewall a je zapotřebí tyto certifikáty, máte je @JardaB v adresáři /etc/ssl?
2019-02-01 19:50:05 info ucollect[14175]: Initializing emergency signal handlers
2019-02-01 19:50:05 info ucollect[14175]: Creating a main loop
2019-02-01 19:50:05 info ucollect[14175]: Creating uplink
2019-02-01 19:50:05 err ucollect[14175]: Can't load configuration of ucollect
2019-02-01 19:50:05 crit ucollect[14175]: No configuration available
2019-02-01 19:50:05 info ucollect[14188]: Initializing emergency signal handlers
2019-02-01 19:50:05 info ucollect[14188]: Creating a main loop
2019-02-01 19:50:05 info ucollect[14188]: Creating uplink
2019-02-01 19:50:05 err ucollect[14188]: Can't load configuration of ucollect
Alebrz jsem kdysi udelal takovej fixer na crl.pem,
S dovolenim jsem pouzil ten oneliner a malinko ten puvodni scriptik obohatil a lehce upravil. Asi by to slo jinak, mozna i lepe. Asi to neni ani potreba a da se rucne zavolat prislusny prikaz, ale tak nejak jsem si chtel dat male vecerni cviceni …
pem_fix.sh
#!/bin/bash
initTime=$( date +%s ) ; export initTime
if [[ $# -eq 0 ]] || [[ -z $1 ]]
then { echo "Missing or empty parameter, we stop here." ; echo "USAGE: ./pem_fix.sh [turris.pem|crl.pem]" ; exit 1 ; }
else
case $1 in
turris.pem)
fileToFix="${1:-turris.pem}"
fileLocation="/etc/ssl"
refreshCmd=$( curl -s https://api.turris.cz/firewall/turris-ipsets.gz.sign --cacert /etc/ssl/turris.pem -o /tmp/turris-ipsets.gz.sign )
;;
crl.pem)
fileLocation="/tmp"
fileToFix="${1:-crl.pem}"
refreshCmd=$( get-api-crl )
;;
*) { echo "Seems you did not provide correct filename." ; echo "USAGE: ./pem_fix.sh [turris.pem|crl.pem]" ; exit 1 ; }
;;
esac
cd $fileLocation || { echo "Can't access $fileLocation folder, we stop here." ; exit 1 ; }
if [[ -r "$fileToFix" ]]
then { fileTime=$( stat --format=%Y "$fileToFix" ) ; export fileTime ; }
[ "$initTime" -gt "$fileTime" ] && echo "No need to refresh $fileToFix"
else { echo -n "Refreshing $fileToFix ... " ; $refreshCmd ; export rc=$? ; }
if [[ $rc -eq 0 ]]
then { fileTime=$( stat --format=%Y "$fileToFix" ) ; export fileTime ; [ "$fileTime" -gt "$initTime" ] && echo "DONE" ; }
[ "$fileTime" -gt "$initTime" ] && echo "File $fileToFix was refreshed."
else { echo -n "FAILED" ; echo " with return code $rc" ; exit 1 ; }
fi
fi
fi
root@Omnia:~# curl --cacert /etc/ssl/turris.pem --crlfile /etc/ssl/crl.pem https://api.turris.cz/fire
wall/turris-ipsets.gz.sign -o /tmp/test2
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1024 100 1024 0 0 8062 0 --:--:-- --:--:-- --:--:-- 8126
root@Omnia:~#
To má takovou charakteristiku, že v tento okamžik, v tento čas Vám prostě nešel internet za WAN portem, všechny hlášky (až na pár vyjímek) se týkají stahování informaci z internetu v daném okamžiku.
Tak chyba Can't load configuration of ucollect trvala včera večer asi hodinu a půl a tím to skončilo.
Příkaz /usr/share/firewall/turris-download reaguje v terminálu dle předpovědi, ale nemá odezvu v logu.
Tam přetrvává chyba 2019-02-02 00:01:01 err turris-firewall-rules[]: (v63) Failed to download https://api.turris.cz/firewall/turris-ipsets.gz.sign
Podle vaší úvahy by mi každou celou hodinu nešel internet. Chybu Too many pings not answered on api.turris.cz: znám, ale například v aktuálním logu se nevyskytuje. Prohlídkou starých syslogů jsem zjistil, že se vyskytuje jen nahodile (některé dny), není to často a bývá to v rozmezí tak 10-15 minut po šesté hodině ráno.
Tři certifikát v /etc/ssl mám.
Ty tři chyby setrvávají - nestahuje se signatura ? pro firewall.
… server_uplink[]: Failed to download contract status
… server_uplink[]: Failed to get registration code
… turris-firewall-rules[]: (v63) Failed to download [https://api.turris.cz/firewall/turris-ipsets.gz.sign ](https://api.turris.cz/firewall/turris-ipsets.gz.sign)
Ručně to tedy funguje, divné. Jestli to dělá každou hodinu, pak bude něco s cronem (možná i s DNS).
Zkuste v celou hodinu pustit příkazy ručně, aby jsme vyloučily DNS a pak by to už bylo jen v cronu.
Jako že každou celou hodinu nefunguje DNS ? Ten cron zkusim, ale udivuje mne, že se k tomuto tématu nevyjádřil dosud někdo z týmu. Je to nefunkčnost zakladni funkce routeru.