Formålet til serversertifikatet ser rett ut, nøkkelen stemmer, datoane er i orden, og tilkoplinga feilar framleis med unsupported certificate purpose. Detaljen som løyser dette, står vanlegvis på same linje som feilen: ein djupnverdi og eit subject som namngir eit sertifikat høgare oppe i kjeda. To ulike testar vert køyrde, og berre éin av dei handlar om bladet. Å samanlikne dei forklarer kvifor utskifting av serversertifikatet ikkje endrar noko.

Kva sertifikat verifikatoren faktisk avviste

Ei kjeda er ikkje eitt objekt gjenteke tre gonger. Bladet ber namnet og nøkkelen til serveren, dei mellomliggjande sertifikata knyter det til ei rot, og kvart har sin eigen gyldigheitsperiode, avgrensingar og bruksområde. Når feilen nemner ei djupn, identifiserer talet ein posisjon i kjeda som verifikatoren bygde, og det er kanskje ikkje posisjonen du ventar om serveren sender ei uventa kjeda.

Les felta til sertifikatet på den djupna i staden for sertifikatet du antok var skuldig. Be om dei to utvidingane som avgrensar utferdinga i staden for å dumpe kvart felt, fordi svaret nesten alltid ligg i ein av dei. Utvidingsutdata er trygt å dele; private nøklar aldri.

openssl x509 -in issuing-ca.pem -noout -subject -issuer -ext basicConstraints -ext extendedKeyUsage

Om det namngitte sertifikatet er eit mellomliggjande sertifikat med utvida nøkkelbruk som nemner noko utan samband med TLS-serverautentisering, følgjer resten av feilen mekanisk. Kjeda kan ikkje brukast til formålet OpenVPN bad om.

Formålet til bladet og policyen til kjeda er to testar

Bladtesten stiller eit smalt spørsmål: tillèt dette slutteininga-sertifikatet serverautentisering for dette namnet? Kjedetesten stiller eit breiare: kan kvart sertifikat i banen tene det formålet? Ei sertifiseringsstyresmakt som berre har løyve til å utferde klientsertifikat, vil greie sine eigne signaturkontrollar og likevel feile den andre testen, fordi banen ho autoriserer ikkje omfattar formålet applikasjonen treng. Dei to testane feilar med dei same orda og har heilt ulike reparasjonar.

Derfor kan eit nyutferda blad, korrekt i kvart synleg felt, feile straks. Derfor høyrer rettinga vanlegvis til profilen til den utferdande styresmakta og ikkje til VPN-konfigurasjonen.

Ein manglande EKU er ikkje ein avgrensande EKU

RFC 5280 gjer utvidinga for utvida nøkkelbruk valfri og, når ho er til stades, avgrensande. Eit CA-sertifikat utan utvidinga har derfor ikkje sagt «nei» til serverautentisering, medan eit som berre listar eit uvesentleg formål har sagt noko svært spesifikt. Å handsame dei to tilstandane som likeverdige gjev feil diagnose og, verre, feil reparasjon. Skilnaden forklarer òg kvifor to styresmakter som ser like ut i ein konsoll, oppfører seg heilt ulikt i ei kjeda.

Bibliotekåtferd er heller ikkje einsarta her. OpenSSL-dokumentasjonen om stadfestingsval skildrar si eiga handsaming av formålskontrollar på CA-sertifikat, og den handsaminga er ein implementasjonspolicy snarare enn ein regel kvar TLS-stakk følgjer identisk. Skildr kva verifikatoren din gjer, og stadfest det deretter mot versjonen du faktisk køyrer.

Gjenskap feilen offline før du utferdar på nytt

Ei offline stadfesting tek applikasjonen ut av spørsmålet. Om kjeda feilar på same måte under same formål, er sertifikatet problemet, og ingen serverkonfigurasjon skjuler det. Om kjeda går gjennom offline medan tenesta framleis avviser, ber applikasjonen om eit anna formål eller brukar ei anna kjeda enn den du testa.

openssl verify -purpose sslserver -show_chain -CAfile root-ca.pem -untrusted issuing-ca.pem vpn-server.pem

-show_chain tyder noko fordi det skriv ut banen verktøyet bygde, og den er ofte ikkje filrekkjefølgja du oppgav. Desse utdataa er den raskaste måten å oppdage at eit andre mellomliggjande sertifikat vert henta frå eit tillitslager, at serveren sender ein krossignert variant du ikkje hadde tenkt, eller at formålsflagget du kopierte frå ei rettleiding høyrer til ei anna rolle enn den som vert tent.

Rett utferdningspolicyen, ikkje stadfestingskallet

Den varige reparasjonen er eit mellomliggjande sertifikat utferda under ein policy som tillèt formåla det skal tene, med avgrensinga skriven ned og gjennomgått. Å leggje kvart formål til kvar styresmakt er ikkje ein policy; det fjernar avgrensinga som gav utvidinga meining, og ho overlever vanlegvis hendinga som framkalla ho. Eit kort notat i profilen som skildrar kva roller styresmakta kan sertifisere, hindrar at den neste nyutferdinga gientek den same diskusjonen.

Å slå av stadfesting er den andre freistande snarvegen, og han gjer eit sertifikatproblem om til eit tillitsproblem. Hald formålskontrollen, rett kjeda og køyr den same offline-stadfestinga på nytt for å stadfeste at banen no tener den tiltenkte rolla før du rører tenesta igjen.

Relaterte artiklar