A caducidade da cookie de ConnMan OpenConnect, non un problema de certificado
Dous fallos vense iguais no rexistro. Compare a pegada fixada coa cookie de sesión, renove o campo que caducou e despois reinicie o demo.
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.
| Signal | Expired cookie | Changed certificate |
|---|---|---|
| When it started | after hours or days of working | right after a gateway change |
| Fingerprint from a fresh authenticate | unchanged | different value |
| Usual log tail | HTTP CONNECT 401 / unauthorized | signer not found / verify failed |
| Repair | replace the cookie, restart | re-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.comA 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 attemptQue 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.