Ei Client VPN-tilkopling bryt saman, sertifikatet i ACM vert erstatta, og ingenting endrar seg. Sertifikatobjektet var aldri det endepunktet brukte. Eit endepunkt lagrar ved opprettinga ei tilknyting til eit sertifikat, saman med klient-CA-en det skal validere mot, autentiseringstypen, subnetta og autorisasjonsreglane, og ingen av desse tilknytingane har eit endringskall som godtek eit erstatningssertifikat. Å erstatte byta bak ein ARN er ei endring av sertifikatet, ikkje av endepunktet som fanga det.

Endepunktet lagrar referansar, ikkje sertifikat

Mekanismen fortener ei presis formulering fordi han forklarar heile feilen. create-client-vpn-endpoint tek ein ARN for eit serversertifikat og ein ARN for ein klientrotsertifikatkjede, og endepunktet som oppstår held på desse referansane pluss autentiseringsvala som faste eigenskapar. API-flata tilbyr ingen operasjon som byter serversertifikatet på eit eksisterande endepunkt.

Du kan stadfeste bindinga utan å gisse. aws ec2 describe-client-vpn-endpoints --client-vpn-endpoint-ids cvpn-endpoint-0123456789abcdef0 skriv ut sertifikatet sin ARN, klientrotkjeda sin ARN, autentiseringstypen, klienten sin CIDR og dei tilknytte subnetta, som er heile settet med eigenskapar du måtte gjenskape. Køyr han før og etter ein ny import, og utdataa flyttar seg ikkje. Det er beviset på at den nye importen aldri kunne hjelpe.

Kvifor ein ny import ikkje kan nå endepunktet

Ein ny import skriv ein ny sertifikatkropp under ein eksisterande ARN. Det er ein legitim operasjon når eit sertifikat nærmar seg utløp, og ACM godtek han så lenge den private nøkkelen stemmer og kjeda validerer. Det han ikkje gjer, er å køyre valideringa frå opprettinga av endepunktet på nytt, så tilknytinga og materialet bak henne held fram med å vere som dei var då endepunktet vart bygt.

Det er òg derfor symptomet les som ein nettverksfeil. TLS-handtrykket feilar eller vert nullstilt før autorisasjonen i det heile vert vurdert, så tryggingsgrupper, ruter og autorisasjonsreglar ser alle uskuldige ut, og det er dei.

Kjeda er ein del av klientsertifikatet

Den andre halvdelen av feilen ligg i klientsertifikatet, og han er lettare å avvise. Eit klientsertifikat må importerast med kjeda som gav det ut, sjølv om importsjemaet viser feltet som valfritt. Utan kjeda kan ikkje endepunktet byggje ein sti frå klientsertifikatet til klientrot-CA-en det vart konfigurert med, og tilkoplinga endar i ein mjuk nullstilling som høyrest ut som ein brannmur som slepp pakkar. openssl verify -CAfile root-ca.pem client.crt svarar på det spørsmålet lokalt på eit sekund, og det bør vere den første kommandoen du køyrer.

Ny import med kjeda er ei reell retting for den halvdelen, og ho er framleis ikkje nok åleine. Når ACM-objektet først er endra, er endepunktet med den gamle tilknytinga det gale å halde fram med å teste mot. Begge trinna høyrer til same reparasjon, og difor er den todelte rettinga ikkje ei motsetning.

Å gjenopprette eit endepunkt er ein migrasjon

Å opprette eit erstatningsendepunkt er ein migrasjon, ikkje eit nytt forsøk, og å handsame det som eit nytt forsøk er måten team endar opp med to halvkonfigurerte endepunkt. Det nye endepunktet får ein ny ID og, med mindre du planla det, eit nytt DNS-namn for kvar brukar. Hald klientprofilen peikande på eit namn i staden for ei adresse, slik at bytet vert ei postendring i staden for ein ny distribusjon.

Rekkjefølgja som held dette trygt, er kort: opprett det nye endepunktet med same CIDR, subnett og autorisasjonsreglar, eksporter ein fersk profil med aws ec2 export-client-vpn-client-configuration, og verifiser med éin brukar. Først etter det vert det gamle endepunktet teke ned.

Avviklinga av det gamle endepunktet har si eiga rekkjefølgje. Trekk tilbake klientsertifikata du ville avvikle, før du slettar det, fordi eit nytt endepunkt som framleis stolar på den gamle CA-en held fram med å godta sertifikat du trudde var borte. Slett deretter det gamle endepunktet og fjern autorisasjonsreglane, slik at ein utdatert profil ikkje kan kople seg til eit målnettverk du trudde var lukka. Skriv ID-en til det gamle endepunktet og tilknytingsidentifikatorane i endringsposten, fordi ein migrasjon samanlikna med minnet er måten eit fungerande endepunkt vert gjenoppbygt to gonger.

Set rekkjefølgje på diagnosen

Skil tre feil før du endrar noka konfigurasjon. Klienten kan ikkje fullføre TLS, klienten fullfører TLS og er ikkje autorisert, eller klienten koplar til og når ikkje ein destinasjon. Sertifikattilknytinga høyrer til den første, ein autorisasjonsregel som ikkje dekkjer klientadressa høyrer til den andre, og ei rute eller ei tryggingsgruppe høyrer til den tredje, der det nesten alltid er feil trekk å gjenopprette eit endepunkt.

Eit endepunkt som virka i månadsvis og deretter stoppa, utan endring av sertifikat eller policy, er sitt eige tilfelle. Å byggje det på nytt med identiske innstillingar kan gjenopprette tenesta, men det er ein grunn til å halde konfigurasjonen reproduserbar, ikkje ein grunn til å byggje på nytt ved kvar hending.

Hald fire ting under versjonskontroll slik at neste gjenoppbygging vert ein diff og ikkje ein improvisasjon: endepunktparametrane, ARN-ane for sertifikatet og kjeda, autorisasjonsreglane og klienten sin CIDR. Dokumentasjonen for Client VPN-autentisering viser kva sertifikat som spelar kva rolle, noko det er verdt å sjekke før du i det heile tek for gitt at eit sertifikat er problemet. Viss ein ny import ikkje endrar noko og endepunktet framleis vert nullstilt, er tilknytinga den mistenkte, og svaret er eit nytt endepunkt bygt frå dei registrerte parametrane. Viss endepunktet faktisk tek opp det nye objektet, var tilknytinga alt korrekt, og feilen sit i klientkjeda eller autorisasjonslaget.

Relaterte artiklar