Àwọn ìwé-ẹ̀rí CA méjì lè ní kọ́kọ́rọ́ gbángbà kan náà àti subject kan náà, síbẹ̀ wọn kò lè pààrọ̀. Ọ̀kan jẹ́ àfọwọ́sí ara-ẹni, èkejì ni a fọwọ́ sí lórí ẹ̀rọ láti ọ̀dọ̀ gbòǹgbò àtijọ́, àwọn orúkọ olùgbéjáde, nọ́mbà ìtẹ̀lentẹ̀lẹ àti ìfọwọ́sí wọn yàtọ̀. Éwé kan lè so mọ́ ọ̀kan nínú wọn ní pàtó nípasẹ̀ Authority Key Identifier rẹ̀. Ìsopọ̀ yẹn yóò wà ní àìrí títí tí a ó fi yan ẹ̀wọ̀n tí kò tọ́ kí handshake sì kùnà láìsí ìdí tí ó ṣe kedere.

Ṣe àwọn àyẹ̀wò márùn-ún yìí ní tẹ̀lentẹ̀lẹ: ọ̀kọ̀ọ̀kan ń mú ìkùnà ọ̀tọ̀ọ̀tọ̀ kúrò.

Àyẹ̀wò 1: ya ẹ̀wọ̀n méjèèjì kí o tó fọwọ́ kan àwòkọ́ṣe

Kọ àwọn ọ̀nà sílẹ̀. Àwùjọ àtijọ́ gbẹ́kẹ̀ lé Gbòǹgbò Àtijọ́ A, èyí tí ó gbéjáde CA B, èyí tí ó gbéjáde éwé sáfà. Àwùjọ tuntun gbẹ́kẹ̀ lé CA B tí a fọwọ́ sí ara-ẹni ní tààrà. Ìwé-ẹ̀rí B méjèèjì ń gbé kọ́kọ́rọ́ àti subject kan náà, ìdí nìyẹn tí ẹni tí ó ń ka ìlà subject fi ń rí CA kan níbi tí aláìsàn ń rí méjì.

Ẹ̀dà tí a fọwọ́ sí lórí ẹ̀rọ gbọ́dọ̀ jẹ́ ìwé-ẹ̀rí CA gidi pẹ̀lú basic constraints àti key usage tí ó gbà ìfọwọ́sí.

Àyẹ̀wò 2: fi àwọn pápá AKI wé, kì í ṣe kọ́kọ́rọ́ nìkan

Orúkọ olùgbéjáde éwé gbọ́dọ̀ bá subject B mu, apá yẹn sì máa ń dúró. Authority Key Identifier ni ibi tí ẹ̀dà méjèèjì ti yà, nítorí ó lè gbé ìdánimọ̀ kọ́kọ́rọ́, olùgbéjáde ìwé-ẹ̀rí àti nọ́mbà ìtẹ̀lentẹ̀lẹ. Ìdánimọ̀ kọ́kọ́rọ́ bá ẹ̀dà méjèèjì mu, nítorí kọ́kọ́rọ́ náà kan náà. Àwọn pápá olùgbéjáde àti ìtẹ̀lentẹ̀lẹ bá ọ̀kan pàtó mu, ìdí nìyẹn tí ẹ̀wọ̀n tí a kọ́ lòdì sí ẹ̀dà ara-ẹni lè kùnà lòdì sí èyí tí a fọwọ́ sí lórí ẹ̀rọ.

Ṣàyẹ̀wò éwé náà dípò kíkẹ́kọ̀: openssl x509 -in server.pem -noout -ext authorityKeyIdentifier.

Lẹ́yìn náà fi àwọn olùdíje méjèèjì wé pẹ̀lú openssl x509 -in b-cross.pem -noout -text | grep -A2 "Authority Key Identifier", kí o sì ṣe àṣẹ kan náà lòdì sí ẹ̀dà ara-ẹni.

Tí éwé bá gbé olùgbéjáde àti nọ́mbà ìtẹ̀lentẹ̀lẹ, ìwé-ẹ̀rí tí àwọn iye yẹn ṣàpèjúwe nìkan ni yóò parí ẹ̀wọ̀n, èyí tí aláìsàn kó lórí.

