Bí a ṣe lè dá kọ́kọ́rọ́ oníbàárà VPN àti fi CSR ránṣẹ́ fún ìfọwọ́sí
Fi kọ́kọ́rọ́ àṣírí náà sí ọ̀dọ̀ oníbàárà kí o sì fi ìbéèrè nìkan ránṣẹ́. Ṣàyẹ̀wò CSR, fọwọ́ sí ìdánimọ̀, fi àfikún tí ó ṣe kedere fọwọ́ sí, lẹ́yìn náà fìdí ẹlẹ́wèé náà múlẹ̀.
Láìpẹ́ tàbí pẹ́, olùlò VPN kan yóò dábàá pé kí a fi kọ́kọ́rọ́ àṣírí ránṣẹ́ nípasẹ̀ ímeèlì kí olùṣàkóso lè ṣe ìwé-ẹ̀rí, àti pé ìdánimọ̀ yẹn ni a gbọdọ̀ kọ̀. Ìṣàn tí ó ń ṣiṣẹ́ ń pa kọ́kọ́rọ́ mọ́ ọ̀dọ̀ oníbàárà láti àkọ́kọ́ àṣẹ: oníbàárà náà dá a, ó fi ìbéèrè ìfọwọ́sí ìwé-ẹ̀rí ránṣẹ́, olùgbéjáde náà ṣàyẹ̀wò rẹ̀ ó sì fọwọ́ sí i, ìwé-ẹ̀rí tí a fọwọ́ sí náà sì padà wá láti jókòó lẹ́gbẹ̀ẹ́ kọ́kọ́rọ́ tí ó dá a. Àkójọ àyẹ̀wò tí ó wà nísàlẹ̀ ń kùnà ní ìparí ní gbogbo ìgbésẹ̀, ìyẹn sì ni kókó, nítorí méjì nínú ìgbésẹ̀ márùn-ún ni àwọn tí àwọn ènìyàn ń fò mọ́lẹ̀ nígbà tí wọ́n bá ń kánjú.
Ìgbésẹ̀ 1: dá kọ́kọ́rọ́ ní ibi tí yóò máa gbé
Dá a lórí ẹ̀rọ tí yóò gbé kọ́kọ́rọ́ náà, kí o sì fi í síbẹ̀. Kọ́kọ́rọ́ sọ́fítíwérì ń lọ sínú fáìlì tí ó ní àwọn àṣẹ tí ó le; kọ́kọ́rọ́ tí a fi ohun-ẹ̀rọ ṣe àtìlẹ́yìn fún tàbí tí ó wà nínú ìpamọ́ tí a ń ṣàkóso kò ní di fáìlì rárá, pẹ̀lú ìlànà ìforúkọsílẹ̀ rẹ̀ sábà máa ń jẹ́ irinṣẹ́ ọ̀tọ̀ tí kì í ṣe àṣẹ OpenSSL. Bí ó ti wù kí ó rí, kò sí ẹnìkan tí ó nílò láti rí ìlàjì àṣírí.
Ìṣàn sọ́fítíwérì rí báyìí, a dá kọ́kọ́rọ́ àti ìbéèrè nínú ìpàdé kan:
umask 077
openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:3072 -out client.key
openssl req -new -key client.key -out client.csr -subj "/CN=alice-vpn/O=Example"Ìlà umask ṣe pàtàkì ju bí ó ti rí. Láìsí rẹ̀, a kọ kọ́kọ́rọ́ náà ní ọ̀nà tí gbogbo ènìyàn lè kà lórí ẹ̀rọ tí ó gbà láàyè ní àkọ́kọ́, dídàkọ fáìlì náà nígbà tí ó ya sì ń tan ìyẹn kálẹ̀. Lílo kọ́kọ́rọ́ tí ó wà tẹ́lẹ̀ lẹ́ẹ̀kan sí i jẹ́ ẹ̀tọ́ nígbà tí a ti dáàbò bò ó tẹ́lẹ̀ tí ó sì bá ìlànà rẹ mu; dídá tuntun fún ẹ̀rọ kọ̀ọ̀kan rọ̀rùn láti ṣàlàyé.
Ìgbésẹ̀ 2: fi ìdánimọ̀ sínú ìbéèrè, kì í ṣe sínú ímeèlì
Pinnu ohun tí VPN ń ṣe ìjẹ́rìí sí ní ti gidi kí a tó dá ìbéèrè náà, nítorí ìdáhùn yẹn wà nínú CSR. OpenVPN ní àṣà ń so ìdánimọ̀ oníbàárà mọ́ orúkọ àpapọ̀ ìwé-ẹ̀rí, àwọn irinṣẹ́ bíi strongSwan sì ń fi okùn ìdánimọ̀ wé kókó-ọ̀rọ̀ tàbí orúkọ àkókọ́ tí kókó-ọ̀rọ̀. Ímeèlì tí ó sọ pé orúkọ mi ni alice kì í ṣe ẹ̀rí, ìbéèrè tí kókó-ọ̀rọ̀ rẹ̀ sọ ohun kan náà sì dára díẹ̀ lásán.
Fi orúkọ àkókọ́ kókó-ọ̀rọ̀ kún un nígbà tí olùṣàyẹ̀wò rẹ bá ń yẹ ọ̀kan wò, nítorí ìbámu òde-òní sábà máa ń fojú fo CN àtijọ́:
openssl req -new -key client.key -out client.csr \
-subj "/CN=alice-vpn/O=Example" \
-addext "subjectAltName=DNS:alice-vpn"Jẹ́ kí CN kúrú, kí ó dúró ṣinṣin, kí ó sì so mọ́ àkọsílẹ̀-ìwé dípò mọ́ àwòrán kọ̀mpútà àgbékọ́. Orúkọ tí ó ní nọ́mbà ẹ̀rọ olùlò nínú jẹ́ ìṣòro àtìlẹ́yìn tí ó ń dúró de ìyípadà ohun-ẹ̀rọ àkọ́kọ́.
Ìgbésẹ̀ 3: ṣàyẹ̀wò ìbéèrè kí o tó fọwọ́ sí i
Olùgbéjáde ń ṣàyẹ̀wò ohun méjì ọ̀tọ̀ọ̀tọ̀, pípapọ̀ wọ́n sì ni àṣìṣe àtẹ́nudẹ́nu. Èkíní, pé ìbéèrè náà bá ara rẹ̀ mu: a ń ṣàyẹ̀wò ìfọwọ́sí náà pẹ̀lú kọ́kọ́rọ́ gbangba tí ó gbé. Èkejì, pé olùbéèrè náà ní ẹ̀tọ́ sí ohun tí ìbéèrè náà ń béèrè, ìyẹn sì ni kò sí àyẹ̀wò kírípítò kan tí ó lè dáhùn.
Apá ẹ̀rọ jẹ́ àṣẹ kan, ó sì yẹ kí ó tẹ èsì àyẹ̀wò jáde pẹ̀lú kókó-ọ̀rọ̀:
openssl req -in client.csr -noout -verify -subject
openssl req -in client.csr -noout -pubkey | openssl pkey -pubin -noout -textKíyèsí ohun tí ìyẹn ń fi hàn. Ìbéèrè tí a ṣàyẹ̀wò kìkì ń fi hàn pé olùránṣẹ́ ní kọ́kọ́rọ́ àṣírí tí ó bá a mu ní àkókò ìfiránṣẹ́; kò fi hàn pé olùránṣẹ́ ni ẹni tí a dárúkọ nínú kókó-ọ̀rọ̀, kò sì gbà àyè sí ẹgbẹ́ tàbí ọ̀nà tí a ń béèrè. Àgbéwò ìforúkọsílẹ̀ jẹ́ ẹnubodè ọ̀tọ̀, ìbéèrè fún ẹgbẹ́ tí kò sí ẹni tí ó fọwọ́ sí yẹ kí a kọ̀ dípò kí a ṣàtúnṣe rẹ̀ ní ìdákẹ́jẹ́.
Ìgbésẹ̀ 4: gbà láàyè, lẹ́yìn náà fi àfikún tí ó ṣe kedere fọwọ́ sí
Ìfọwọ́sí ni ibi tí CA ti pinnu ìlànà dípò gbígba ìbéèrè náà gẹ́gẹ́ bí ó ti wà. Ìwúlò, lílo kọ́kọ́rọ́ àti àfikún ipa wà nínú fáìlì àfikún, kì í ṣe nínú àwọn iye àkọ́kọ́ tí ìwọ kò ní rántí lẹ́yìn oṣù mẹ́fà. Ìwé-ẹ̀rí oníbàárà fún ìjẹ́rìí VPN nílò ìjẹ́rìí oníbàárà gẹ́gẹ́ bí èrò rẹ̀.
cat > client.ext <<'EOF'
basicConstraints = CA:FALSE
keyUsage = digitalSignature
extendedKeyUsage = clientAuth
EOF
openssl x509 -req -in client.csr -CA ca.crt -CAkey ca.key \
-CAcreateserial -days 365 -extfile client.ext -out client.crtLo -CAserial pẹ̀lú fáìlì nọ́mbà ẹlẹ́sẹẹsẹ tí ó wà tẹ́lẹ̀ bí ọ̀kan ti ń lò tẹ́lẹ̀, kí o sì pa kọ́kọ́rọ́ CA mọ́ ní àìsopọ̀ tàbí nínú ìpamọ́ ààbò tí ìlànà rẹ dárúkọ. Àwọn nọ́mbà ẹlẹ́sẹẹsẹ ìwé-ẹ̀rí gbọdọ̀ jẹ́ àkànṣe fún olùgbéjáde kọ̀ọ̀kan; dídá fáìlì ẹlẹ́sẹẹsẹ tún ṣe láti ọ̀fo ni ó ń fi ipa ìkọlù hàn tí ó máa ń jẹ́ kí ìfagilé di àìdánilójú.
Ṣàkọsílẹ̀ ohun tí a gbé jáde: nọ́mbà ẹlẹ́sẹẹsẹ, kókó-ọ̀rọ̀, ìdánimọ̀ tí a béèrè, ẹni tí ó fọwọ́ sí àti àkókò ìparí. Àkọsílẹ̀ yẹn ni ohun tí ìpinnu ìfagilé kan máa gbára lé lẹ́yìn náà, a kò sì lè tún un kọ́ láti inú ìwé-ẹ̀rí nìkan bí ipa-ọ̀nà ìforúkọsílẹ̀ bá wà nínú àpótí-ìwé nìkan.
Ìgbésẹ̀ 5: fi í sínú ẹ̀rọ lẹ́gbẹ̀ẹ́ kọ́kọ́rọ́ tí ó bá a mu kí o sì fi ẹlẹ́wèé náà hàn
Oníbàárà ń gba ìwé-ẹ̀rí àti ẹ̀wọ̀n olùgbéjáde náà, kì í ṣe kọ́kọ́rọ́ rárá. Kí o tó sopọ̀, fìdí rẹ̀ múlẹ̀ pé ìwé-ẹ̀rí náà ń bá kọ́kọ́rọ́ tí ó wà lórí díísìkì mu ní ti gidi, nítorí ẹlẹ́wèé tí kò bá mu ń dá ìkùnà ìfọwọ́-ọwọ́ tí ó ń da ènìyàn rú ní ọ̀nà púpọ̀ lẹ́yìn náà:
openssl x509 -in client.crt -noout -pubkey | openssl pkey -pubin -outform DER | openssl sha256
openssl pkey -in client.key -pubout -outform DER | openssl sha256Àwọn díjẹ́ẹ̀sì méjèèjì gbọdọ̀ bá ara wọn mu. Lẹ́yìn náà sopọ̀ kí o sì fìdí rẹ̀ múlẹ̀ pé ìdánimọ̀ tí sáfà náà ń ṣàkọsílẹ̀ ni èyí tí ìwọ gbà láàyè, kì í ṣe kìkì pé ọ̀nà-ìsàlẹ̀ náà ti gòkè wá. Bí kọ́kọ́rọ́ náà bá sọnù tàbí a pààrọ̀ ẹ̀rọ náà, ìdáhùn ni ìfagilé pẹ̀lú ìbéèrè tuntun láti ẹ̀rọ tuntun; bíbéèrè lọ́wọ́ olùṣàkóso pé kí ó fi kọ́kọ́rọ́ padà ránṣẹ́ láti ibòmíì kò gba ti ìpilẹ̀ padà, ó sì ń fọ́ àwòrán tí ó mú kí ìbéèrè náà ní ààbò ní ìdákẹ́jẹ́.