openssl ca: index.txt లో చెల్లని గడువు తేదీ మరియు దాన్ని ఎలా సరిచేయాలి
index.txt లోని ఒక పంక్తిని విశ్లేషించలేము కాబట్టి CA జారీ చేయడానికి నిరాకరిస్తోంది. CA స్థితిని కాపీ చేయండి, నమోదును డీకోడ్ చేయండి, ఆపై సంతకం చేసిన ధృవపత్రంతో సరిపోల్చండి.
ఒక జారీ పరుగు ఇక్కడ ఆగుతుంది: entry 22: invalid expiry date, కానీ మీ ముందున్న అభ్యర్థన పూర్తిగా సరైనది. ఫిర్యాదు CA డేటాబేస్ విశ్లేషకం నుండి వస్తుంది, CSR నుండి కాదు మరియు చివరికి ధృవపత్రాన్ని సమర్పించే VPN క్లయింట్ నుండి కూడా కాదు. ఆ భేదమే తర్వాత జరిగే ప్రతిదాన్ని నిర్ణయిస్తుంది: నమోదు వికృతమైంది, కాబట్టి మరమ్మతు CA స్థితిలో ఉంటుంది, అభ్యర్థనలో లేదా సహచర నిర్మాణంలో కాదు. సంఖ్యా నమోదును index.txt లో ఒక పంక్తిగా భావించండి, సమస్య ధృవీకరించదగిన సమాధానంతో కూడిన పరిమిత డేటా ప్రశ్నగా కుచించుకుపోతుంది.
లోపాన్ని డేటాబేస్ గురించిన ఫిర్యాదుగా చదవండి
ప్రతి openssl ca పిలుపు ఏదైనా సంతకం చేసే ముందు తన పాఠ్య డేటాబేస్ గుండా వెళుతుంది. ప్రతి పంక్తిలో స్థితి అక్షరం, గడువు ముగింపు సమయ ముద్ర, ఐచ్ఛిక రద్దు ముద్ర, హెక్స్లో క్రమ సంఖ్య, ఫైల్ పేరు మరియు విషయం ఉంటాయి. ఒక క్షేత్రాన్ని విశ్లేషించలేకపోతే, ఆదేశం పంక్తి సంఖ్యను నివేదించి, మిగిలిన నమోదును ఊహించడం బదులు ఆగిపోతుంది.
ఆ ఆగుడు రక్షణాత్మకం, కఠినత్వం కాదు. సాధనం చదవలేని నమోదు, అడిగిన విషయం ఇప్పటికే ఉందా, క్రమ సంఖ్య ఇవ్వబడిందా, లేదా తదుపరి CRL లో ఏమి ఉండాలి అని నిర్ణయించలేకుండా చేస్తుంది. చెడు పంక్తిని దాటి ముందుకు సాగితే, నెలల తర్వాత, సాధారణంగా ఎవరూ వివరించలేని రద్దు సమయంలో బయటపడే అదే నిశ్శబ్ద అసంగతిని సృష్టించేది. సందేశాన్ని డేటా గురించిన ఫిర్యాదుగా చదవండి, విచారణ CA డైరెక్టరీ లోపలే ఉంటుంది.
ఏదైనా తాకే ముందు CA స్థితిని కాపీ చేయండి
డేటాబేస్ ఫైల్ మాత్రమే కాదు, మొత్తం CA డైరెక్టరీ స్నాప్షాట్ తీసుకోండి. సూచిక, దాని లక్షణ ఫైల్, క్రమ సంఖ్య మరియు CRL సంఖ్య ఫైళ్లు, ప్రైవేట్ కీ మరియు జారీ చేసిన ధృవపత్రాలు అన్నీ తర్వాతి కార్యకలాపాలలో పాల్గొంటాయి, ఒకదాన్ని పునరుద్ధరించి మిగిలినవి వదిలే మరమ్మతు రెండవ సంఘటనను సృష్టిస్తుంది. ఉన్నచోట CA యొక్క స్వంత బ్యాకప్ విధానాన్ని ఉపయోగించండి, పని జరిగే కాలంలో షెడ్యూల్ చేసిన జారీని నిలిపివేయండి.
విఫలమైన ఆదేశం నిజంగా లోడ్ చేసిన OpenSSL బిల్డ్ మరియు కాన్ఫిగరేషన్ ఫైల్ను నమోదు చేయండి. ఇన్స్టాలేషన్లు తరచుగా ఒకటి కంటే ఎక్కువ CA డైరెక్టరీలను ఉంచుతాయి, లోపం ఎంచుకున్న కాన్ఫిగరేషన్ పేర్కొనే డేటాబేస్కు మాత్రమే అర్థవంతం.
నమోదును కనుగొని దాని తేదీ క్షేత్రాన్ని డీకోడ్ చేయండి
నివేదించిన పంక్తి సంఖ్య మొదటి నమోదు నుండి లెక్కించబడుతుంది, కాబట్టి sed -n '22p' index.txt దాని పైన ఖాళీ లేదా వ్యాఖ్య పంక్తులు లేవని నిర్ధారించిన తర్వాత సమస్యాత్మక నమోదుపై పడుతుంది. ఆ పంక్తిని కనిపించే విభాజకాలతో ముద్రించండి, ఎందుకంటే ట్యాబ్లు మరియు చివరి ఖాళీలు సాధారణం, సాధారణ ఎడిటర్ విండోలో కనిపించవు.
గడువు క్షేత్రం సంవత్సరంపై ఆధారపడి వెడల్పు మారే సమయ ముద్ర. 2049 వరకు విలువలు UTCTime లో YYMMDDHHMMSSZ రూపంలో రాయబడతాయి, తర్వాతి విలువలు నాలుగు అంకెల సంవత్సరంతో GeneralizedTime కి మారుతాయి. రెండు రూపాలను కలిపే, లేదా విశ్లేషకం ఇప్పుడు నాలుగు అంకెలు ఆశించే చోట రెండు అంకెల సంవత్సరం ఉన్న నమోదు సరిగ్గా ఇదే స్థానంలో విఫలమవుతుంది. అంతరాయం కలిగిన రాత నుండి మిగిలిన కత్తిరించిన క్షేత్రం కూడా అలాగే.
నమోదును మరొక CA ఫైల్తో కాదు, అది సూచించే ధృవపత్రంతో పోల్చండి. సంతకం చేసిన ధృవపత్రం చెల్లుబాటు ఏమి చెప్పాలో నిర్ణయించే అధికారం, అది ఇప్పటికే విశ్లేషించగల వస్తువుగా ఉంది.
సంతకం చేసిన ధృవపత్రం ఆధారంగా నమోదును సరిచేయండి
నిజమైన తేదీలను దీనితో చదవండి: openssl x509 -in issued.pem -noout -dates -serial -subject. notAfter మీ బిల్డ్ ఆ సంవత్సరానికి రాసే ముద్ర వెడల్పుగా మార్చండి, ఒక అక్షరం కూడా మార్చే ముందు క్రమ సంఖ్య మీరు సవరించబోయే నమోదుతో సరిపోలుతుందని నిర్ధారించుకోండి.
విరిగిన క్షేత్రాన్ని మాత్రమే సవరించండి, స్థితి అక్షరం మరియు క్రమ సంఖ్యను ఉంచండి, పంక్తిలో మిగిలిన భాగాన్ని అలాగే వదిలేయండి. ఏ సంతకం చేసిన ధృవపత్రంతోనూ నమోదును సరిపోల్చలేకపోతే, దాన్ని తప్పిపోయిన నమోదుగా పరిగణించి, పంక్తిని చేతితో తొలగించడం బదులు CA యొక్క స్వంత రద్దు మార్గం ద్వారా విరమించండి.
సంవత్సరం గురించిన ఊహకు సరిపోయేలా తేదీని కత్తిరించి సరిచేయవద్దు. రెండు అక్షరాల కోత బిల్డ్ల మధ్య తరలించలేము, మరియు డేటాబేస్ భవిష్యత్ నకిలీ విషయం మరియు CRL తనిఖీలకు నివేదించే చెల్లుబాటును నిశ్శబ్దంగా మారుస్తుంది. అసలు విలువను తిరిగి పొందలేకపోతే, కొత్త క్రమ సంఖ్యలో తిరిగి జారీ చేయండి మరియు పాతది ఎందుకు వదిలివేయబడిందో రాయండి. ఆడిట్ జాడ మరమ్మతులో భాగం, దాని చుట్టూ ఉన్న కాగితపు పని కాదు.
బయలుదేరే ముందు జారీ మరియు CRL సృష్టిని ధృవీకరించండి
అదే కాన్ఫిగరేషన్తో ఒక జారీని నడపండి, అది పంక్తి సంఖ్య ఫిర్యాదు లేకుండా పూర్తవుతుందని నిర్ధారించండి. ఆపై openssl ca -gencrl -config openssl.cnf తో CRL సృష్టించి అది విశ్లేషించబడుతుందని తనిఖీ చేయండి, ఎందుకంటే దెబ్బతిన్న నమోదు సంతకం చేసేటప్పుడు కాదు, తరచుగా అక్కడే బయటపడుతుంది.
కొత్త ధృవపత్రాన్ని దీనితో పరిశీలించండి: openssl x509 -noout -dates -serial మరియు CA ఇప్పుడే రాసిన పంక్తితో పోల్చండి. స్థితి అక్షరం మరియు గడువు తేదీ ధృవపత్రంతో సరిపోలుతాయని, మరియు openssl verify -CAfile ca.pem issued.pem లోపం లేకుండా తిరిగి వస్తుందని నిర్ధారించండి. ఆపై షెడ్యూల్ చేసిన జారీని పునరుద్ధరించి మొదటి పరుగును గమనించండి, ఎందుకంటే రెండవ వికృత పంక్తి వెంటనే తనను తాను ప్రకటించుకుంటుంది.