Àyẹ̀wò 3: yí ìlànà ìgbéjáde padà, kì í ṣe àwọn byte tí a fọwọ́ sí

Àwọn ìmúgbòòrò ń gbé inú ìfọwọ́sí. Fífikún, yíyọ tàbí ṣíṣàtúnṣe ọ̀kan lórí éwé tí ó wà kì í ṣe àtúnṣe, ìwé-ẹ̀rí mìíràn ni, ó sì nílò ìgbéjáde tuntun. Ìyípadà náà wà nínú ìlànà ìgbéjáde: authorityKeyIdentifier = keyid,issuer:always ń mú kí àwọn éwé tuntun gbé ìsopọ̀ pàtó ìwé-ẹ̀rí, nígbà tí keyid nìkan ń pa ìrísí tí ó lọ́jú sílẹ̀ tí ó bá ìyípadà ìfọwọ́sí lórí ẹ̀rọ tí a mọ̀ọ́mọ̀ ṣe mu. Pinnu èyí tí PKI rẹ fẹ́ kí a tó fọwọ́ sí ẹgbẹ́ tó kàn.

Ṣíṣàtúnṣe àwòkọ́ṣe tí a pín ń yí gbogbo ìwé-ẹ̀rí ọjọ́ iwájú padà, kì í ṣe sáfà tí ó wà níwájú rẹ nìkan.

Àyẹ̀wò 4: ṣàyẹ̀wò àwùjọ ìgbẹ́kẹ̀lé kọ̀ọ̀kan lọ́tọ̀ọ̀tọ̀

Dán ọ̀nà àtijọ́ àti ọ̀nà tuntun wò gẹ́gẹ́ bí ìṣísẹ̀ ọ̀tọ̀ọ̀tọ̀. openssl verify -purpose sslserver -verify_hostname vpn.example -CAfile old-root.pem -untrusted b-cross-signed.pem server.pem ń dán ọ̀nà tí a fọwọ́ sí lórí ẹ̀rọ wò, àṣẹ kan náà pẹ̀lú gbòǹgbò tuntun àti láìsí fáìlì untrusted ń dán ọ̀nà ara-ẹni wò. Dídàpọ̀ gbòǹgbò méjèèjì sínú àkójọ kan ń fi pamọ́ irú ẹ̀wọ̀n tí a yàn. Lẹ́yìn náà tún ṣe pẹ̀lú àwọn aláìsàn gidi, nítorí backend VPN lè fẹ́ràn ẹ̀wọ̀n kan tàbí di ìwé-ẹ̀rí mú ní àwọn ọ̀nà tí openssl kò ṣe.

Fi ìwé-ẹ̀rí àárín náà ránṣẹ́ nípasẹ̀ ìṣètò iṣẹ́ tí aláìsàn ń kà ní tòótọ́, kì í ṣe nípasẹ̀ ojú-ìwé wiki.

Àyẹ̀wò 5: pa ọ̀nà àtijọ́ mọ́ lórí aago ìfẹ̀yìntì

Ìfọwọ́sí lórí ẹ̀rọ ń pa ọ̀nà ìgbẹ́kẹ̀lé àtijọ́ mọ́ ní ààyè gẹ́gẹ́ bí àpẹẹrẹ, èyí tí í ṣe èrò àti ewu lẹ́ẹ̀kan náà. Kò tún gbòǹgbò àtijọ́ tí ó ti bàjẹ́ ṣe, kò sì yọ gbòǹgbò yẹn kúrò lọ́dọ̀ aláìsàn kankan. Kọ àkókò tí ọ̀nà àtijọ́ yóò fi dá ìgbẹ́kẹ̀lé dúró, kí o sì jẹ́rìí pé ọjọ́ yẹn dé ní tòótọ́.

Tí aláìsàn kọ̀ọ̀kan bá lè gba gbòǹgbò tuntun kí àwọn éwé tó lọ, ìgbéjáde ìgbẹ́kẹ̀lé-ìlọ́po méjì tí ó rọrùn ju ìfọwọ́sí lórí ẹ̀rọ, ó sì fi ohun kan tí ó kéré sílẹ̀ fún ìfẹ̀yìntì.

Àwọn àpilẹ̀kọ tó jọra