તમારો VPN ક્લાયન્ટ પ્રમાણપત્ર પર ભરોસો કરતાં પહેલાં શું તપાસે છે
પ્રમાણપત્રની ચેતવણીને તમારા ક્લાયન્ટ તપાસતા ચાર દરવાજાઓમાંથી પસાર કરો: CA ભરોસો, સાંકળ બાંધવી, પીઅર નામ અને હેતુ, અને રદ કરવાની નીતિ.
તમારો VPN ક્લાયન્ટ કહે છે કે પ્રમાણપત્ર ચકાસી શકાયું નહીં, અને સંવાદ ત્યાં જ અટકે છે. ફાઇલ હાજર છે, સર્વર ચાલુ છે, અને એ જ પ્રોફાઇલ ગયા મહિને બીજા લેપટોપ પર કામ કરતું હતું. એ એક-લીટરની ચેતવણી નીચે ક્લાયન્ટે પીઅર પ્રમાણપત્રને ચાર દરવાજાઓમાંથી પસાર કર્યું: તમે ગોઠવેલી પ્રમાણપત્ર સત્તા સહીના માર્ગની બાંયધરી આપે છે, એ માર્ગ સત્તા સુધી પહોંચે છે, પીઅર નામ એ છે જે તમે માંગ્યું હતું, અને પ્રમાણપત્ર હવે આ હેતુ માટે વપરાયોગ્ય છે. બંધ થયેલો દરવાજો શોધો અને સુધારો સામાન્ય રીતે એક ફાઇલ છે; એ પગલું છોડો તો આખી બપોર બંડલ ફરી આયાત કરશો.
પ્રોફાઇલ સંપાદિત કરતાં પહેલાં સંવાદ વાંચો
પ્રમાણપત્રની ભૂલોનું શબ્દીકરણ નીચેની લાઇબ્રેરી કરે છે, તમે ઇન્સ્ટોલ કરેલું VPN ઉત્પાદન નહીં, તેથી ચોક્કસ સ્ટ્રિંગ તમારો પહેલો પુરાવો છે. «સ્થાનિક ઇશ્યુઅર પ્રમાણપત્ર મળી શકતું નથી» માર્ગ અથવા ભરોસાના એન્કર તરફ ઇશારો કરે છે. «પ્રમાણપત્રની અવધિ પૂરી થઈ છે અથવા તે હજી માન્ય નથી» સમય તરફ ઇશારો કરે છે. «અસમર્થિત પ્રમાણપત્ર હેતુ» વિસ્તૃત કી વપરાશ તરફ ઇશારો કરે છે. નામની અસંગતિ તમને કહે છે કે તે કયું નામ ઇચ્છતું હતું. ચારમાંથી એક પણ ક્લાયન્ટ ફરી ઇન્સ્ટોલ કરીને સુધરતું નથી.
કંઈપણ બદલતાં પહેલાં લોગ સ્તર વધારો. OpenVPN --verb 4 સાથે ચલાવો ત્યારે હેન્ડશેક આસપાસની ચકાસણી નિષ્ફળતા જણાવે છે, અને strongSwan પોતાના ઓળખ અને સાંકળના નિર્ણયો charon લોગમાં લખે છે. પછી તમે કયું પ્રમાણપત્ર તપાસી રહ્યા છો તે નિશ્ચિત કરો, કારણ કે લોકો સામાન્ય રીતે ડિસ્ક પરની ફાઇલ ચકાસે છે જ્યારે પ્રોફાઇલ જૂની નકલ અંદર રાખે છે. જ્યારે પ્રોફાઇલ PEM બ્લોક અંદર રાખે છે, ત્યારે અંદરનું પ્રમાણપત્ર જ ચકાસાય છે.
પ્રમાણપત્ર સત્તા ઓળખ પર સહી કરે છે, પરવાનગી પર નહીં
સત્તા પાસે એક નામ અને એક સહી કી હોય છે. તે પોતાની નીતિ હેઠળ જાહેર કીને એ નામ સાથે જોડતાં પ્રમાણપત્રો આપે છે, સાથે માન્યતા વિન્ડો અને વપરાશ મર્યાદાઓ જોડાયેલી હોય છે. તમારા ક્લાયન્ટને ઇશ્યુઅર ઓળખવા માટે ફક્ત સત્તાનું પ્રમાણપત્ર જોઈએ; તેને સહી કી ક્યારેય જોઈએ નહીં, અને એ કી ક્લાયન્ટને મોકલવી તેમને કોઈપણ ઓળખ બનાવવાની ક્ષમતા આપે જેના પર ડિપ્લોયમેન્ટ ભરોસો કરે છે.
કોઈ સત્તા પર ભરોસો કરવાથી તેની સહી કરેલું દરેક પ્રમાણપત્ર ઉમેદવાર બને છે, યોગ્ય પીઅર નહીં. એ જ આંતરિક CAનું વેબ સર્વર પ્રમાણપત્ર પણ ઉમેદવાર છે. એટલે નામ અને હેતુના દરવાજા છે, અને એટલે ચોરાયેલી CA કી કોઈપણ એકલ સર્વર કરતાં વધુ મહત્ત્વની છે: તે સત્તાએ ક્યારેય આપેલી દરેક ઓળખ સુધી પહોંચે છે. દરેક ઉપકરણ માટે અલગ ક્લાયન્ટ પ્રમાણપત્ર આપો, જેથી ખોવાયેલું લેપટોપ આખા ડિપ્લોયમેન્ટની કી ફેરબદલી નહીં, પણ એક રદ કરવું બને.
ક્લાયન્ટ જે માર્ગ બનાવવા માંગે છે તે ફરી બનાવો
માર્ગ પીઅર પ્રમાણપત્રથી શરૂ થાય છે, શૂન્ય કે વધુ મધ્યવર્તી પ્રમાણપત્રોમાંથી પસાર થાય છે, અને તમારા ભરોસા સંગ્રહના મૂળ સુધી પહોંચે છે. ખૂટતું મધ્યવર્તી પ્રમાણપત્ર સૌથી સામાન્ય સાંકળ નિષ્ફળતા છે, અને ક્લાયન્ટની બાજુથી તે અવિશ્વસનીય મૂળ જેવું જ લાગે છે. પહેલા પર્ણ વાંચો, પછી જે સામગ્રી મોકલવા માંગો છો તેમાંથી OpenSSL ને માર્ગ બનાવવા દો.
openssl x509 -in server.crt -noout -subject -issuer -dates
openssl verify -CAfile root.crt -untrusted intermediate.crt server.crt
openssl verify -show_chain -CAfile root.crt -untrusted intermediate.crt server.crt
શૂન્ય એક્ઝિટ સ્થિતિ એટલે કે માર્ગ એ ફાઇલોમાંથી બન્યો; નિષ્ફળતા તે પ્રમાણપત્રનું નામ આપે છે જ્યાં પહોંચી શકાયું નહીં. જો openssl verify સફળ થાય અને ક્લાયન્ટ હજી ઇનકાર કરે, તો ફરક એમાં છે કે સર્વર ખરેખર શું મોકલે છે અથવા પ્રોફાઇલ કઈ ભરોસા ફાઇલ લોડ કરે છે. OpenVPN માં મધ્યવર્તી પ્રમાણપત્રો સર્વર પ્રમાણપત્ર ફાઇલ સાથે જઈ શકે છે અથવા --extra-certs સાથે અલગ આપી શકાય છે, અને એક જ વિષય નામ હેઠળ લખાયેલા બે મૂળ ધરાવતું બંડલ તમારા એક ક્લાયન્ટને ખોટી શાખામાં મોકલશે.
નામ અને હેતુ અલગ દરવાજા છે
સાંકળ બાંધવી ક્યારેય પૂછતી નથી કે નામ તમારું છે કે નહીં. OpenVPN તેને ફક્ત ત્યારે તપાસે છે જ્યારે પ્રોફાઇલ --verify-x509-name સેટ કરે છે, અને ફક્ત સામાન્ય નામ મેળવવાની જૂની ટેવ એ પ્રમાણપત્રો પર તૂટે છે જેમની ઓળખ subjectAltName માં રહે છે. IKEv2 ડિપ્લોયમેન્ટ ગોઠવેલી ઓળખને SAN એન્ટ્રી કે વિશિષ્ટ નામ સાથે મેળવે છે, ક્લાયન્ટ પર આધાર રાખીને, અને વાઇલ્ડકાર્ડ કે %any મૂલ્ય તમે ધારેલી સરખામણી ચૂપચાપ બંધ કરી દે છે.
પછી સમય અને હેતુ આવે છે. જેની ઘડિયાળ થોડા કલાક આગળ ચાલે છે એવું લેપટોપ હજી માન્ય ન હોય એવું પ્રમાણપત્ર નકારે છે, અને મુદત પૂરી થયેલું મધ્યવર્તી પ્રમાણપત્ર પર્ણ ચાલુ હોવા છતાં માર્ગ નિષ્ફળ કરે છે. હેતુની નિષ્ફળતા એવા પ્રમાણપત્રથી આવે છે જેમાં વિસ્તૃત કી વપરાશમાં serverAuth નથી, અથવા એવી keyUsage છે જે હેન્ડશેક સહીને મંજૂરી આપતી નથી, જે OpenSSL અસમર્થિત પ્રમાણપત્ર હેતુ તરીકે જણાવે છે. યોગ્ય ટેમ્પલેટમાંથી ફરી ઇશ્યુ કરો; એ સંદેશમાં ચકાસણી બંધ કરવાનું કોઈ કારણ નથી.
રદ કરવું ફક્ત ત્યારે ચાલે જ્યારે કોઈએ તે ગોઠવ્યું હોય
CRL કે OCSP પ્રતિસાદ આપોઆપ તપાસાતો નથી. OpenVPN સર્વર પર ક્લાયન્ટ પ્રમાણપત્રો યાદી સામે ફક્ત ત્યારે તપાસાય છે જ્યારે --crl-verify કોઈ યાદી તરફ ઇશારો કરે. સર્વર પ્રમાણપત્રની ક્લાયન્ટ-બાજુ ચકાસણી અમલીકરણ પર આધાર રાખે છે અને ઘણી વાર હોતી નથી. strongSwan ને પીઅર માટે CRL જોતાં પહેલાં પોતાનું રદ-કરવાનું પ્લગઇન અને નીતિ જોઈએ છે.
એથી એ ટિકિટ સમજાય છે જે તમને અંતે મળશે: રદ કરેલું ક્લાયન્ટ પ્રમાણપત્ર હજી કનેક્ટ થાય છે, અને બધા તારણ કાઢે છે કે રદ કરવું તૂટેલું છે. કંઈ પણ તપાસતું ન હતું. CRL પ્રકાશિત કરો અને તાજું કરો, અથવા ક્લાયન્ટ પ્રમાણપત્રો એટલાં ટૂંકાયુષી રાખો કે જૂનું રદ કરવું થોડા સમય માટે જ મહત્ત્વનું રહે, અને ઘટનાના સમયે જરૂર પડે તે પહેલાં પ્રયોગશાળા પ્રમાણપત્ર પર રદ કરવાના માર્ગનો અભ્યાસ કરો.
ચકાસણી ચાલુ રાખતો સુધારા ક્રમ
ફાઇલોને અડતાં પહેલાં લક્ષણ પ્રમાણે ગોઠવો, કારણ કે કોષ્ટકની દરેક પંક્તિ તમને અલગ વસ્તુ તરફ મોકલે છે.
| Client says | Most likely gate | First check |
|---|---|---|
| unable to get local issuer certificate | trust anchor or missing intermediate | your own openssl verify against the files the profile loads |
| expired or not yet valid | validity window | leaf and intermediate dates against the device clock |
| unsupported certificate purpose | extended key usage | serverAuth present, keyUsage allows the handshake |
| name mismatch | peer identity | subjectAltName entries versus the profile name |
યાદી એક જ પાસમાં પૂરી કરો: પ્રોફાઇલ જે ફાઇલ લોડ કરે છે તે નિશ્ચિત કરો, માર્ગ જાતે બનાવો, સર્વર મધ્યવર્તી પ્રમાણપત્ર મોકલે છે કે નહીં તે તપાસો, ઘડિયાળ સરખાવો, SAN વાંચો, EKU વાંચો, પછી ફરી કનેક્ટ થાઓ અને એ જ લોગ લીટી અદૃશ્ય થતી જુઓ. જો ઉપકરણને બિલકુલ CA આપી શકાય નહીં, તો પિનિંગ પ્રામાણિક વિકલ્પ છે, કારણ કે OpenVPN 2.6 --peer-fingerprint સ્વીકારે છે અને ચકાસણી દૂર કરવાને બદલે ભરોસો એક કી સુધી સંકુચિત કરે છે. આ ક્ષેત્રોમાંથી દરેકનો અર્થ શું છે તેનો સંદર્ભ RFC 5280 છે.