ConnMan strādā pēcpusdienu un pēc tam atsakās, un žurnāla rinda piemin sertifikāta pārbaudi. Šī rinda sūta cilvēkus pie CA pakotnēm, kas nekad nav bijušas salauztas. Divas dažādas kļūmes rada gandrīz vienādu neveiksmes formu: beidzas sesijas sīkdatnes derīgums, vai arī servera sertifikāts patiešām ir mainījies. Tās var atšķirt apmēram minūtē, un tikai viena no tām vispār attiecas uz pirksta nospiedumu.

Divas kļūmes, viena mulsinoša žurnāla rinda

Tās atšķiras pēc diviem novērojumiem, un nevienam nav vajadzīga otra lasīšana. Pirmais ir tas, kad sākās kļūme: izbeigusies sīkdatne nāk pēc stundām vai dienām ilga darba, un aizstāts sertifikāts nāk uzreiz pēc vārtejas maiņas.

SignalExpired cookieChanged certificate
When it startedafter hours or days of workingright after a gateway change
Fingerprint from a fresh authenticateunchangeddifferent value
Usual log tailHTTP CONNECT 401 / unauthorizedsigner not found / verify failed
Repairreplace the cookie, restartre-pin deliberately, then restart

Minūtes tests ir zemāk esošā authenticate palaišana. Salīdziniet tās FINGERPRINT ar OpenConnect.ServerCert failā. Identisks pirksta nospiedums ar citu COOKIE nozīmē aizstāt tikai sīkdatni. Atšķirīgs pirksta nospiedums nozīmē, ka servera sertifikāts patiešām ir mainījies, tāpēc apzināti piespraudiet to no jauna un pierakstiet, kas to apstiprināja.

Ģenerējiet materiālu, nevis ierakstiet to ar roku

ConnMan nav OpenConnect profila importēšanas soļa, atšķirībā no NetworkManager. Tas lasa nodrošināšanas failu, kura vērtības ir jāsagatavo iepriekš, un atbalstītais veids, kā tās sagatavot, ir OpenConnect authenticate režīms.

sudo openconnect --csd-wrapper=/home/user/.cisco/csd-wrapper.sh \
  --authenticate --user myuser vpn.example.com

Izvade izdrukā četras vērtības: POST, COOKIE, HOST un FINGERPRINT. Pirksta nospiedums ar prefiksu sha256: ir servera piespraude. Sīkdatne ir sesijas artefakts, kura dzīves ilgumu nosaka vārteja. Uztveriet tās kā dažādus noslēpumu veidus: tām beidzas derīgums pēc dažādiem grafikiem, un ir sagaidāms, ka mainīsies tikai viena.

Fails satur abas, un tās noveco dažādi

Nodrošināšanas fails atrodas /var/lib/connman-vpn/ mapē, un to katram savienojumam lasa VPN dēmons, nevis sistēmas teknē esošā lietotne. Turiet savienojuma nosaukumu globālajā sadaļā un protokola detaļas piegādātāja sadaļā.

[global]
Name = Company VPN

[provider_openconnect]
Type = OpenConnect
Name = Company Cisco VPN
Host = vpn.example.com
Domain = corp.example
OpenConnect.ServerCert = sha256:...
OpenConnect.Cookie = ...

Izmantojiet to resursdatora nosaukumu, kuru portāls patiešām apkalpo. Kails IP adrese var izturēt sertifikāta pārbaudi un tomēr neizdoties, jo ierīce maršrutē pēc virtuālā resursdatora un gaida nosaukumu.

systemctl status connman-vpn --no-pager   # is the daemon even installed and running
sudo systemctl restart connman-vpn       # after the file edit
journalctl -u connman-vpn --since '1 hour ago'  # after the connection attempt

Ko žurnāls patiešām rāda

Teknes padoms nepateiks, kura kļūme jums ir. Žurnāls pateiks, ja lasīsiet secību, nevis pirmo satraucošo rindu. Novecojusi sīkdatne parasti rāda, ka TLS sarunas ir pabeigtas un HTTP slānis pēc tam noraida; tāpēc vārdi par sertifikātiem stāv blakus autorizācijas kļūmei.

Salīdziniet jaunu authenticate palaišanu ar vērtībām failā. Ja pirksta nospiedums sakrīt un atšķiras tikai sīkdatne, atbilde ir pieejama, neaiztiekot uzticēšanās iestatījumus.

Atjauniniet izbeigušos lauku

Atkārtojiet authenticate komandu, aizstājiet OpenConnect.Cookie un restartējiet dēmonu. Atstājiet pirksta nospiedumu mierā, ja vien jaunā izvade neuzrāda citu vērtību; tādā gadījumā servera sertifikāts patiešām tika aizstāts, un atkārtota piespraušana ir lēmums, kas kādam jāpieraksta, nevis jāielīmē no kļūdas ziņojuma.

Atjaunināšanas automatizēšana ir saprātīga: mazs skripts nolasa paroli no standarta ievades, palaiž authenticate režīmu un pārraksta tikai sīkdatnes rindu. Turiet akreditācijas datus ārpus skripta un lasāmus tikai tam kontam, kas to palaiž, un padariet pārrakstīšanu atomisku, lai neveiksmīga palaišana neatstātu pusrakstītu failu.

Ja atjaunināšana nepieciešama ik pēc dažām stundām, pierakstiet intervālu. Tas ir vārtejas sesiju politikas īpašums, un tas izlemj, vai automatizēt atjaunināšanu vai lūgt garāku sesiju.

Saistītie raksti