Nid yw disodli awdurdod tystysgrifau VPN yr un peth â newid ffeil. Yr eiliad y bydd y CA newydd yn llofnodi ei dystysgrif gyntaf, rhaid i bob dilysydd sy'n dal i ymddiried yn yr hen un yn unig wneud penderfyniad, ac mae gwesteiwyr na chânt byth yr angor newydd yn dal i wrthod cymheiriaid da. Rwyf wedi ei weld yn mynd o chwith y ddau ffordd: dysgodd y giât am y CA newydd ac ni wnaeth y cleientiaid, felly methodd cysylltiadau newydd, tra arhosodd twneli oedd eisoes i fyny ac a wnaeth i'r methiant edrych fel problem llwybro. Dyma beth sy'n newid, yn y drefn y mae'r methiannau'n ymddangos.

Un disodliad, dau newid ar wahân

Mae awdurdod tystysgrifau yn enw, yn allwedd gyhoeddus, ac yn allwedd breifat sy'n llofnodi. Nid yw dilyswyr byth yn ymddiried yn ‘y CA’ yn haniaethol. Maent yn ymddiried mewn un dystysgrif benodol sydd eisoes mewn storfa ymddiriedaeth, ac maent yn derbyn cyhoeddwr yn unig os bydd cadwyn o lofnodion yn cyrraedd y copi storio hwnnw. Felly mae disodli'r CA yn newid dau beth sy'n methu'n annibynnol: pa angorau a dderbynnir, a pha hunaniaethau cymheiriaid a gyhoeddwyd oddi tanynt.

Mae'r rhan fwyaf o osodiadau VPN yn dilysu'r ddau gyfeiriad. Mae'r cleient yn ardystio tystysgrif y giât, ac mae'r giât yn ardystio tystysgrif y cleient. Mae troelliad sy'n adnewyddu bwndel y cleient yn unig yn gadael y gweinydd yn gwrthod pob cleient sy'n dal i gyflwyno hunaniaeth o'r hen CA, ac mae'r gwrthwyneb yr un mor gyffredin. Rhestrwch y pwyntiau gorfodi yn gyntaf: storfeydd ymddiriedaeth cleientiaid, ffeil ca y giât, unrhyw brocsi sy'n terfynu TLS o'i blaen, a'r prawf sy'n gwirio'r pen draw o'r tu allan.

Beth mae dilysydd yn ei wirio, yn ôl trefn

Mae dilysu llwybr yn dringo o dystysgrif y cymheiriaid trwy unrhyw gyfryngwyr nes cyrraedd angor ymddiried. Ar bob cam mae'n gwirio'r llofnod, yn cadarnhau bod pob tystysgrif o fewn ei ffenestr ddilysrwydd, ac yn cadarnhau bod cyfyngiadau sylfaenol a defnydd allwedd yn caniatáu i'r cyhoeddwr lofnodi. Dim ond wedyn y mae'r rhaglen yn edrych ar y ddalen: rhaid i enwau amgen y pwnc gynnwys yr enw a ddeialwyd, a rhaid i'r defnydd estynedig o allwedd ganiatáu ardystio gweinydd neu gleient.

I ailadrodd y daith honno all-lein, cyfeiriwch -CAfile at yr union fwndel a fyddwch yn ei osod, nid at storfa'r system. Fel arall rydych yn profi'r gwesteiwr, nid y newid:

openssl verify -CAfile new-ca.crt gateway.crt
openssl verify -CAfile new-ca.crt -untrusted intermediate.crt client.crt
openssl x509 -in gateway.crt -noout -subject -issuer -dates
openssl s_client -connect gw.example.net:443 -CAfile new-ca.crt

Mae'r gorchymyn hwnnw'n gweithio yn erbyn gwrandäwr TLS plaen yn unig, fel tudalen weinyddu HTTPS y giât; mae sianel reoli OpenVPN yn dod o flaen TLS, felly ni all s_client archwilio ysgwyd llaw y twnnel.

Mae'r rheolau adeiladu llwybr y tu ôl i'r gwallau hynny yn RFC 5280 adran 6. Maent yn esbonio'r methiannau sy'n edrych yn fympwyol fel arall: cyfryngwr wedi dod i ben na chofiodd neb amdano, tystysgrif y mae ei defnydd allwedd yn gwahardd llofnodi, neu gyfyngiad enw sy'n eithrio'r gwesteiwr rydych yn ei brofi.

Pam mae'r hen dwnnel yn dal i weithio

Mae TLS ac OpenVPN ill dau yn cadw sesiwn sefydledig yn fyw ar ôl i'r ysgwyd llaw orffen. Nid oes dim yn ailddilysu tystysgrif y cymheiriaid fesul pecyn, felly mae cleient a gysylltodd cyn y newid yn parhau i basio traffig nes iddo ailnegodi, ailsysylltu, neu nes i'r twnnel syrthio. Dyna'r bwlch sy'n gwneud i ddisodliad CA edrych yn iawn am awr ac wedyn fethu ar yr adeg waethaf: mae gliniadur yn deffro o gwsg, mae mapio NAT yn dod i ben, mae giât yn ailgychwyn.

Mae ailddechrau sesiwn yn ymestyn y rhith ymhellach. Mae tocyn sesiwn TLS yn gadael i'r cleient ddychwelyd heb ail-anfon tystysgrifau, ac mae ailddechrau'n hepgor dilysu llwybr oherwydd bod yr ysgwyd llaw cyntaf eisoes wedi'i wneud. Felly'r prawf gonest yw ysgwyd llaw llawn mewn proses newydd. Ailgychwynnwch y cleient yn hytrach nag ailsysylltu'r twnnel, ac ar broffil prawf ystyriwch analluogi tocynnau fel na all y llwybr ailddechrau guddio cadwyn wedi torri.

