remote-cert-tls server: wat de rjochtline yn in OpenVPN-profyl kontrolearret
De rjochtline kontrolearret de rol dy't yn it sertifikaat fan 'e tsjinoer kodearre is, net syn namme. Ferlykje rol, fertrouwensanker en hostnamokontrôle foardat jo eat útsette.
Trije ferskillende fragen wurde beantwurde troch trije ferskillende dielen fan in OpenVPN-profyl, en it gearfoegjen dêrfan is hoe't minsken úteinlik in kontrôle útsette dy't wurke. Is it sertifikaat fan 'e tsjinoer ûndertekene troch de autoriteit dy't ik fertrou? Ferklearret dat sertifikaat de TLS-tsjinnerrol? Is it de krekte tsjinner dy't ik berikke woe? remote-cert-tls server beantwurdet allinnich de middelste fraach, en docht dat troch útwreidings yn it sertifikaat te lêzen.
Trije kontrôles dy't maklik yn jo hol te gearfoegjen binne
It fertrouwensanker libbet yn 'e rjochtline ca. De rolkontrôle heart by remote-cert-tls. De identiteitskontrôle heart by verify-x509-name, as in profyl dy brûkt, of by hokker namokontrôle dan ek dy't de útrôl tafoeget.
Se dekke ferskillende flaters:
| Question | Directive | Failure it catches |
|---|---|---|
| Who signed this? | ca | Certificate from an unrelated authority |
| Is this a server? | remote-cert-tls | Client certificate presented by a peer |
| Is this my server? | verify-x509-name | Another valid server from the same CA |
In profyl kin alle trije hawwe en dochs swak wêze as de CA te breed dield wurdt, wat in kwestje fan kaai-behear is en net fan 'e rjochtline.
Wat de rolkontrôle lêst
De rjochtline is in makro. Hy wreidet út ta in eask foar kaaiberik en in eask foar útwreide kaaiberik dy't de TLS-webserverrol neamt, dat it sertifikaat fan 'e tsjinoer moat dat doel eins ferklearje. In sertifikaat dat foar kliïntautentikaasje útjûn is, foldocht dêr net oan, sels as deselde autoriteit beide ûndertekene hat.
Dat is wichtich, want in dielde CA is gewoan yn lytse útrôlen. Ien autoriteit ûndertekenet elke kliïnt en de tsjinner, en sûnder rolkontrôle koe elk fan dy sertifikaten de tsjinnerskant fan 'e hânwizing foltôgje. De kontrôle makket dat senario net ûnmooglik, mar se hellet de triviale ferzje derút.
De rjochtline is asymetrysk fan ûntwerp: kliïnten drage remote-cert-tls server, en tsjinners drage remote-cert-tls client. Wikselje se om en elke ferbining mislearret mei in rolflear dy't op in brutsen sertifikaat liket.
Aldere profilen brûke soms ns-cert-type foar itselde doel. Aktuele hânliedingssiden beskôgje dy opsje as ferfongen, dat in profyl dat dêr noch op fertrout, is it wurdich te migrearjen ynstee fan te debuggen.
Wêrom't it útsetten as in oplossing fielt
As de rolkontrôle mislearret, stoppt de ferbining mei in ferifikaasjeflater en de fanselssprekkende stap is de rigel te wiskjen. Dan komt de ferbining op, wat as foarútgong fielt en eins de flatermodus is dy't de rjochtline bestiet om te foarkommen. Jo akseptearje no in tsjinoer waans sertifikaat nea foar dy rol bedoeld wie.
Lês ynstee de flater. Hy neamt de kontrôle dy't mislearre, en it sertifikaat oan 'e oare kant kin ûndersocht wurde om te sjen hokker útwreidings it echt draacht. Twa minuten lêzen beslisse oft de flater by de útjefte of by de konfiguraasje leit. Rieden kostet in middei en einiget meastentiids mei in ferswakke profyl. In fernijd tsjinnersertifikaat dat syn útwreide kaaiberik ferlern hat, is in echte flater yn 'e fernijing, net in reden om de kliïnt los te litten.
De namokontrôle is in aparte rjochtline
It foldwaan oan 'e rolkontrôle seit dat de tsjinoer in tsjinner is dy't troch jo autoriteit ûndertekene is. It seit neat oer hokker, wat wichtich is as deselde CA sertifikaten foar ferskate poarten útjaan en ien fan har kompromittearre of werbrûkt is.
verify-x509-name ferlykjet it sertifikaatsubjekt mei in wearde dy't jo konfigurearje, mei oerienkomstmodi foar in krekt subjekt, in foarheaksel of in inkeld fjild. Brûk it fjild dat de poarte echt identifisearret, en ferwachtsje it bewust by te wurkjen as de namme feroaret.
Gjin fan beide rjochtlinen ferfangt goed kaaibehear. As it kliïntkaaistriermap mei it profyl omkopiearre wurdt, is de identiteit fan 'e tsjinoer mar sa sterk as de distribúsjelist.
Undersykje it sertifikaat foardat jo it profyl bewurkje
Lês it sertifikaat fan 'e tsjinoer en it kliïntloch, yn dy folchoarder. It sertifikaat fertelt jo hokker rollen it ferklearret; it loch fertelt jo hokker kontrôle it wegere.
Dizze opdrachten printsje de beriksútwreidings en de ferifikaasjerigels fan in wiidweidige ferbining:
openssl x509 -in server.crt -noout -text | grep -A1 -E "Key Usage|Extended Key Usage"
sudo openvpn --config client.ovpn --verb 4 2>&1 | grep -i verifyAs de útwreidings de tsjinnerrol sjen litte en it loch noch altyd in rolflater meldt, wiist it profyl wierskynlik nei it ferkearde sertifikaatbestân ynstee fan nei in min sertifikaat. As de útwreidings allinnich kliïntautentikaasje sjen litte, stopje dan mei nei de kliïnt te sjen en reparearje de útjefte. Hoe dan ek, set de kontrôle werom foardat jo de ferbining sûn neame, want in slagge hânwizing nei it fuortheljen fan ferifikaasje bewiist minder as de flater dy't it ferfong.