ConnMan funciona toda unha tarde e despois rexeita, e a liña do rexistro menciona a verificación do certificado. Esa liña manda a xente a paquetes de CA que nunca estiveron rotos. Dous fallos distintos producen case a mesma forma de fallo: a cookie de sesión caduca, ou o certificado do servidor cambiou de verdade. Pódense separar en arredor dun minuto, e só un deles ten que ver coa pegada.

Dous fallos, unha liña de rexistro confusa

Sepáranse con dúas observacións, e ningunha delas require unha segunda lectura. A primeira é cando comezou o fallo: unha cookie caducada chega tras horas ou días de funcionamento, e un certificado substituído chega xusto despois dun cambio de pasarela.

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

A proba dun minuto é a execución de authenticate de abaixo. Compare o seu FINGERPRINT con OpenConnect.ServerCert no ficheiro. Unha pegada idéntica cunha COOKIE distinta significa substituír só a cookie. Unha pegada distinta significa que o certificado do servidor cambiou de verdade, así que volva fixalo a propósito e anote quen o aprobou.

Xere o material en lugar de escribilo

ConnMan non ten un paso de importación para un perfil de OpenConnect, a diferenza de NetworkManager. Le un ficheiro de aprovisionamento cuxos valores deben producirse de antemán, e a forma admitida de producilos é o modo authenticate de OpenConnect.

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

A saída imprime catro valores: POST, COOKIE, HOST e FINGERPRINT. A pegada, co prefixo sha256:, é a fixación do servidor. A cookie é o artefacto de sesión cunha vida útil que decide a pasarela. Tráteos como tipos distintos de segredo: caducan segundo calendarios distintos, e só se espera que cambie un.

O ficheiro leva ambos, e envellecen de forma distinta

O ficheiro de aprovisionamento vive en /var/lib/connman-vpn/ e léo por conexión o demo de VPN, non o applet da bandexa. Manteña o nome da conexión na sección global e os detalles do protocolo na sección do provedor.

[global]
Name = Company VPN

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

Use o nome de host que o portal serve realmente. Un enderezo IP espido pode pasar a comprobación do certificado e aínda así fallar, porque o aparello encamiña polo host virtual e espera o nome.

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

Que mostra realmente o rexistro

A información emerxente da bandexa non dirá que fallo ten. O rexistro si, se le a secuencia en lugar da primeira liña alarmante. Unha cookie vella adoita mostrar que a negociación TLS se completou e que a capa HTTP rexeita despois, e por iso as palabras sobre certificados aparecen xunto a un fallo de autorización.

Compare unha execución de authenticate nova cos valores do ficheiro. Se a pegada coincide e só difire a cookie, xa ten a resposta sen tocar os axustes de confianza.

Renove o campo que caducou

Repita o comando authenticate, substitúa OpenConnect.Cookie e reinicie o demo. Deixe a pegada en paz salvo que a saída nova mostre un valor distinto; nese caso o certificado do servidor substituíuse de verdade e volver fixalo é unha decisión que alguén debe rexistrar, non un pegamento dunha mensaxe de erro.

Automatizar a renovación é razoable: un script pequeno le o contrasinal da entrada estándar, executa o modo authenticate e reescribe só a liña da cookie. Manteña a credencial fóra do script e lexible só pola conta que o executa, e faga a reescritura atómica para que unha execución fallida non deixe un ficheiro a medio escribir.

Se a renovación fai falta cada poucas horas, anote o intervalo. É unha propiedade da política de sesións da pasarela, e decide se convén automatizar a renovación ou pedir unha sesión máis longa.

Artigos relacionados