Per què OpenConnect rebutja la passarel·la després d’un canvi de certificat?
Una fallada de verificació després d’un canvi de certificat a la passarel·la és una decisió de confiança, no un túnel trencat. Trieu entre l’AC emissora i la fixació d’una sola clau.
Les passarel·les substitueixen certificats, i un client que ahir es connectava comença a aturar-se en el primer intercanvi TLS. El missatge indica un motiu de verificació i no una fallada de xarxa, i la màquina mateixa no ha canviat, que és la pista útil. El que s’ha trencat és la relació entre el certificat que ara es presenta i les arrels que el client està disposat a considerar. Reparar-ho és una decisió de confiança, així que preneu aquesta decisió abans d’escriure una opció.
Llegiu la fallada abans de canviar cap paràmetre de confiança
Un error de tipus signant absent significa que la cadena acaba en una cosa que el client no accepta. Pot ser un certificat renovat d’una autoritat interna, una substitució d’una de pública, o un dispositiu al mig que presenta el seu propi certificat. Només la redacció no pot distingir aquests casos, així que mireu l’emissor abans de decidir.
Executeu la connexió una vegada en primer pla i deixeu que falli, perquè la sortida interactiva porta el nom del servidor, la cadena d’emissors i l’empremta que el client ha calculat. Compareu aquest emissor amb una autoritat que la vostra organització operi realment. Si l’empremta ha canviat i l’emissor no, tracteu-ho com a sospitós fins que es confirmi una renovació per un canal en què ja confieu. Endevinar en aquest punt és com una persona acaba fixant la clau d’un interceptor.
Anoteu la versió del client a la mateixa nota. Una bona part de les fallades que semblen problemes de confiança vénen d’un client més antic que troba un intercanvi de passarel·la més nou.
Trieu entre confiar en l’emissor i fixar una clau
Totes dues opcions fan que la connexió funcioni. Es trenquen de maneres oposades més endavant, així que l’elecció pertany a la fallada que podeu tolerar.
| Approach | Good fit | What breaks it |
|---|---|---|
Trust the issuing CA with --cafile | Internal PKI you can obtain over an already trusted channel | CA rotation, or a client that still falls back to public roots |
Pin one key with --servercert | No CA relationship, or exactly one key should ever be accepted | Any reissue that generates a new key pair |
Recorreu al fitxer d’AC quan el certificat prové d’una autoritat que podeu verificar de manera independent, perquè les renovacions continuen funcionant sense tocar els arguments del client. Combineu-lo amb l’interruptor que desactiva les arrels del sistema, altrament una autoritat pública pot satisfer la comprovació en nom vostre. Fixeu la clau en lloc d’això quan la passarel·la no tingui cap AC que pugueu obtenir o quan l’excepció més estreta possible sigui l’objectiu. Cap camí no és més segur en abstracte: l’AC escala al llarg de les renovacions, la fixació és més fàcil de revisar.
Triïs el que triïs, el valor de confiança ha d’arribar per un canal que fos de confiança abans que passés el canvi. Un administrador, una sessió de consola a la passarel·la o una còpia presa amb antelació compleixen. Copiar l’empremta que mostri el missatge és convenient i és exactament el que un interceptor espera.
Posa el valor a l’ordre que realment executeu
La fixació viatja en una opció de certificat de servidor, i el seu prefix decideix la codificació: resums hexadecimals de clau pública sota sha1 o sha256, i la fixació de clau en base64 sota pin-sha256. Proporcionar-lo també desactiva la confiança del sistema per a aquesta execució, així que la clau fixada es converteix en tota la decisió.
sudo openconnect --protocol=gp vpn.example.com --user alice \
--servercert pin-sha256:AbCdEf... # single key pin
sudo openconnect vpn.example.com --cafile /etc/ssl/internal-ca.pem --no-system-trust
El client coincideix amb un resum truncat, acceptant només quatre caràcters després del prefix, cosa que és un parany i no una comoditat. Un valor escurçat passa localment i encara no identifica la passarel·la que volíeu. Copieu la cadena completa que el client va imprimir al primer intent en lloc de tornar-la a escriure des d’un missatge. Després moveu l’opció acabada al script embolcall, al fitxer d’unitat o al perfil que llança la connexió, perquè la decisió de confiança sigui revisable i les edicions posteriors siguin deliberades.
Els llançadors d’escriptori i el connector NetworkManager desen la seva pròpia còpia dels arguments de connexió. Un script editat al disc no arriba a un perfil importat abans, així que el valor desat continua guanyant.
Gestiona una rotació sense quedar-te fora
L’opció es pot donar més d’una vegada, així que un canvi planificat pot acceptar les claus sortint i entrant alhora. Afegiu la fixació nova abans que la passarel·la canviï, manteniu les dues llistades mentre les sessions migren, i deixeu caure la retirada quan la clau vella ja no hi sigui. Aquesta finestra necessita un responsable, ja que una doble fixació oblidada deixa una clau de confiança sense ningú que la vigili. Una reconstrucció que produeix un parell de claus nou trenca una fixació pura, i la recuperació és el mateix procediment en l’altra direcció.
Escriviu la data del canvi al costat de la fixació. Una fixació sense data de revisió és una caiguda futura que porta un missatge d’error confús.
Descarta la versió del client abans d’editar la confiança
Un client antic pot fallar mentre analitza una resposta d’autenticació que la passarel·la ha alterat des de llavors, i el missatge superficial encara parla de la connexió i no de l’analitzador. Compareu la versió instal·lada amb el que documenta la passarel·la, i proveu un paquet actual en un perfil d’usar i llençar abans de canviar cap paràmetre de confiança.
openconnect --version
Després de la reparació, verifiqueu dues coses i no una: el portal es carrega a través del túnel i una adreça interna ordinària respon. Un intercanvi de claus complet només demostra que la decisió de confiança s’ha acceptat.