మద్దతు లేని సర్టిఫికెట్ ఉద్దేశ్యం: మధ్యవర్తి CA ఎందుకు విఫలమవుతుంది
OpenVPN మద్దతు లేని సర్టిఫికెట్ ఉద్దేశ్యాన్ని నివేదించినప్పుడు, లీఫ్ సర్టిఫికెట్ నిర్దోషిగా ఉండవచ్చు. ఏదైనా తిరిగి జారీ చేయడానికి ముందు లీఫ్ ఉద్దేశ్యాన్ని చైన్ విధానంతో పోల్చండి.
సర్వర్ సర్టిఫికెట్ ఉద్దేశ్యం సరిగ్గా కనిపిస్తుంది, కీ సరిపోలుతుంది, తేదీలు బాగానే ఉన్నాయి, అయినా కనెక్షన్ unsupported certificate purpose తో విఫలమవుతుంది. ఇది పరిష్కరించే వివరం సాధారణంగా లోపం ఉన్న అదే పంక్తిలో ఉంటుంది: చైన్లో పైన ఉన్న సర్టిఫికెట్ను పేర్కొనే లోతు విలువ మరియు subject. రెండు వేర్వేరు పరీక్షలు నడుస్తున్నాయి, వాటిలో ఒకటి మాత్రమే లీఫ్కు సంబంధించినది. వాటిని పోల్చడం సర్వర్ సర్టిఫికెట్ మార్చడం ఎందుకు ఏమీ మార్చదో వివరిస్తుంది.
ధృవీకర్త నిజంగా తిరస్కరించిన సర్టిఫికెట్ ఏది
చైన్ అనేది మూడుసార్లు పునరావృతమైన ఒక వస్తువు కాదు. లీఫ్ సర్వర్ పేరు మరియు కీని కలిగి ఉంటుంది, మధ్యవర్తి సర్టిఫికెట్లు దాన్ని మూలంతో కలుపుతాయి, ప్రతి దానికి దాని స్వంత చెల్లుబాటు కాలం, పరిమితులు మరియు ఉపయోగాలు ఉన్నాయి. లోపం లోతును పేర్కొన్నప్పుడు, ఆ సంఖ్య ధృవీకర్త నిర్మించిన చైన్లో ఒక స్థానాన్ని గుర్తిస్తుంది, సర్వర్ అనుకోని చైన్ పంపితే అది మీరు ఆశించిన స్థానం కాకపోవచ్చు.
ఆ లోతులో ఉన్న సర్టిఫికెట్ ఫీల్డ్లను చదవండి, మీరు దోషి అనుకున్న సర్టిఫికెట్ వాటిని కాదు. ప్రతి ఫీల్డ్ కుమ్మరించడం బదులు జారీని పరిమితం చేసే రెండు extensions అడగండి, ఎందుకంటే సమాధానం దాదాపు ఎప్పుడూ వాటిలో ఒకటిలోనే ఉంటుంది. extensions అవుట్పుట్ పంచుకోవడం సురక్షితం; ప్రైవేట్ కీలు ఎప్పుడూ కాదు.
openssl x509 -in issuing-ca.pem -noout -subject -issuer -ext basicConstraints -ext extendedKeyUsage
పేర్కొన్న సర్టిఫికెట్ మధ్యవర్తి అయి, దాని విస్తృత కీ వినియోగం TLS సర్వర్ ప్రామాణీకరణకు సంబంధం లేని విషయాన్ని ప్రస్తావిస్తే, మిగిలిన వైఫల్యం యాంత్రికంగా వస్తుంది. OpenVPN కోరిన ఉద్దేశ్యానికి చైన్ను ఉపయోగించలేము.
లీఫ్ ఉద్దేశ్యం మరియు చైన్ విధానం రెండు పరీక్షలు
లీఫ్ పరీక్ష ఒక సన్నని ప్రశ్న అడుగుతుంది: ఈ తుది ఎంటిటీ సర్టిఫికెట్ ఈ పేరుకు సర్వర్ ప్రామాణీకరణను అనుమతిస్తుందా? చైన్ పరీక్ష మరింత విశాలమైనది అడుగుతుంది: మార్గంలోని ప్రతి సర్టిఫికెట్ ఆ ఉద్దేశ్యానికి సేవ చేయగలదా? క్లయింట్ సర్టిఫికెట్లను మాత్రమే జారీ చేయడానికి అనుమతి ఉన్న సర్టిఫికెట్ అధికారం తన సొంత సంతకం తనిఖీలను దాటి, అయినా రెండవ పరీక్షలో విఫలమవుతుంది, ఎందుకంటే అది అనుమతించే మార్గంలో అప్లికేషన్కు అవసరమైన ఉద్దేశ్యం లేదు. రెండు పరీక్షలు ఒకే మాటలతో విఫలమవుతాయి, పూర్తిగా భిన్నమైన పరిష్కారాలు ఉన్నాయి.
అందుకే అన్ని కనిపించే ఫీల్డ్లలో సరైన కొత్తగా జారీ చేసిన లీఫ్ కూడా వెంటనే విఫలమవుతుంది. అందుకే పరిష్కారం సాధారణంగా VPN కాన్ఫిగరేషన్లో కాదు, జారీ చేసే అధికారం ప్రొఫైల్లో ఉంటుంది.
లేని EKU నిర్బంధక EKU కాదు
RFC 5280 విస్తృత కీ వినియోగం extension ను ఐచ్ఛికంగా చేస్తుంది, అది ఉన్నప్పుడు నిర్బంధకంగా ఉంటుంది. అందుకే extension లేని CA సర్టిఫికెట్ సర్వర్ ప్రామాణీకరణకు 'లేదు' అని చెప్పలేదు, కానీ సంబంధం లేని ఉద్దేశ్యాన్ని మాత్రమే జాబితా చేసేది చాలా నిర్దిష్టమైనది చెప్పింది. ఈ రెండు స్థితులను సమానంగా పరిగణించడం తప్పు నిర్ధారణను, దానికంటే దారుణంగా తప్పు పరిష్కారాన్ని ఇస్తుంది. ఈ భేదం కన్సోల్లో ఒకేలా కనిపించే రెండు అధికారాలు చైన్లో పూర్తిగా భిన్నంగా ప్రవర్తించడాన్ని కూడా వివరిస్తుంది.
లైబ్రరీల ప్రవర్తన కూడా ఇక్కడ ఏకరీతిగా లేదు. OpenSSL యొక్క ధృవీకరణ ఎంపికల పత్రం CA సర్టిఫికెట్లపై ఉద్దేశ్య తనిఖీలపై తన స్వంత విధానాన్ని వివరిస్తుంది, ఆ విధానం అమలు విధానం తప్ప ప్రతి TLS స్టాక్ ఒకేలా పాటించే నియమం కాదు. మీ ధృవీకర్త ఏమి చేస్తుందో వివరించండి, తర్వాత మీరు నిజంగా నడిపే సంస్కరణపై దాన్ని నిర్ధారించండి.
తిరిగి జారీ చేయడానికి ముందు వైఫల్యాన్ని ఆఫ్లైన్లో పునరుత్పత్తి చేయండి
ఆఫ్లైన్ ధృవీకరణ అప్లికేషన్ను సమీకరణం నుండి తీసివేస్తుంది. అదే ఉద్దేశ్యం కింద చైన్ అదే విధంగా విఫలమైతే, సమస్య సర్టిఫికెట్లోనే ఉంది మరియు ఏ సర్వర్ కాన్ఫిగరేషన్ దాన్ని దాచలేదు. చైన్ ఆఫ్లైన్లో ఉత్తీర్ణమైనా సేవ ఇంకా నిరాకరిస్తే, అప్లికేషన్ వేరే ఉద్దేశ్యాన్ని అడుగుతోంది లేదా మీరు పరీక్షించిన దానికి భిన్నమైన చైన్ను ఉపయోగిస్తోంది.
openssl verify -purpose sslserver -show_chain -CAfile root-ca.pem -untrusted issuing-ca.pem vpn-server.pem
-show_chain ముఖ్యం, ఎందుకంటే అది సాధనం నిర్మించిన మార్గాన్ని ముద్రిస్తుంది, అది తరచుగా మీరు ఇచ్చిన ఫైల్ క్రమం కాదు. ఆ అవుట్పుట్ రెండవ మధ్యవర్తి సర్టిఫికెట్ ట్రస్ట్ స్టోర్ నుండి లాగబడుతోందని, సర్వర్ మీరు ఉద్దేశించని క్రాస్-సైన్డ్ రూపాంతరాన్ని పంపుతోందని, లేదా ట్యుటోరియల్ నుండి కాపీ చేసిన ఉద్దేశ్య జెండా సేవ చేయబడుతున్న పాత్రకు భిన్నమైన పాత్రకు చెందుతుందని కనుగొనడానికి వేగవంతమైన మార్గం.
జారీ విధానాన్ని సరిచేయండి, ధృవీకరణ పిలుపును కాదు
శాశ్వత పరిష్కారం అనేది అది సేవ చేయాల్సిన ఉద్దేశ్యాలను అనుమతించే విధానం కింద జారీ చేసిన మధ్యవర్తి సర్టిఫికెట్, పరిమితి వ్రాయబడి సమీక్షించబడి ఉంటుంది. ప్రతి అధికారానికి ప్రతి ఉద్దేశ్యాన్ని జోడించడం విధానం కాదు; అది extension కు అర్థం ఇచ్చిన పరిమితిని తొలగిస్తుంది, సాధారణంగా దాన్ని ప్రేరేపించిన సంఘటన కంటే ఎక్కువ కాలం నిలుస్తుంది. ప్రొఫైల్లో అధికారం ఏ పాత్రలను ధృవీకరించగలదో వివరించే చిన్న గమనిక తదుపరి పునర్జారీ అదే చర్చను పునరావృతం చేయకుండా నిరోధిస్తుంది.
ధృవీకరణను ఆఫ్ చేయడం మరొక ఆకర్షణీయమైన షార్ట్కట్, అది సర్టిఫికెట్ సమస్యను విశ్వాస సమస్యగా మారుస్తుంది. ఉద్దేశ్య తనిఖీని అలాగే ఉంచండి, చైన్ను సరిచేయండి, మార్గం ఇప్పుడు ఉద్దేశించిన పాత్రకు సేవ చేస్తుందని నిర్ధారించడానికి అదే ఆఫ్లైన్ ధృవీకరణను మళ్లీ నడపండి, తర్వాత సేవను మళ్లీ తాకండి.