Cadwch haen yr allwedd statig ar wahân i hyn. Mae tls-auth yn ychwanegu HMAC at y sianel reoli, mae tls-crypt yn ei hamgryptio ac yn ei ardystio, ac nid yw'r naill na'r llall yn cario deunydd tystysgrif, felly mae troelli'r naill neu'r llall yn newid ar wahân gyda'i fodd methu ei hun. Mae gosodiadau sy'n cymysgu'r ddau yn gorffen gyda chleient y mae ei allwedd statig yn iawn, ei dystysgrif yn hen, a'i neges wall yn sôn am yr un ohonynt.

Trap ailddefnyddio enw'r pwnc

Mae'n demtasiwn ailddefnyddio enw gwahaniaethol y rhagflaenydd fel na fydd rhaid i ddim i lawr y gadwyn newid. Mae hynny'n cadw llinell y cyhoeddwr yn sefydlog yn y rhyngwyneb ac yn dinistrio'r un signal sydd ei angen arnoch. Ni ellir gwahaniaethu dwy dystysgrif â phynciau unfath a allweddi gwahanol yn ôl enw, felly mae bwndel sy'n dal y ddau angor yn rhoi dau ymgeisydd i'r dilysydd a dim rheol ar gyfer dewis.

Gall adeiladu llwybr wedyn ddewis yr un anghywir, adrodd ‘methu cael tystysgrif cyhoeddwr lleol’ tra bo'r angor cywir yn bresennol, neu lwyddo ar un gwesteiwr a methu ar un arall sy'n dal yr un bwndel, oherwydd bod trefn yr ymgeiswyr wedi gwahaniaethu. Os oes rhaid ailddefnyddio'r enw, cadwch y ddau angor mewn ffeiliau ar wahân yn ystod y cyfnod pontio a'u llwytho'n benodol, ac ymunwch nhw dim ond pan fydd pob cymheiriaid yn cyflwyno'r cyhoeddwr newydd. Fel arall rhoddwch enw cyffredin gwahanol i'r disodliad — mae ôl-ddodiad cenhedlaeth neu ddyddiad yn ddigon — fel bod cofnodion a thestun gwall yn dweud o dan ba awdurdod y cyhoeddwyd y cymheiriaid sy'n methu.

Troelliad nad yw'n cwympo'r rhwydwaith

Ar gyfer disodliad wedi'i gynllunio, derbyniwch y ddau angor am ffenestr gyfyngedig yn hytrach na newid mewn un cam. Cyhoeddwch y CA newydd a'i gyfryngwyr, rhowch yr angor newydd ym mwndel pob dilysydd wrth ochr yr hen un, a dim ond wedyn dechreuwch gyhoeddi tystysgrifau cymheiriaid ohono. Mae cymheiriaid ag hunaniaethau hen yn dilysu yn erbyn yr hen angor; mae rhai newydd yn gweithio yn erbyn yr angor newydd.

Wedi'i wneud yn y drefn honno, mae pob cam yn wrthdro. Y methiant rydych yn ei osgoi yw'r newid ar yr un pryd, pan fydd cleient a gollodd y diweddariad bwndel yn cyfarfod giât sydd eisoes wedi ymddeol yr hen angor, mae'r ysgwyd llaw yn marw, ac nid oes yr un cofnod yn dweud pa ochr sy'n hen.

Ymddeolwch i'r cyfeiriad arall. Ailgyhoeddwch bob hunaniaeth y mae'n rhaid iddi oroesi, cadarnhewch fod pob un yn cyflwyno'r gadwyn newydd, ac yna tynnwch yr hen angor o'r bwndeli. Tynnwch allwedd breifat yr hen CA allan o wasanaeth, oherwydd mae cyhoeddwr a all lofnodi o hyd yn golygu nad yw'r troelliad wedi gorffen. Cadwch y tystysgrifau a'r cofnodion cyhoeddi ar gyfer archwiliad. Mae cyhoeddwr a gollwyd yn cael ei adfer i'r un ymddiriedaeth; mae datguddiad yn gofyn am hunaniaethau newydd a dim dychwelyd at yr hen angor.

Gwirio'r canlyniad, nid y rhestr ffeiliau

Nid yw ffeil ymddiriedaeth yn y cyfeiriadur a ddisgwylir yn profi fawr ddim. Gall y rhaglen ddarllen llwybr gwahanol, fformat gwahanol, neu gopi y tu mewn i becyn y mae uwchraddiad yn ei ddisodli. Gwiriwch ymddygiad ar y ddau ben, nid bod ffeil yn bodoli.

Cadarnhewch fod cysylltiad newydd â hunaniaeth newydd yn llwyddo, ac yna cadarnhewch fod hunaniaeth a gyhoeddwyd gan y CA sydd wedi ymddeol yn cael ei gwrthod. Yr ail brawf yw'r un y mae pobl yn ei hepgor, a'r unig un sy'n dangos nad yw'r awdurdod hen yn rhoi mynediad mwyach. Lle mae'r gosodiad yn dibynnu ar CRL neu OCSP, gwiriwch fod pwyntiau dosbarthu'r tystysgrifau newydd yn datrys a bod modd i'r cymheiriaid sy'n gofyn gyrraedd yr ymatebydd.

Gorffenwch â chleient nad yw erioed wedi cysylltu: sychwch gyflwr ei broffil, cysylltwch, a darllenwch y gadwyn a negodwyd. Bydd cymheiriaid sy'n ailddechrau sesiwn wedi'i chache yn adrodd yn llawen fod y mudo wedi gweithio pan na ddilysodd ddim o gwbl.

Erthyglau cysylltiedig