ඔබේ VPN මූල CA අක්රිය තත්ත්වයේ තබාගෙන සහතික නිකුත් කරන්න
මූල යතුර ජාලයෙන් බැහැරව තබාගන්න, අතරමැදි CA සමඟ පත්ර සහතික අත්සන් කරන්න, CRL නියමිත වේලාවට ප්රකාශයට පත් කරන්න, පළමු සේවාදායකයා සම්බන්ධ වීමට පෙර දාමය පරීක්ෂා කරන්න.
ඔබේ VPN රාත්රී 3 ට සම්බන්ධතාවලට පිළිතුරු දෙන අතර, එහි සහතික අත්සන් කරන යන්ත්රය ලාච්චුවක නිවා තිබේ. සේවාදායක සහතිකය සත්යාපනය කරන සේවාලාභියා කිසිදා ඔබේ CA සම්බන්ධ නොවේ, එබැවින් කිසිදු සම්බන්ධතාවයකට CA වෙත ළඟා විය යුතු නොවේ. සැලසුම් කිරීම අවශ්ය වන කොටස වන්නේ සහතිකයක් නිකුත් කිරීමට, අලුත් කිරීමට හෝ අවලංගු කිරීමට ඇති දිනය මූල යතුර අගුළු දමා තිබියදී ය.
සම්බන්ධතාවයක් සැබවින්ම සත්යාපනය කරන්නේ කුමක්ද
OpenVPN සේවාලාභියා සම්බන්ධ වන විට, ඔහු සේවාදායකයේ පත්ර සහතිකයේ සිට තමා දැනටමත් විශ්වාස කරන CA සහතිකය දක්වා අත්සන් දාමය ඔස්සේ ගමන් කරයි, වලංගුතා කවුළුව පරීක්ෂා කරයි, පැතිකඩ එසේ කියන්නේ නම් අවලංගු කිරීමේ ලැයිස්තුව දෙස බලයි. ඔහු කිසිදා ඔබේ මූල CA සොයන්නේ නැත. සේවාදායකය සේවාලාභී සහතික සඳහා එම කටයුත්ත කැඩපතක් මෙන් කරයි. සම්බන්ධ වන මොහොතේ පත්රය, අතරමැදි සහ ඔබ කලින් බෙදාහැරි විශ්වාස මිටිය පමණක් ඇත.
සැබවින්ම අසාර්ථක වන්නේ තුනෙන් එකකි: නිකුත් කිරීමේදී අත්සන් යතුර නොමැත, අවලංගු කිරීමේ ලැයිස්තුවක් පැරණි වී ඇත, නැතහොත් සේවාලාභියාගේ විශ්වාස මිටිය සේවාදායකය ඉදිරිපත් කරන දාමයට වඩා පැරණිය. පළමුවැන්න ක්රියාවලි ගැටලුවකි; අනෙක් දෙක බෙදාහැරීමේ ගැටලු ය. ඒවායින් කිසිවක් මූල යතුර මාර්ගගතව තිබිය යුතු යැයි ඉල්ලා නොසිටී, තුරඟ තහවුරු කිරීම සඳහා පෞද්ගලික සහතිකයක් ඉල්ලන කළමනාකරණය කරන VPN සේවාව අත්සන් අධිකාරිය සැපයුම්කරු වෙත පමණක් මාරු කරයි. Azure ලක්ෂ්යයේ සිට අඩවියට විරුද්ධ දිශාවට ක්රියා කරයි: ඔබ මූල සහතිකයක් උඩුගත කරන අතර එය යටතේ අත්සන් කළ සහතික විශ්වාසදායක ලෙස සැලකේ, එබැවින් කවුරුන් අත්සන් කරන්නේද, කවුරුන් සත්යාපනය කරන්නේද සහ සහතිකයක් කලින් ඉවත් කරන්නේ කෙසේදැයි අසන්න.
කිසිදා ලිපිනයක් නොලබන සත්කාරකයක මූලය ගොඩනඟන්න
අක්රිය මූලයක් කලාතුරකින් භාවිත වේ: අතරමැදි CA සහතිකය අත්සන් කිරීමට සහ පසුව එය අලුත් කිරීමට හෝ අවලංගු කිරීමට. අනෙක් සියල්ල එක් මට්ටමක් පහළින් සිදු වේ. ජාලයෙන් බැහැරව තබා ඇති යන්ත්රයක මූල කටයුත්ත කරන්න, හැකි නම් සජීවී පද්ධතියකින්, සහ කාමරයේ සිටියේ කවුදැයි සටහන් කරන්න. විධාන OpenSSL 1.1.1 හෝ ඊට නවතම යැයි උපකල්පනය කරයි, මන්ද පැරණි ගොඩනැගීම්වල -addext නොමැති බැවිනි.
openssl genpkey -algorithm EC -pkeyopt ec_paramgen_curve:P-256 -out root.key
openssl req -x509 -new -key root.key -sha256 -days 7300 \
-subj "/CN=Example VPN Root CA" -out root.crt \
-addext "basicConstraints=critical,CA:TRUE" \
-addext "keyUsage=critical,keyCertSign,cRLSign"
අත්සන් සත්කාරකයේ අතරමැදිය සාදා එහි ඉල්ලීම පමණක් අක්රිය යන්ත්රයට ගෙන යන්න. මූලය එම ඉල්ලීම ශුන්ය මාර්ග දිගකින් අත්සන් කරයි, එබැවින් අතරමැදි CA හට අන්ත ලක්ෂ්ය සහතික අත්සන් කළ හැකි නමුත් තමා යටතේ තවත් CA එකක් සෑදිය නොහැක. එම එකම දිගුව සම්මුතියට ලක් වූ අත්සන් සත්කාරකයක් මූලයට සමාන අධිකාරියක් සෑදීම වළක්වයි. සෑම සේවාලාභියෙකුම OpenVPN 2.4 හෝ ඊට නවතම ධාවනය කරන්නේ නම් පමණක් ECDSA භාවිත කරන්න; නැතහොත් RSA යතුරු ජනනය කර ගැලීම එලෙසම තබන්න.
openssl genpkey -algorithm EC -pkeyopt ec_paramgen_curve:P-256 -out intermediate.key
openssl req -new -key intermediate.key -subj "/CN=Example VPN Intermediate CA" -out intermediate.csr
openssl x509 -req -in intermediate.csr -CA root.crt -CAkey root.key \
-CAcreateserial -days 3650 -sha256 -extfile intermediate.ext -out intermediate.crt
intermediate.ext තුළ basicConstraints=critical,CA:TRUE,pathlen:0, keyUsage=critical,keyCertSign,cRLSign සහ authorityKeyIdentifier=keyid:always අඩංගු වේ. අත්සන් සත්කාරකය නැවත සම්බන්ධ කිරීමට පෙර මූල යතුර එහි ආරක්ෂිත පෙට්ටියට ආපසු දමන්න. මූලයට අතරමැදිය අවලංගු කළ හැකි විය යුතු නම්, openssl x509 -req වෙනුවට මූල මට්ටමේ index.txt එරෙහිව openssl ca -config root.cnf -extensions intermediate_ca සමඟ අත්සන් කරන්න, එවිට අනුක්රමික අංකය සටහන් වේ; පසුව ලැබෙන මූල ලැයිස්තුව සේවාලාභී පැතිකඩ තුළ යවන්න, එහිදී ගොනු පාදක crl-verify එය ආරම්භයේදී කියවයි. සේවාලාභීන්ට CA සහතික දෙකම ඇති මිටියක් යවන්න; තනි පත්රයක් මූලයට එරෙහිව සත්යාපනය නොවේ.
අතරමැදියෙන් පත්ර නිකුත් කරන්න, දත්ත සමුදායක් සමඟ
openssl x509 -req සමඟ අත්සන් කිරීම අවලංගු කිරීම අවශ්ය වන තෙක් ක්රියා කරයි, මන්ද කිසිවක් අනුක්රමික අංකය සටහන් නොකරයි. පළමු සහතිකයේ සිට openssl ca භාවිත කරන්න, එවිට අනුක්රමික අංකය, කල් ඉකුත්වීම සහ අවලංගු කිරීමේ තත්ත්වය එකම දත්ත සමුදායක ජීවත් වේ. දත්ත සමුදායේ ගොනු එක් වරක් සාදා, පසුව වින්යාසය ඒවා වෙත යොමු කරන්න:
mkdir -p /etc/vpn-ca/intermediate/newcerts
touch /etc/vpn-ca/intermediate/index.txt
echo 1000 > /etc/vpn-ca/intermediate/serial
echo 1000 > /etc/vpn-ca/intermediate/crlnumber
[ ca ]
default_ca = CA_default
[ CA_default ]
dir = /etc/vpn-ca/intermediate
database = $dir/index.txt
new_certs_dir = $dir/newcerts
serial = $dir/serial
crlnumber = $dir/crlnumber
certificate = $dir/intermediate.crt
private_key = $dir/intermediate.key
default_md = sha256
default_days = 365
default_crl_days = 30
unique_subject = no
policy = policy_any
[ policy_any ]
commonName = supplied
[ server_cert ]
basicConstraints = CA:FALSE
keyUsage = critical, digitalSignature
extendedKeyUsage = serverAuth
subjectAltName = @server_names
[ client_cert ]
basicConstraints = CA:FALSE
keyUsage = critical, digitalSignature
extendedKeyUsage = clientAuth
[ server_names ]
DNS.1 = vpn.example.com
යතුරු භාවිත පේළිය ECDSA යතුරක් උපකල්පනය කරයි; RSA සඳහා keyEncipherment එක් කරන්න. සෑම සේවාලාභියෙකුටම තමන්ගේම පොදු නාමයක් දෙන්න, මන්ද OpenVPN එම ක්ෂේත්රයෙන් සම්බන්ධතාවය හඳුනා ගනී, සහ CN=vpn-client බෙදාගන්නා ලැප්ටොප් දෙකක් ලොගවල, client-config-dir නීතිවල හෝ කිසිදු පරිශීලක-විශේෂිත push එකක වෙන්කර හඳුනාගත නොහැක, ඔබ අවලංගු කිරීමේ තීරණය ආරක්ෂා කළ හැකි කරන ආරෝපණය අහිමි වේ. පත්රය මෙසේ නිකුත් කර සත්යාපනය කරන්න:
openssl req -new -key alice.key -subj "/CN=alice-laptop" -out alice.csr
openssl ca -config intermediate.cnf -extensions client_cert -in alice.csr -out alice.crt -batch
openssl verify -CAfile ca-bundle.crt -untrusted intermediate.crt alice.crt
අත්සන් යතුර VPN සත්කාරකයට පිටපත් කරනවා වෙනුවට ප්රතිපත්ති මායිමක් පිටුපස තබන්න: ඉල්ලීම සත්යාපනය කරන, පොදු නාමය අනුමත ලැයිස්තුවකට එරෙහිව පරීක්ෂා කරන සහ සහතිකය පමණක් ආපසු දෙන කුඩා සේවාවක්. සෑම අනුක්රමික අංකයක් සටහන් කරන්න; ලොගය සහතිකයක් සහ එය ඉල්ලූ පුද්ගලයා අතර ඇති එකම සබැඳියයි.
මූලය අවදි නොකර අවලංගු කිරීම ප්රකාශයට පත් කරන්න
සේවාලාභී සහතික අවලංගු කරන්නේ අතරමැදිය, කිසිදා මූලය නොවේ. මූල ලැයිස්තුව වැදගත් වන්නේ අතරමැදියක් දැවූ විට පමණි. සේවාදායකය crl-verify සමඟ අතරමැදි ලැයිස්තුව වෙත යොමු කරන්න. ගොනු පාදක CRL සේවාව ආරම්භයේදී පූරණය වේ, එබැවින් සෑම නැවත ජනනයකින් පසුව නැවත පූරණය කරන්න; නාමාවලි ආකාරය සම්බන්ධ වන මොහොතේ තත්ත්වය කියවන අතර සෑම අනුක්රමික අංකයකටම එක් ගොනුවක් වැය කරයි.
එකම දත්ත සමුදායෙන් විධාන දෙකකින් අවලංගු කර නැවත ජනනය කරන්න:
openssl ca -config intermediate.cnf -revoke /etc/vpn-ca/intermediate/newcerts/1001.pem
openssl ca -config intermediate.cnf -gencrl -out /etc/openvpn/crl.pem
පසුව ඔරලෝසුව නිරීක්ෂණය කරන්න. CRL එකක් ඊළඟ යාවත්කාලීන කිරීමේ ක්ෂේත්රයක් රැගෙන යයි, එම දිනය ඉක්මවූ පසු සත්යාපනය කරන පාර්ශවය ලැයිස්තුව නොසලකා හරිනවා වෙනුවට ප්රතික්ෂේප කරයි. default_crl_days = 30 සමඟ මාසිකව නැවත ජනනය කිරීම ඉඩ ඉතිරි කරයි; වාර්ෂිකව නොකරයි. කෙටි පත්ර ආයුෂ වඩාත් විශ්වාසදායක පාලනයකි, මන්ද අවලංගු කිරීම අදාළ වන්නේ ලැයිස්තුව බලන තැනට පමණි.
දාමය පරීක්ෂා කර, පසුව චාරිත්රය ලියා තබන්න
නිර්මාණය විශ්වාස කිරීමට පෙර අසාර්ථකතා හතරක් ප්රතිනිර්මාණය කරන්න. openssl verify -CAfile ca-bundle.crt -untrusted intermediate.crt server.crt සමඟ දාමය සත්යාපනය කරන්න. කල් ඉකුත් වූ සේවාලාභී සහතිකයක් සමඟ සම්බන්ධ වී සේවාදායකය එය ප්රතික්ෂේප කරන බව තහවුරු කරන්න. පරීක්ෂණ සේවාලාභියෙකු අවලංගු කර, නැවත පූරණය කර ලැයිස්තුව බලපවත්වන බව තහවුරු කරන්න. සත්කාරකයක ඔරලෝසුව දිනක් ඉදිරියට ගෙන යන්න, මන්ද වැරදි ඔරලෝසුවක් වෙනත් තැනක වලංගු ලෙස පෙනෙන සහතික නිකුත් කර ප්රතික්ෂේප කළ හැකි බැවිනි.
අක්රිය මූලයක් පාලනයක් වන්නේ ලේඛන තිබේ නම් පමණි: චාරිත්රය සඳහා නම් කළ පුද්ගලයන් දෙදෙනෙකු, අත්සන් කළ සෑම අනුක්රමික අංකයකම වාර්තාවක්, යන්ත්රයෙන් වෙන්ව ගබඩා කළ සංකේතනය කළ උපස්ථයක්, සහ හුදකලා සත්කාරකයක ප්රතිසාධන පරීක්ෂණයක්. එම චාරිත්රයේදීම අමතර අතරමැදියක් අත්සන් කරන්න, මිය ගිය අත්සන් සත්කාරකයක් ඔබට මධ්යම රාත්රියේ මූලය විවෘත කිරීමට බල නොකරන පරිදි.
එය සම්පූර්ණ යැයි කීමට පෙර කරුණු පහක් තහවුරු කරන්න: මූල යතුර ජාලගත සත්කාරකයක නොමැත, අතරමැදි යතුර ජීවත් වන්නේ අත්සන් සත්කාරකයේ පමණි, සේවාලාභී මිටිය CA සහතික දෙකම රැගෙන යයි, CRL එකකට අනාගත ඊළඟ යාවත්කාලීනයක් ඇත, සහ දාමයේ සෑම කල් ඉකුත්වීමකටම යමෙකුට දින දර්ශන සටහනක් ඇත. එකක් හෝ නොමැති නම්, අක්රිය ලෙස පෙනෙන සැකසුම ලේඛනගත නොකළ එකක් පමණි.