Windows प्रमाणपत्र स्टोर व्यावहारिक मार्गदर्शिका — उपयोगकर्ता या कंप्यूटर, कहाँ रखें
· Go Komura · प्रमाणपत्र, Windows, सुरक्षा, PKI, TLS, PowerShell, व्यावसायिक ऐप, सूचना प्रणाली
«ऑनलाइन पात्रता पुष्टि टर्मिनल अद्यतन पर क्लाइंट प्रमाणपत्र नए PC में फिर रखा तो कनेक्शन टूट गया।» «विकास मशीन पर बैंक API जुड़ता है, Windows सेवा बनाते «प्रमाणपत्र नहीं मिला»।» «certmgr.msc में दिखता प्रमाणपत्र और certlm.msc में दिखता — कौन सा असली?» — क्लाइंट प्रमाणपत्र वाले Web API एकीकरण कस्टम सॉफ़्टवेयर विकास में करते ये बातें नियमित आती हैं।
चिकित्सा संस्थानों की ऑनलाइन पात्रता पुष्टि, इलेक्ट्रॉनिक आवेदन, बैंक API, व्यापारिक भागीदार EDI। कभी बड़े उद्यम के अवसंरचना कर्मी ही छूते क्लाइंट प्रमाणपत्र अब छोटे-मध्यम व्यवसाय के सूचना-प्रणाली कर्मी और व्यावसायिक-ऐप डेवलपर सँभालते हैं। प्रमाणपत्र दुर्घटनाएँ वास्तव में कुछ पैटर्न में सिमटती हैं। रखने का स्थान गलत, निजी कुंजी अधिकार भूलना, समय-सीमा भूलना — ये तीन।
यह लेख क्लाइंट प्रमाणपत्र उपयोग करने वाले व्यावसायिक-ऐप डेवलपर्स और प्रमाणपत्र बदलने का काम सौंपे सूचना-प्रणाली कर्मियों के लिए है। «उपयोगकर्ता स्टोर या कंप्यूटर स्टोर» निर्णय धुरी पर Windows प्रमाणपत्र स्टोर संरचना से निजी कुंजी अधिकार, PowerShell समय-सीमा सूची, .NET से उपयोग कोड तक एक साथ व्यवस्थित करता है। सामग्री अगस्त 2026 तक Microsoft Learn प्राथमिक स्रोतों पर है।
1. निष्कर्ष पहले
- Windows प्रमाणपत्र स्टोर «उपयोगकर्ता (CurrentUser)» और «कंप्यूटर (LocalMachine)» दो परिवार हैं। उपयोगकर्ता स्टोर खाता-दर-खाता अलग (रजिस्ट्री HKEY_CURRENT_USER के नीचे), कंप्यूटर स्टोर पूरे PC पर साझा (HKEY_LOCAL_MACHINE के नीचे)।12
- प्रबंधन उपकरण भी दो। certmgr.msc वर्तमान उपयोगकर्ता, certlm.msc स्थानीय कंप्यूटर स्टोर खोलता है। PowerShell से
Cert:\CurrentUserऔरCert:\LocalMachine।34 - कहाँ रखें «वह प्रमाणपत्र उपयोग करने वाला प्रोग्राम किसके रूप में चलता है» से तय। संवादात्मक उपयोगकर्ता ऐप तो उपयोगकर्ता स्टोर; Windows सेवा, IIS, टास्क शेड्यूलर अनअटेंडेड तो कंप्यूटर स्टोर मूल (अध्याय 3 निर्णय तालिका)।
- «विकास में चला, सेवा बनाते नहीं मिला» का कारण लगभग एक। डेवलपर ने अपने उपयोगकर्ता स्टोर में रखा प्रमाणपत्र दूसरे खाते से चलती सेवा के CurrentUser से नहीं दिखता (अध्याय 3)।
- प्रमाणपत्र और निजी कुंजी अलग वस्तुएँ हैं। कंप्यूटर स्टोर में रखने भर से सेवा खाता निजी कुंजी नहीं पढ़ सकता। certlm.msc «निजी कुंजियाँ प्रबंधित करें» से निष्पादन खाते को पठन अधिकार दें।5
- pfx आयात पर निजी कुंजी डिफ़ॉल्ट निर्यात-अयोग्य हो जाती है।
Import-PfxCertificate-Exportableबिना निजी कुंजी पुनः निर्यात न कर सकने रूप में लेता है। यह दुर्घटना नहीं, वांछित डिफ़ॉल्ट है।6 - समय-सीमा सूची स्वचालन से रोकें।
Get-ChildItem Cert:\LocalMachine\My -ExpiringInDays 60जैसे निर्दिष्ट दिनों में समाप्त प्रमाणपत्र यंत्रवत निकाल सकते हैं।4 - थंबप्रिंट कोड या विन्यास में हार्डकोड करें तो प्रमाणपत्र अद्यतन हर बार मरता है। नया प्रमाणपत्र थंबप्रिंट अवश्य बदलता है। विन्यास बाहर + पुराना-नया समानांतर अवधि डिज़ाइन का मूल है (अध्याय 5, 7)।
इस लेख का ज्ञान मानचित्र
Windows प्रमाणपत्र स्टोर उपयोगकर्ता (CurrentUser) और कंप्यूटर (LocalMachine) दो परिवार में बँटता है; क्लाइंट प्रमाणपत्र कहाँ रखें «वह प्रोग्राम किसके रूप में चलता है» से तय होता है। अनअटेंडेड Windows सेवा कंप्यूटर स्टोर और निजी कुंजी पहुँच अधिकार एक सेट हैं, और प्रमाणपत्र समय-सीमा तथा हार्डकोड थंबप्रिंट प्रमाणपत्र से कनेक्शन विफलता के तयशुदा कारण हैं।
flowchart LR
accTitle: Windows प्रमाणपत्र स्टोर व्यावहारिक मार्गदर्शिका का ज्ञान मानचित्र
accDescr: प्रमाणपत्र स्टोर (उपयोगकर्ता/कंप्यूटर), क्लाइंट प्रमाणपत्र, निजी कुंजी, प्रमाणपत्र श्रृंखला, रूट CA और मध्यवर्ती CA, समय-सीमा और थंबप्रिंट से कनेक्शन विफलता, बदलने की प्रक्रिया, पंजी, स्व-हस्ताक्षर प्रमाणपत्र जोखिम के संबंध दर्शाने वाला चित्र
certificate_store["प्रमाणपत्र स्टोर"]
client_certificate["क्लाइंट प्रमाणपत्र"]
windows_service["Windows सेवा"]
localmachine_store["कंप्यूटर प्रमाणपत्र स्टोर"]
private_key["निजी कुंजी"]
private_key_acl["निजी कुंजी पहुँच अधिकार"]
certificate_chain["प्रमाणपत्र श्रृंखला"]
intermediate_ca["मध्यवर्ती CA प्रमाणपत्र"]
root_ca["रूट CA प्रमाणपत्र"]
certificate_expiry["प्रमाणपत्र समय-सीमा"]
certificate_failure["प्रमाणपत्र से कनेक्शन विफलता"]
thumbprint_hardcode["थंबप्रिंट हार्डकोड"]
group_policy["Group Policy"]
intune["Microsoft Intune"]
currentuser_store["उपयोगकर्ता प्रमाणपत्र स्टोर"]
certmgr_msc["certmgr.msc"]
certlm_msc["certlm.msc"]
cert_drive["Cert: ड्राइव"]
pfx["PFX फ़ाइल"]
certutil["certutil"]
code_signing_cert["कोड हस्ताक्षर प्रमाणपत्र"]
trusted_publisher_store["विश्वसनीय प्रकाशक स्टोर"]
desktop_app["संवादात्मक उपयोगकर्ता डेस्कटॉप ऐप"]
cert_renewal["प्रमाणपत्र बदलना"]
cert_ledger["प्रमाणपत्र पंजी"]
self_signed_cert["तदर्थ स्व-हस्ताक्षर प्रमाणपत्र"]
trust_anchor_risk["विश्वास आरंभ दुरुपयोग जोखिम"]
cert_selection["प्रमाणपत्र चयन (खोज)"]
personal_store["«व्यक्तिगत» स्टोर (My)"]
store_mismatch["स्टोर गलत"]
iis_apppool["IIS एप्लिकेशन पूल"]
task_scheduler["टास्क शेड्यूलर की अनअटेंडेड निष्पादन"]
exportable_import["निर्यात योग्य आयात"]
key_exfiltration_risk["निजी कुंजी निकालने का जोखिम"]
everyone_full_control["Everyone को पूर्ण नियंत्रण"]
partner_registration["दूसरे पक्ष को प्रमाणपत्र पूर्व-पंजीकरण"]
cert_switchover["नए प्रमाणपत्र पर जाना"]
x509store["X509Store वर्ग"]
validonly_search["validOnly निर्दिष्ट प्रमाणपत्र खोज"]
key_usage["कुंजी उपयोग (Key Usage) गुण"]
config_externalization["थंबप्रिंट विन्यास बाहर"]
cert_choice_logging["चुने प्रमाणपत्र का लॉग"]
windows_service -.->|"उपयोग करता है"| localmachine_store
client_certificate -->|"अपेक्षित"| private_key
windows_service -.->|"अपेक्षित"| private_key_acl
certificate_chain -.->|"अपेक्षित"| intermediate_ca
certificate_chain -->|"अपेक्षित"| root_ca
certificate_expiry -.->|"कारण बन सकता"| certificate_failure
thumbprint_hardcode -.->|"कारण बन सकता"| certificate_failure
certificate_failure -.->|"से जाँच योग्य"| certificate_chain
root_ca -.->|"से कॉन्फ़िगर"| group_policy
root_ca -.->|"से कॉन्फ़िगर"| intune
currentuser_store -->|"से जाँच योग्य"| certmgr_msc
localmachine_store -->|"से जाँच योग्य"| certlm_msc
certificate_store -->|"से जाँच योग्य"| cert_drive
certificate_expiry -->|"से जाँच योग्य"| cert_drive
private_key -.->|"में संग्रहीत"| pfx
certificate_chain -->|"से जाँच योग्य"| certutil
code_signing_cert -.->|"में संग्रहीत"| trusted_publisher_store
desktop_app -.->|"उपयोग करता है"| currentuser_store
root_ca -.->|"में संग्रहीत"| localmachine_store
private_key_acl -.->|"से कॉन्फ़िगर"| certlm_msc
cert_renewal -.->|"रोकता है"| certificate_failure
cert_ledger -.->|"रोकता है"| certificate_expiry
self_signed_cert -.->|"कारण बन सकता"| trust_anchor_risk
thumbprint_hardcode -->|"अनुशंसित नहीं"| cert_selection
self_signed_cert -->|"अनुशंसित नहीं"| root_ca
cert_ledger -->|"अनुशंसित उपाय"| certificate_expiry
currentuser_store -->|"विरासत लेता"| localmachine_store
client_certificate -->|"में संग्रहीत"| personal_store
store_mismatch -->|"कारण बन सकता"| certificate_failure
iis_apppool -.->|"उपयोग करता है"| localmachine_store
iis_apppool -->|"अपेक्षित"| private_key_acl
task_scheduler -.->|"उपयोग करता है"| localmachine_store
exportable_import -->|"कारण बन सकता"| key_exfiltration_risk
everyone_full_control -->|"अनुशंसित नहीं"| private_key_acl
cert_renewal -.->|"अपेक्षित"| private_key_acl
partner_registration -.->|"पहले करना चाहिए"| cert_switchover
x509store -->|"उपयोग करता है"| certificate_store
validonly_search -.->|"कम करता है"| certificate_failure
client_certificate -.->|"अपेक्षित"| key_usage
config_externalization -->|"अनुशंसित उपाय"| cert_selection
cert_choice_logging -->|"अनुशंसित उपाय"| certificate_failure
चित्र में ठोस रेखा हमेशा सत्य रहने वाला संबंध दर्शाती है और धराशायी रेखा सशर्त संबंध दर्शाती है (शर्तें विस्तृत पृष्ठ पर प्रत्येक संबंध के स्पष्टीकरण में दी गई हैं)। संबंधों की पूरी सूची (कुल 41, साक्ष्य और निश्चितता सहित) तथा मुख्य अवधारणाओं की परिभाषाएँ ज्ञान मानचित्र के विस्तृत पृष्ठ पर संकलित हैं (जापानी में)। डेटा: JSON-LD / Turtle
2. प्रमाणपत्र स्टोर का पूरा चित्र — दो स्थान और तार्किक स्टोर
2.1. उपयोगकर्ता और कंप्यूटर दो परिवार
Windows प्रमाणपत्र स्टोर बड़े रूप में दो «स्थान» में बँटता है।1
- कंप्यूटर (स्थानीय कंप्यूटर, LocalMachine) प्रमाणपत्र स्टोर: उस PC पर एक, PC पर सब उपयोगकर्ता और सेवाओं के लिए साझा। वस्तु रजिस्ट्री
HKEY_LOCAL_MACHINE\Software\Microsoft\SystemCertificatesके नीचे।2 - उपयोगकर्ता (वर्तमान उपयोगकर्ता, CurrentUser) प्रमाणपत्र स्टोर: उपयोगकर्ता खाता-दर-खाता अलग। वस्तु
HKEY_CURRENT_USER\Software\Microsoft\SystemCertificatesके नीचे, अर्थात उपयोगकर्ता प्रोफ़ाइल का भाग।2
इसके अतिरिक्त सेवा खाता इकाई स्टोर भी हैं3, वस्तु सेवा नाम की रजिस्ट्री कुंजी।2 व्यवहार में पहले ये दो पकड़ें।
एक महत्त्वपूर्ण विनिर्देश। उपयोगकर्ता स्टोर के प्रत्येक तार्किक स्टोर, «व्यक्तिगत» छोड़, कंप्यूटर स्टोर के समान नाम स्टोर की सामग्री विरासत में दिखाते हैं।1 उदाहरण: कंप्यूटर स्टोर «विश्वसनीय रूट प्रमाणन प्राधिकारी» में आंतरिक CA प्रमाणपत्र रखें तो सब उपयोगकर्ताओं के «विश्वसनीय रूट प्रमाणन प्राधिकारी» में भी दिखता है। उलटा, «व्यक्तिगत» स्टोर ही विरासत नहीं लेता, इसलिए क्लाइंट प्रमाणपत्र (= व्यक्तिगत स्टोर में रखने वाली वस्तु) «किससे दिखना चाहिए» स्वयं तय करना पड़ता है। यही विषमता इस लेख की नायिका है।
flowchart TB
accTitle: कंप्यूटर स्टोर और उपयोगकर्ता स्टोर
accDescr: कंप्यूटर स्टोर PC पर एक है और सब उपयोगकर्ता तथा सेवाओं के लिए साझा, उपयोगकर्ता स्टोर खाता-दर-खाता अलग है और व्यक्तिगत छोड़ कंप्यूटर पक्ष की सामग्री विरासत में दिखाता है
subgraph LM["कंप्यूटर (LocalMachine)<br/>PC पर एक・सब उपयोगकर्ता और सेवाओं के लिए साझा"]
LMMY["व्यक्तिगत (My)"]
LMROOT["विश्वसनीय रूट प्रमाणन प्राधिकारी (Root)"]
LMCA["मध्यवर्ती प्रमाणन प्राधिकारी (CA)"]
LMTP["विश्वसनीय प्रकाशक (TrustedPublisher)"]
end
subgraph CU["उपयोगकर्ता (CurrentUser)<br/>खाता-दर-खाता अलग"]
CUMY["व्यक्तिगत (My)<br/>※विरासत नहीं=रखने का स्थान स्वयं तय करें"]
CUROOT["विश्वसनीय रूट प्रमाणन प्राधिकारी (Root)"]
CUCA["मध्यवर्ती प्रमाणन प्राधिकारी (CA)"]
CUTP["विश्वसनीय प्रकाशक (TrustedPublisher)"]
end
LMROOT -.->|"सामग्री विरासत में दिखती है"| CUROOT
LMCA -.->|"विरासत"| CUCA
LMTP -.->|"विरासत"| CUTP
चित्र 1: उपयोगकर्ता स्टोर व्यक्तिगत छोड़ कंप्यूटर स्टोर की सामग्री विरासत में दिखाता है; क्लाइंट प्रमाणपत्र रखने का स्थान स्वयं तय करना पड़ता है।
2.2. मुख्य तार्किक स्टोर
प्रत्येक स्थान के अंदर भूमिका अनुसार तार्किक स्टोर हैं। certmgr.msc / certlm.msc में दिखते फ़ोल्डर वही; PowerShell या आदेश से अंग्रेज़ी आंतरिक नाम।24
| प्रदर्शन नाम | आंतरिक नाम | क्या रखने का स्थान |
|---|---|---|
| व्यक्तिगत | My | स्वयं (यह PC, यह उपयोगकर्ता) उपयोग प्रमाणपत्र। क्लाइंट और सर्वर प्रमाणपत्र यहीं। निजी कुंजी से जुड़ना भी यहीं |
| विश्वसनीय रूट प्रमाणन प्राधिकारी | Root | विश्वास का आरंभ रूट CA प्रमाणपत्र। यहाँ रखे CA के नीचे «विश्वसनीय» |
| मध्यवर्ती प्रमाणन प्राधिकारी | CA | रूट और अंत के बीच मध्यवर्ती CA प्रमाणपत्र। श्रृंखला निर्माण की सामग्री |
| विश्वसनीय प्रकाशक | TrustedPublisher | हस्ताक्षरित सॉफ़्टवेयर के प्रकाशक के रूप में विश्वसनीय प्रमाणपत्र (अध्याय 8) |
2.3. तीन खिड़कियाँ — certmgr.msc / certlm.msc / Cert: ड्राइव
एक ही स्टोर देखने के तीन साधन।34
- certmgr.msc: वर्तमान उपयोगकर्ता स्टोर खोलने वाला प्रबंधन कंसोल।
- certlm.msc: स्थानीय कंप्यूटर स्टोर खोलने वाला प्रबंधन कंसोल।
- PowerShell
Cert:ड्राइव:Cert:\CurrentUser\...औरCert:\LocalMachine\...पदानुक्रम से स्टोर फ़ाइल सिस्टम जैसा चला सकते हैं। प्रमाणपत्र थंबप्रिंट से पहचाने जाते हैं।
mmc.exe में प्रमाणपत्र स्नैप-इन हाथ से जोड़ें तो «उपयोगकर्ता खाता», «कंप्यूटर खाता», «सेवा खाता» तीन में से लक्ष्य चुनें। जो व्यवस्थापक नहीं वह केवल अपना उपयोगकर्ता खाता स्टोर प्रबंधित कर सकता है।3
समस्या जाँच का पहला कदम «ऐप कौन सा स्टोर देख रहा है» और «आप कौन सा स्टोर देख रहे हैं» मिलाना है। certmgr.msc देखते सेवा विफलता जाँचें तो देखने का स्थान अलग होने से उत्तर कभी नहीं आता।
3. कहाँ रखें — प्रोग्राम निष्पादन रूप से निर्णय तालिका
निर्णय एक है। वह प्रमाणपत्र उपयोग करने वाला प्रोग्राम किस खाते से चलता है।
| निष्पादन रूप | निष्पादन खाता | रखने वाला स्टोर | टिप्पणी |
|---|---|---|---|
| संवादात्मक उपयोगकर्ता चलाए डेस्कटॉप ऐप | साइन-इन उपयोगकर्ता स्वयं | उपयोगकर्ता (Cert:\CurrentUser\My) | उपयोग करने वाले खाते-दर-खाते लागू चाहिए। साझा PC पर कई लोग उपयोग करें तो कंप्यूटर स्टोर भी सोचें |
| Windows सेवा | LocalSystem / NETWORK SERVICE / समर्पित सेवा खाता | कंप्यूटर (Cert:\LocalMachine\My) | LocalSystem छोड़ (NETWORK SERVICE, समर्पित खाता आदि) निजी कुंजी पठन अधिकार अनिवार्य (अध्याय 4)। LocalSystem डिफ़ॉल्ट SYSTEM अधिकार से पढ़ता है |
| IIS पर वेब ऐप | एप्लिकेशन पूल ID | कंप्यूटर | वही |
| टास्क शेड्यूलर अनअटेंडेड (उपयोगकर्ता साइन-इन निरपेक्ष चलाएँ) | कार्य पर निर्दिष्ट खाता | कंप्यूटर अनुशंसित | निष्पादन खाते के उपयोगकर्ता स्टोर से भी चल सकता है, पर प्रोफ़ाइल और स्टोर दिखाई सत्यापन बढ़ता है, लाभ कम |
| ब्राउज़र इलेक्ट्रॉनिक आवेदन / वेब प्रमाणीकरण | साइन-इन उपयोगकर्ता स्वयं | उपयोगकर्ता | वितरित व्यक्ति के अलावा न चलाने के अर्थ में भी स्वाभाविक |
असमंजस हो तो अनअटेंडेड चलने वाले कंप्यूटर स्टोर, व्यक्ति चलाए उपयोगकर्ता स्टोर।
3.1. तयशुदा दुर्घटना का विच्छेदन — «विकास में चला, सेवा बनाते नहीं मिला»
यह दुर्घटना निम्न क्रम से ठीक पुनरुत्पादित होती है।
- डेवलपर अपने PC पर pfx डबल-क्लिक कर आयात करता है। विज़ार्ड डिफ़ॉल्ट «वर्तमान उपयोगकर्ता» है, इसलिए प्रमाणपत्र डेवलपर खाते के उपयोगकर्ता स्टोर में जाता है।
- विकास ऐप Visual Studio से, अर्थात डेवलपर खाते से चलता है,
StoreLocation.CurrentUserखोलें तो प्रमाणपत्र मिलता है। चलता है। - उत्पादन सर्वर पर Windows सेवा पंजीकृत करते हैं। सेवा NETWORK SERVICE या समर्पित खाते से चलती है।
- सेवा कोड खोलता
CurrentUserसेवा निष्पादन खाते का उपयोगकर्ता स्टोर है। वह खाली। «प्रमाणपत्र नहीं मिला»।
flowchart TB
accTitle: विकास में चला, सेवा बनाते नहीं मिला
accDescr: डेवलपर के उपयोगकर्ता स्टोर में रखा प्रमाणपत्र दूसरे खाते से चलती सेवा के CurrentUser से नहीं दिखता
subgraph DEV["विकास मशीन"]
D1["pfx डबल-क्लिक से आयात<br/>विज़ार्ड डिफ़ॉल्ट «वर्तमान उपयोगकर्ता»"] --> D2["डेवलपर खाते के<br/>उपयोगकर्ता स्टोर में जाता है"]
D2 --> D3["Visual Studio से चलाएँ<br/>=डेवलपर खाते से चलता है"]
D3 --> D4["CurrentUser खोलें तो मिलता है<br/>→ चलता है"]
end
subgraph PROD["उत्पादन सर्वर"]
P1["Windows सेवा के रूप में पंजीकृत<br/>निष्पादन खाता NETWORK SERVICE आदि"] --> P2["कोड खोलता CurrentUser<br/>सेवा खाते का उपयोगकर्ता स्टोर है"]
P2 --> P3["वह खाली<br/>→«प्रमाणपत्र नहीं मिला»"]
end
D4 -.->|"वही प्रोग्राम रखते हैं"| P1
चित्र 2: डेवलपर का उपयोगकर्ता स्टोर और सेवा खाते का उपयोगकर्ता स्टोर अलग हैं; विकास में चलना उत्पादन में मिलने की गारंटी नहीं।
मुख्य बात: उपयोगकर्ता स्टोर «खातों की संख्या जितने» हैं। व्यवस्थापक certmgr.msc खोल «पड़ा है न?» पुष्टि करे तो वह व्यवस्थापक स्वयं का स्टोर है, सेवा खाते का नहीं। उपाय तदर्थ कॉपी नहीं, कंप्यूटर स्टोर में फिर रखकर कोड भी StoreLocation.LocalMachine से मिलाना है। और अगले अध्याय का अधिकार देना एक सेट है।
4. निजी कुंजी और पहुँच अधिकार — दूसरी तयशुदा दुर्घटना
4.1. प्रमाणपत्र और निजी कुंजी अलग वस्तुएँ हैं
प्रमाणपत्र स्टोर सूची में दिखता प्रमाणपत्र (सार्वजनिक जानकारी) है, निजी कुंजी स्वयं नहीं। क्लाइंट प्रमाणीकरण में वास्तव में चाहिए निजी कुंजी से हस्ताक्षर, इसलिए «सूची में दिखना» और «उपयोग हो सकना» अलग समस्याएँ हैं। यहाँ मिलाएँ तो «प्रमाणपत्र है पर TLS हैंडशेक विफल», «Access Denied परिवार आंतरिक त्रुटि» जैसी दिखने में कठिन विफलताएँ आती हैं।
4.2. pfx आयात व्यवहार — निर्यात योग्य या नहीं निर्णय है
प्रमाणपत्र और निजी कुंजी युग्म pfx (PKCS #12) फ़ाइल से आता-जाता है, Import-PfxCertificate से स्टोर में लेते हैं।6
$pwd = Get-Credential -UserName '(पासवर्ड नीचे लिखें)' -Message 'PFX पासवर्ड'
Import-PfxCertificate -FilePath C:\certs\client.pfx `
-CertStoreLocation Cert:\LocalMachine\My -Password $pwd.Password
यहाँ महत्त्वपूर्ण: -Exportable बिना ली गई निजी कुंजी पुनः निर्यात नहीं हो सकती — यही डिफ़ॉल्ट है।6 «बाद में माइग्रेट कर सकें» कहकर सब निर्यात योग्य रखना निजी कुंजी निकालने का एक और पथ जोड़ना है। मूल pfx सुरक्षित रखें, स्टोर पर निजी कुंजी निर्यात-अयोग्य मूल — यही हमारी अनुशंसा है। मूल pfx और उसका पासवर्ड सादे पाठ में पड़े रहना आम है। सोच «Windows ऐप में रहस्य रखना — DPAPI से सादा सेटिंग न रखें» और «PowerShell में साख का सुरक्षित व्यवहार» में व्यवस्थित है।
4.3. सेवा खाते को निजी कुंजी अधिकार देना
कंप्यूटर स्टोर में रखे प्रमाणपत्र की निजी कुंजी डिफ़ॉल्ट प्रायः व्यवस्थापक और SYSTEM छोड़ नहीं पढ़ी जाती। इसलिए LocalSystem सेवा डिफ़ॉल्ट पर निजी कुंजी पढ़ती है; NETWORK SERVICE, समर्पित सेवा खाता, IIS ऐप पूल ID जैसे उनके अलावा खाते से चलाने पर निष्पादन खाते को स्पष्ट पठन अधिकार दें। प्रक्रिया प्रमाणपत्र स्नैप-इन UI से।5
- certlm.msc (या कंप्यूटर खाता लक्ष्य प्रमाणपत्र स्नैप-इन) खोलें।
- «व्यक्तिगत» → «प्रमाणपत्र» पर लक्ष्य प्रमाणपत्र दायाँ क्लिक, «सभी कार्य» से «निजी कुंजियाँ प्रबंधित करें» खोलें।
- «सुरक्षा» टैब पर निष्पादन खाता (NETWORK SERVICE, समर्पित सेवा खाता, IIS ऐप पूल ID आदि) जोड़कर «पठन» अनुमति दें।5
पूर्ण नियंत्रण नहीं चाहिए। हस्ताक्षर भर हो तो पठन काफी। उलटा, न चले तो Everyone को पूर्ण नियंत्रण देना निजी कुंजी को सादे पासवर्ड जितना गिराना है, कभी न करें। कंप्यूटर स्टोर में रखना और निजी कुंजी अधिकार देना हमेशा एक सेट — प्रक्रिया में लिख देने भर से यह परिवार दुर्घटनाएँ मिटती हैं।
5. समय-सीमा दुर्घटना रोकें — सूची, बदलना, पंजी
5.1. PowerShell से सूची
प्रमाणपत्र समय-सीमा NotAfter गुण में है। Cert: ड्राइव पर Get-ChildItem से यंत्रवत सूची।4
# कंप्यूटर स्टोर «व्यक्तिगत» समय-सीमा क्रम में
Get-ChildItem Cert:\LocalMachine\My |
Sort-Object NotAfter |
Format-Table Thumbprint, Subject, NotAfter
# 60 दिनों में समाप्त होने वाले ही (0 दें तो समाप्त हो चुके)
Get-ChildItem -Path Cert:\LocalMachine\My -ExpiringInDays 60
-ExpiringInDays «निर्दिष्ट दिनों में समाप्त प्रमाणपत्र» लौटाता है; 0 तो समाप्त हो चुके।4 इसे मासिक अनुसूचित कार्य बना सब सर्वर घुमाकर परिणाम ईमेल या पंजी में इकट्ठा करें — «समय-सीमा से सोमवार सुबह पात्रता पुष्टि नहीं» दुर्घटना लगभग रुकती है।
5.2. बदलने की प्रक्रिया — पुराना-नया समानांतर और थंबप्रिंट का जाल
प्रमाणपत्र अद्यतन «मिटाकर रखना» नहीं, «जोड़कर बदलें, पुष्टि कर मिटाएँ» है।
- नया प्रमाणपत्र (pfx) उसी स्टोर में आयात करें। थंबप्रिंट अलग होने से पुराना-नया एक स्टोर में साथ रह सकते हैं।
- नए प्रमाणपत्र की निजी कुंजी अधिकार दें (अध्याय 4)। अद्यतन पर सबसे आसानी से यही छूटता है। अधिकार प्रमाणपत्र की निजी कुंजी-दर-कुंजी लगता है; प्रमाणपत्र बदला तो अधिकार भी दोहराना है।
- दूसरे पक्ष प्रणाली को सूचना (प्रमाणपत्र पूर्व-पंजीकरण चाहने API) पुराने प्रमाणपत्र से संचालन जारी रखते पहले पूरी करें, पुराना-नया दोनों स्वीकार समानांतर अवधि सुनिश्चित करें। पहले बदलें तो दूसरा पक्ष नया प्रमाणपत्र अस्वीकार कर उत्पादन संचार रुकता है।
- ऐप विन्यास नए प्रमाणपत्र पर बदलकर व्यवहार पुष्टि करें।
- पर्याप्त अवधि बाद पुराना प्रमाणपत्र मिटाएँ।
flowchart LR
accTitle: प्रमाणपत्र अद्यतन जोड़कर बदलें
accDescr: नया pfx उसी स्टोर में डाल अधिकार दें, दूसरे पक्ष को पूर्व-पंजीकरण कर थंबप्रिंट बदलें, समानांतर अवधि बाद पुराना प्रमाणपत्र मिटाएँ
I["1. नया pfx उसी स्टोर में<br/>आयात (पुराना-नया साथ)"] --> P["2. नए प्रमाणपत्र की<br/>निजी कुंजी अधिकार दें"]
P --> R["3. दूसरे पक्ष को पूर्व-पंजीकरण<br/>(पुराने प्रमाणपत्र से संचालन जारी)"]
R --> SW["4. विन्यास थंबप्रिंट लिखकर<br/>बदलें・व्यवहार पुष्टि"]
SW --> DEL["5. समानांतर अवधि बाद<br/>पुराना प्रमाणपत्र मिटाएँ"]
चित्र 3: प्रमाणपत्र बदलना जोड़ → अधिकार → पूर्व-पंजीकरण → विन्यास बदल → पुराना मिटाना क्रम है; थंबप्रिंट अद्यतन न भूलें।
यहाँ सबसे बड़ा जाल विन्यास फ़ाइल या कोड में लिखा थंबप्रिंट है। थंबप्रिंट प्रमाणपत्र-दर-प्रमाणपत्र अद्वितीय, अद्यतन अवश्य बदलता है। कहीं एक स्थान पुराना थंबप्रिंट देखता रहे तो «प्रमाणपत्र अद्यतन किया, कनेक्शन नहीं» आता है। थंबप्रिंट कहाँ लिखा है (ऐप विन्यास, IIS बाइंडिंग, स्क्रिप्ट, दूसरे पक्ष सूचना) पंजी से प्रबंधित करना पक्का है।
5.3. प्रमाणपत्र पंजी की अनुशंसा
पंजी कहते Excel एक पत्र काफी। न्यूनतम उपयोग / जारीकर्ता / विषय / थंबप्रिंट / स्थान (सर्वर नाम + स्टोर) / निजी कुंजी अधिकार खाता / समय-सीमा / अद्यतन प्रक्रिया लिंक / जिम्मेदार स्तंभ बना 5.1 सूची परिणाम से मिलाएँ। प्रमाणपत्र दुर्घटना का सार तकनीक नहीं «किसी के पास सूची नहीं» समस्या है, इसलिए पंजी सबसे काम करती है।
6. सत्यापन और विफलता पढ़ना — श्रृंखला और रूट वितरण
6.1. श्रृंखला सत्यापन मूल और certutil
«यह प्रमाणपत्र विश्वसनीय नहीं» परिवार त्रुटि अंत प्रमाणपत्र से रूट CA तक श्रृंखला (प्रमाणन पथ) कहीं कटी अवस्था है। पृथक्करण को certutil सुविधाजनक है।7
flowchart TB
accTitle: श्रृंखला सत्यापन कटने के तीन तयशुदा कारण
accDescr: मध्यवर्ती CA प्राप्त न हो, रूट वितरित न हो, या अंत प्रमाणपत्र समय-सीमा समाप्त हो, इनमें से किसी से विश्वास त्रुटि आती है
LEAF["अंत प्रमाणपत्र<br/>(क्लाइंट प्रमाणपत्र・सर्वर प्रमाणपत्र)"] --> INT["मध्यवर्ती CA प्रमाणपत्र<br/>स्थान: मध्यवर्ती प्रमाणन प्राधिकारी (CA) स्टोर"]
INT --> ROOT["रूट CA प्रमाणपत्र<br/>स्थान: विश्वसनीय रूट प्रमाणन प्राधिकारी (Root)"]
INT -.->|"प्राप्त नहीं<br/>(प्रस्तुति・AIA・स्टोर कोई नहीं)"| E1["श्रृंखला नहीं बनती<br/>(तयशुदा कारण 1)"]
ROOT -.->|"वितरित नहीं"| E2["«विश्वसनीय नहीं» त्रुटि<br/>(तयशुदा कारण 2)"]
LEAF -.->|"समय-सीमा समाप्त"| E3["वैध अवधि त्रुटि<br/>(तयशुदा कारण 3)"]
चित्र 4: श्रृंखला मध्यवर्ती CA या रूट न मिलने, या समय-सीमा से कटती है; certutil से परत तय करें।
:: प्रमाणपत्र फ़ाइल की श्रृंखला बनाकर सत्यापित (निरसन URL प्राप्ति सहित)
certutil -urlfetch -verify client.cer
:: लक्ष्य ऐप उपयोगकर्ता स्टोर उपयोग करे तो -user लगा उसी संदर्भ में
certutil -user -urlfetch -verify client.cer
:: स्टोर सामग्री डंप (-user लगाएँ तो उपयोगकर्ता स्टोर)
certutil -store My
certutil -user -store My
certutil -verify प्रमाणपत्र, CRL, श्रृंखला सत्यापित करता है; CACertFile न दें तो पूरी श्रृंखला बनाकर सत्यापित करता है।7 आउटपुट लंबा है, पर किस परत पर विश्वास कटा, निरसन जानकारी मिली या नहीं पढ़ा जा सकता है। क्लासिक कारण: (1) मध्यवर्ती CA प्रमाणपत्र प्राप्त नहीं (TLS पक्ष ने नहीं भेजा, प्रमाणपत्र AIA से भी नहीं मिला, «मध्यवर्ती प्रमाणन प्राधिकारी» स्टोर में भी नहीं), (2) आंतरिक CA रूट «विश्वसनीय रूट प्रमाणन प्राधिकारी» पर वितरित नहीं, (3) प्रमाणपत्र स्वयं समय-सीमा। मध्यवर्ती CA पक्ष प्रस्तुति या AIA स्वतः प्राप्ति से भी हल हो सकता है, स्टोर रखना «पक्का करने का एक साधन» समझें।
6.2. आंतरिक CA / स्व-हस्ताक्षर रूट वितरण GPO/Intune से
आंतरिक CA या सत्यापन स्व-हस्ताक्षर प्रमाणपत्र उपयोग हो तो वह रूट प्रमाणपत्र प्रत्येक PC पर बाँटना होगा। एक-एक हाथ से नहीं, वितरण तंत्र पर रखें।
- Active Directory वातावरण (GPO): Group Policy
Computer Configuration\Policies\Windows Settings\Security Settings\Public Key Policiesके «विश्वसनीय रूट प्रमाणन प्राधिकारी» में प्रमाणपत्र आयात करें तो लक्ष्य PC पर बँटता है।8 - Intune प्रबंधन वातावरण: «विश्वसनीय प्रमाणपत्र» प्रोफ़ाइल से रूट/मध्यवर्ती CA प्रमाणपत्र बाँटें। Windows पर वितरण स्टोर (कंप्यूटर रूट/मध्यवर्ती, उपयोगकर्ता मध्यवर्ती) चुन सकते हैं।9
2.1 अनुसार कंप्यूटर स्टोर रूट में रखें तो सब उपयोगकर्ता विश्वास करते हैं।1 इसलिए उलटा जोखिम भी देखें। स्व-हस्ताक्षर प्रमाणपत्र «विश्वसनीय रूट प्रमाणन प्राधिकारी» में रखना उस PC पर नया विश्वास आरंभ रोपना है। उसकी निजी कुंजी लीक हो तो किसी भी साइट या सॉफ़्टवेयर का रूप धारण प्रमाणपत्र जारी करने की नींव मिलती है। स्थायी संचालन हो तो निजी कुंजी ठीक सुरक्षित आंतरिक CA बनाएँ या सार्वजनिक CA प्रमाणपत्र की ओर लाएँ; स्व-हस्ताक्षर रूट «केवल सत्यापन वातावरण, समय-सीमा बाँधकर» मूल है।
7. डेवलपर दृष्टि — .NET से स्टोर सही उपयोग
7.1. X509Store से थंबप्रिंट खोज
.NET से X509Store स्टोर खोल Find से प्रमाणपत्र लेते हैं।1011
using System.Security.Cryptography.X509Certificates;
static X509Certificate2 GetClientCertificate(string thumbprint)
{
using var store = new X509Store(StoreName.My, StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);
var found = store.Certificates.Find(
X509FindType.FindByThumbprint, thumbprint, validOnly: true);
if (found.Count == 0)
throw new InvalidOperationException(
$"प्रमाणपत्र नहीं मिला: थंबप्रिंट={thumbprint}, " +
$"स्थान={store.Location}\\{store.Name}");
var cert = found[0];
if (!cert.HasPrivateKey)
throw new InvalidOperationException(
$"प्रमाणपत्र है पर निजी कुंजी जुड़ी नहीं (.cer से" +
$"आयात आदि): थंबप्रिंट={thumbprint}, स्थान={store.Location}\\{store.Name}");
return cert;
}
अध्याय 3 का निर्णय यहाँ सीधे लगता है। सेवा कोड हो तो StoreLocation.LocalMachine, संवादात्मक ऐप StoreLocation.CurrentUser। एक और, Find का तीसरा तर्क validOnly ध्यान। true सत्यापन पार वैध प्रमाणपत्र ही लौटाता है।11 समय-सीमा समाप्त न पकड़ने का बीमा, दूसरी ओर श्रृंखला अविश्वसनीय परीक्षण स्व-हस्ताक्षर भी «नहीं मिला» ओर गिरता है; «पड़ा है पर नहीं मिला» हो तो यहाँ भी संदेह करें। नहीं मिले त्रुटि संदेश में उपरोक्त उदाहरण जैसा कौन सा स्टोर खोजा अवश्य रखें। अध्याय 3 दुर्घटना जाँच समय अंकों में बदलता है।
7.2. HttpClient पर क्लाइंट प्रमाणपत्र रखना
लिया प्रमाणपत्र HttpClientHandler.ClientCertificates में जोड़कर सर्वर को प्रस्तुत करते हैं। यही संग्रह प्रमाणपत्र-आधारित क्लाइंट प्रमाणीकरण में सर्वर को प्रस्तुत प्रमाणपत्रों का समुच्चय है।12
var handler = new HttpClientHandler();
handler.ClientCertificates.Add(GetClientCertificate(thumbprint));
var client = new HttpClient(handler);
// आगे सामान्य HttpClient के रूप में
.NET Core परिवार में प्रमाणपत्र पर कुंजी उपयोग (Key Usage) गुण हो तो «Digital Signature» शामिल न हो अनुरोध भेजने में उपयोग नहीं होता — दस्तावेज़ स्पष्ट है।12 क्लाइंट प्रमाणपत्र जारी करने को कहें तो उपयोग (क्लाइंट प्रमाणीकरण) सही बताएँ। HttpClient निर्माण पैटर्न गलत हो तो सॉकेट समाप्त और DNS पीछा समस्याएँ। हैंडलर सहित लंबा जीवन «HttpClient को using में न बाँधें» में जैसा।
7.3. हार्डकोड थंबप्रिंट बदलने पर मरने की समस्या
थंबप्रिंट खोज पक्की है, पर थंबप्रिंट कोड में गाड़ें तो प्रमाणपत्र अद्यतन हर बार बिल्ड और रिलीज़ चाहिए। डिज़ाइन में तीन चरण:
- न्यूनतम: थंबप्रिंट विन्यास फ़ाइल (appsettings आदि) में बाहर निकालें, रिलीज़ बिना बदल सकें। विन्यास स्थान 5.3 पंजी में लिखें।
- एक कदम आगे: विषय नाम या जारीकर्ता से खोज,
validOnly: trueमिलाकर «उस नाम का वर्तमान वैध मेंNotAfterसबसे आगे» चुनें। पुराना-नया समानांतर में नया प्रमाणपत्र स्वतः सवार होता है। पर समान नाम अनपेक्षित प्रमाणपत्र पकड़ने का जोखिम, जारीकर्ता पुष्टि और लॉग साथ रखें। यह स्वतः सवारी दूसरे पक्ष को प्रमाणपत्र पूर्व-पंजीकरण न चाहिए तब ही बनती है। पूर्व-पंजीकरण चाहने API (5.2) पर आयात भर असंबंधित प्रमाणपत्र पर स्वयं बदलकर संचार रुक सकता है; पंजीकरण पूरा देखकर बदलने वाला विन्यास-बाहर तरीका ही रखें। - संचालन से बाँधें: किसी भी तरीके, स्टार्ट पर «कौन सा प्रमाणपत्र (थंबप्रिंट, समय-सीमा) चुना» लॉग में रखें। विफलता जाँच और पंजी मिलान दोनों में यही एक पंक्ति काम करती है।
8. कोड हस्ताक्षर प्रमाणपत्र से संबंध — «विश्वसनीय प्रकाशक» स्टोर
यहाँ तक संचार (TLS) प्रमाणपत्र थे; प्रमाणपत्र स्टोर में एक और संसार — कोड हस्ताक्षर — साथ रहता है। 2.2 तालिका का «विश्वसनीय प्रकाशक (TrustedPublisher)» स्टोर वह जोड़ है; हस्ताक्षरित सॉफ़्टवेयर के प्रकाशक प्रमाणपत्र विश्वसनीय पंजीकृत करने का स्थान। उपयोगकर्ता और कंप्यूटर दोनों स्थानों पर है10; आंतरिक वितरित ऐप के प्रकाशक को GPO से प्रत्येक PC TrustedPublisher पर बाँटना जैसे संचालन में।
ऐप «बाँटने वाले» पक्ष से कोड हस्ताक्षर और SmartScreen चेतावनी («Windows ने PC की सुरक्षा की») का उपाय चाहिए हो तो अलग लेख «Windows पर «Windows ने PC की सुरक्षा की» क्यों आता है» में। इस लेख का ज्ञान (स्टोर दो परिवार, रूट वितरण) ज्यों का त्यों पूर्वापेक्षा ज्ञान है।
9. सारांश
- प्रमाणपत्र स्टोर उपयोगकर्ता (CurrentUser) और कंप्यूटर (LocalMachine) दो परिवार। certmgr.msc / certlm.msc /
Cert:ड्राइव एक ही वस्तु की तीन खिड़कियाँ। जाँच का पहला कदम «किस स्टोर की बात» मिलाना। - रखने का स्थान «प्रोग्राम किसके रूप में चलता है» से। अनअटेंडेड (सेवा, IIS, कार्य) कंप्यूटर स्टोर, संवादात्मक ऐप उपयोगकर्ता स्टोर मूल।
- «विकास में चला, उत्पादन पर नहीं मिला» डेवलपर उपयोगकर्ता स्टोर और सेवा खाता उपयोगकर्ता स्टोर अलग होने से। कंप्यूटर स्टोर +
StoreLocation.LocalMachineमिलाकर हल। - कंप्यूटर स्टोर रखना और «निजी कुंजियाँ प्रबंधित करें» से पठन अधिकार एक सेट। अद्यतन पर अधिकार दोहराना न भूलें।
- pfx आयात डिफ़ॉल्ट निर्यात-अयोग्य।
-Exportableसच में चाहिए तब ही। मूल pfx और पासवर्ड रखना भी डिज़ाइन में शामिल करें। - समय-सीमा
Get-ChildItem Cert: ... -ExpiringInDaysनियमित सूची और प्रमाणपत्र पंजी से रोकें। बदलना «जोड़ → बदल → पुष्टि → मिटा» क्रम, विन्यास थंबप्रिंट अद्यतन न छूटे। - श्रृंखला पृथक्करण
certutil -urlfetch -verify। आंतरिक CA रूट GPO/Intune से बाँटें; स्व-हस्ताक्षर रूट में रखना केवल सत्यापन वातावरण, समय-सीमा सहित। - कोड में थंबप्रिंट विन्यास में बाहर, चुना प्रमाणपत्र लॉग में रखें। इतने से प्रमाणपत्र विफलता जवाब बदल जाता है।
संबंधित लेख
- Windows पर «Windows ने PC की सुरक्षा की» क्यों आता है
- Windows ऐप में रहस्य रखना — DPAPI से सादा सेटिंग न रखें
- PowerShell में साख का सुरक्षित व्यवहार — सादा पासवर्ड स्क्रिप्ट से निकालें
- HttpClient को using में न बाँधें — C# व्यावसायिक ऐप HTTP संचार व्यवहार
- My Number स्वास्थ्य कार्ड झुकाने पर क्या होता है — ऑनलाइन पात्रता पुष्टि और लेसेकॉन जोड़ ORCA स्रोत से
संबंधित परामर्श क्षेत्र
KomuraSoft LLC क्लाइंट प्रमाणपत्र वाले Web API एकीकरण (बैंक API, ऑनलाइन पात्रता पुष्टि आदि) जुड़े व्यावसायिक ऐप विकास, «प्रमाणपत्र नहीं मिला» «अद्यतन बाद कनेक्शन नहीं» प्रकार विफलता जाँच, प्रमाणपत्र बदलने की प्रक्रिया व्यवस्थित करना सँभालता है। स्टोर कहाँ देखें पता नहीं — उतने चरण का परामर्श ठीक है।
संदर्भ लिंक
-
Microsoft Learn, Local Machine and Current User Certificate Stores. कंप्यूटर प्रमाणपत्र स्टोर PC के लिए स्थानीय और सब उपयोगकर्ता साझा, HKEY_LOCAL_MACHINE के नीचे; उपयोगकर्ता प्रमाणपत्र स्टोर खाता-दर-खाता, HKEY_CURRENT_USER के नीचे; उपयोगकर्ता स्टोर «व्यक्तिगत» छोड़ कंप्यूटर स्टोर सामग्री विरासत (कंप्यूटर «विश्वसनीय रूट प्रमाणन प्राधिकारी» जोड़ा प्रमाणपत्र प्रत्येक उपयोगकर्ता समान स्टोर में दिखता है)। ↩ ↩2 ↩3 ↩4
-
Microsoft Learn, System Store Locations. CERT_SYSTEM_STORE_CURRENT_USER / CERT_SYSTEM_STORE_LOCAL_MACHINE रजिस्ट्री स्थान (क्रमशः HKEY_CURRENT_USER / HKEY_LOCAL_MACHINE के Software\Microsoft\SystemCertificates); परिभाषित तार्किक स्टोर MY, Root, Trust, CA; सेवा स्टोर सेवा नाम रजिस्ट्री कुंजी (Software\Microsoft\Cryptography\Services\ServiceName\SystemCertificates); Group Policy वितरण स्टोर अलग। ↩ ↩2 ↩3 ↩4 ↩5
-
Microsoft Learn, How to: View certificates with the MMC snap-in. certlm.msc स्थानीय डिवाइस (स्थानीय कंप्यूटर) प्रमाणपत्र, certmgr.msc वर्तमान उपयोगकर्ता प्रमाणपत्र प्रबंधन; प्रमाणपत्र स्नैप-इन लक्ष्य «कंप्यूटर खाता», «उपयोगकर्ता खाता», «सेवा खाता» तीन; जो व्यवस्थापक नहीं केवल अपना उपयोगकर्ता खाता प्रमाणपत्र प्रबंधित कर सकता है। ↩ ↩2 ↩3 ↩4
-
Microsoft Learn, about_Certificate_Provider. PowerShell Cert: ड्राइव CurrentUser और LocalMachine दो स्टोर स्थान वाला पदानुक्रम नामस्थान; Get-ChildItem से स्टोर और प्रमाणपत्र सूची; -ExpiringInDays निर्दिष्ट दिनों में समाप्त (0 समाप्त हो चुके); -CodeSigningCert जैसे गतिशील पैरामीटर; NotAfter गुण में समय-सीमा; प्रमाणपत्र थंबप्रिंट से पहचाने जाते हैं। ↩ ↩2 ↩3 ↩4 ↩5 ↩6
-
Microsoft Learn, How to Modify Private Key Permissions to Support Management Server or Streaming Server. स्थानीय कंप्यूटर प्रमाणपत्र स्टोर लक्ष्य प्रमाणपत्र स्नैप-इन से «निजी कुंजियाँ प्रबंधित करें» (Manage Private Keys) खोल «सुरक्षा» टैब पर सेवा निष्पादन खाते (उदाहरण Network Service) को «पठन» पहुँच जोड़ने की प्रक्रिया। ↩ ↩2 ↩3
-
Microsoft Learn, Import-PfxCertificate. Import-PfxCertificate PFX फ़ाइल से प्रमाणपत्र और निजी कुंजी निर्दिष्ट स्टोर में लेता है; -Exportable स्विच बिना ली निजी कुंजी निर्यात नहीं; -CertStoreLocation, -Password, -FilePath पैरामीटर वाक्य रचना और उदाहरण। ↩ ↩2 ↩3
-
Microsoft Learn, certutil. certutil -verify प्रमाणपत्र, CRL, प्रमाणपत्र श्रृंखला सत्यापित, CA प्रमाणपत्र फ़ाइल न दें तो पूरी श्रृंखला बनाकर सत्यापित; -urlfetch विकल्प; certutil -store प्रमाणपत्र स्टोर डंप, -user विकल्प से कंप्यूटर स्टोर बदले उपयोगकर्ता स्टोर। ↩ ↩2
-
Microsoft Learn, Distribute Certificates to Client Computers by Using Group Policy. Group Policy «Computer Configuration\Policies\Windows Settings\Security Settings\Public Key Policies» के नीचे «विश्वसनीय रूट प्रमाणन प्राधिकारी» में प्रमाणपत्र आयात कर डोमेन क्लाइंट कंप्यूटर पर वितरण; आवश्यक अधिकार (Domain Admins / Enterprise Admins समकक्ष)। ↩
-
Microsoft Learn, Create trusted certificate profiles in Microsoft Intune. Intune «विश्वसनीय प्रमाणपत्र» प्रोफ़ाइल रूट या मध्यवर्ती CA प्रमाणपत्र प्रबंधित डिवाइस पर बाँटती है; SCEP/PKCS प्रमाणपत्र प्रोफ़ाइल पूर्वापेक्षा रूट CA विश्वास स्थापित करने को; Windows पर वितरण स्टोर «कंप्यूटर प्रमाणपत्र स्टोर - रूट», «कंप्यूटर प्रमाणपत्र स्टोर - मध्यवर्ती», «उपयोगकर्ता प्रमाणपत्र स्टोर - मध्यवर्ती» चुन सकते हैं। ↩
-
Microsoft Learn, X509Store Class. X509Store StoreName और StoreLocation (CurrentUser / LocalMachine) से निर्माण, Open विधि और OpenFlags (ReadOnly, OpenExistingOnly आदि) से स्टोर खोलना, Certificates गुण से प्रमाणपत्र संग्रह; मानक स्टोर नाम My, Root, CA, TrustedPublisher आदि, TrustedPublisher स्टोर CurrentUser और LocalMachine दोनों पर। ↩ ↩2
-
Microsoft Learn, X509Certificate2Collection.Find(X509FindType, Object, Boolean) Method. Find विधि X509FindType (FindByThumbprint आदि) और खोज मान से प्रमाणपत्र खोज; तीसरा तर्क validOnly true हो तो सत्यापन पार वैध प्रमाणपत्र ही लौटते हैं। ↩ ↩2
-
Microsoft Learn, HttpClientHandler.ClientCertificates Property. ClientCertificates गुण प्रमाणपत्र-आधारित क्लाइंट प्रमाणीकरण में सर्वर को प्रस्तुत X509CertificateCollection; .NET Core पर प्रमाणपत्र कुंजी उपयोग गुण हो तो «Digital Signature» शामिल होना चाहिए। ↩ ↩2
संबंधित लेख
निकटवर्ती विषयों में गहराई से जाने के लिए समान टैग वाले नवीनतम लेख।
Windows फ़ायरवॉल और व्यावसायिक ऐप — इनबाउंड नियम इंस्टॉलर से पंजीकृत करें
«विकास मशीन पर चलता है, ग्राहक पर संचार नहीं» का तयशुदा कारण Windows फ़ायरवॉल है। इनबाउंड डिफ़ॉल्ट ब्लॉक और प्रोफ़ाइल, सूचना संवाद पर उत्...
Windows सुरक्षा ऑडिट नीति और इवेंट लॉग जाँच का व्यवहार — 4625 पढ़ सकने वाली IT टीम बनना
"साइन-इन विफलता के लॉग जाँचें" अनुरोध का जवाब देने वाली व्यावहारिक मार्गदर्शिका। मूल और उन्नत ऑडिट नीति का संबंध, न्यूनतम सक्षम उपश्रेणिय...
Windows LAPS व्यावहारिक मार्गदर्शिका — सभी PC पर एक ही स्थानीय व्यवस्थापक पासवर्ड छोड़ें
सभी PC पर एक ही स्थानीय व्यवस्थापक पासवर्ड, एक मशीन के समझौते को सब तक फैलाने वाले Pass-the-Hash का आधार है। OS-मानक Windows LAPS से स्वच...
वॉल्यूम शैडो कॉपी (VSS) की संरचना और व्यवहार — उपयोग में फ़ाइल का बैकअप क्यों लिया जा सकता है
उपयोग में फ़ाइलें साझाकरण उल्लंघन से कॉपी नहीं हो पातीं, फिर बैकअप सॉफ़्टवेयर उन्हें कैसे ले लेता है? वॉल्यूम शैडो कॉपी (VSS) में रिक्वेस...
C# और PowerShell से WMI/CIM का उपयोग — हार्डवेयर जानकारी, प्रोसेस निगरानी और रिमोट क्वेरी की व्यावहारिक मार्गदर्शिका
PC का सीरियल नंबर लेना, डिस्क खाली स्थान की निगरानी, और प्रोसेस शुरू होने का पता लगाने का आम तरीका WMI/CIM है। यह लेख Get-CimInstance जैस...
संबंधित विषय
ये पृष्ठ विषय को सेवाओं और निर्णयों के व्यापक संदर्भ में रखते हैं।
Windows के तकनीकी विषय
Windows विकास, बग जाँच और मौजूदा संपत्तियों के उपयोग का प्रवेश-द्वार।
इस विषय से जुड़ी सेवाएँ
यह लेख निम्नलिखित सेवाओं से सीधे जुड़ा है।
Windows ऐप विकास
व्यावसायिक ऐप, डिवाइस एकीकरण और संचार उपकरण, आवश्यकताओं से विकास तक।
अक्सर पूछे जाने वाले प्रश्न
इस लेख के विषय पर परामर्श में अक्सर पूछे जाने वाले प्रश्न।
- certmgr.msc और certlm.msc में क्या अंतर है?
- लक्ष्य स्टोर अलग है। certmgr.msc साइन-इन उपयोगकर्ता का प्रमाणपत्र स्टोर (वर्तमान उपयोगकर्ता, CurrentUser) खोलता है; certlm.msc कंप्यूटर का प्रमाणपत्र स्टोर (स्थानीय कंप्यूटर, LocalMachine) खोलता है। कंप्यूटर स्टोर PC पर सब उपयोगकर्ता और सेवाओं के लिए साझा है, प्रबंधन को व्यवस्थापक अधिकार चाहिए। जो व्यवस्थापक नहीं वह केवल अपना उपयोगकर्ता स्टोर प्रबंधित कर सकता है। दोनों की सामग्री «व्यक्तिगत», «विश्वसनीय रूट प्रमाणन प्राधिकारी» जैसे तार्किक स्टोर में बँटी है; PowerShell से Cert:\CurrentUser और Cert:\LocalMachine के रूप में वही संरचना दिखती है।
- क्लाइंट प्रमाणपत्र उपयोगकर्ता स्टोर में रखें या कंप्यूटर में?
- वह प्रमाणपत्र उपयोग करने वाला प्रोग्राम «किसके रूप में» चलता है, उसी से तय करें। संवादात्मक उपयोगकर्ता चलाए डेस्कटॉप ऐप हो तो उपयोग करने वाले व्यक्ति का उपयोगकर्ता स्टोर (Cert:\CurrentUser\My) मूल है। Windows सेवा, IIS एप्लिकेशन पूल, टास्क शेड्यूलर से अनअटेंडेड चलने वाले प्रोग्राम हो तो कंप्यूटर स्टोर (Cert:\LocalMachine\My) में रखें और निष्पादन खाते को निजी कुंजी पठन अधिकार दें। उपयोगकर्ता स्टोर खाता-दर-खाता अलग है, इसलिए डेवलपर ने अपने उपयोगकर्ता स्टोर में रखा प्रमाणपत्र दूसरे खाते से चलती सेवा से नहीं दिखता। यही «विकास में चला, उत्पादन पर नहीं मिला» दुर्घटना का क्लासिक कारण है।
- Windows सेवा से प्रमाणपत्र नहीं मिलता या उपयोग नहीं होता — क्या जाँचें?
- जाँच दो चरण। पहला «कौन सा स्टोर देख रहा है»। कोड StoreLocation.CurrentUser खोल रहा हो तो वह सेवा निष्पादन खाते का उपयोगकर्ता स्टोर है, व्यवस्थापक certmgr.msc से देखता अपना स्टोर नहीं। प्रमाणपत्र कंप्यूटर स्टोर में ले जाएँ, कोड भी StoreLocation.LocalMachine से मिलाएँ। दूसरा «निजी कुंजी पढ़ी जा सकती है?»। सूची में दिखना और निजी कुंजी उपयोग करना अलग हैं; कंप्यूटर स्टोर की निजी कुंजी डिफ़ॉल्ट प्रायः केवल व्यवस्थापक और SYSTEM पढ़ते हैं। certlm.msc से लक्ष्य प्रमाणपत्र पर «निजी कुंजियाँ प्रबंधित करें» खोलकर सेवा निष्पादन खाते (NETWORK SERVICE आदि) को «पठन» दें।
- प्रमाणपत्र समय-सीमा PowerShell से पहले कैसे पकड़ें?
- Cert: ड्राइव पर Get-ChildItem से सूची बनती है। उदाहरण Get-ChildItem Cert:\LocalMachine\My | Sort-Object NotAfter | Format-Table Thumbprint, Subject, NotAfter से कंप्यूटर स्टोर के व्यक्तिगत स्टोर समय-सीमा क्रम में। -ExpiringInDays से «निर्दिष्ट दिनों में समाप्त होने वाले» ही निकलते हैं; 0 दें तो समाप्त हो चुके। इसे मासिक सब सर्वर पर चलाकर परिणाम प्रमाणपत्र पंजी से मिलाएँ — «समय-सीमा से सुबह से कनेक्शन नहीं» दुर्घटना लगभग रुकती है।