इस प्रोजेक्ट के बारे में

CertMate एक स्व-होस्टेड प्रमाणपत्र जीवनचक्र प्रबंधन प्लेटफ़ॉर्म है। यह ACME के माध्यम से TLS प्रमाणपत्र जारी और नवीनीकृत करता है, उन प्रमाणपत्रों को खोजता है जो उसने जारी नहीं किए, पूरे एस्टेट में मौजूद चीज़ों की एकल सूची बनाए रखता है (कहाँ क्या परोसा जाता है, जारीकर्ता, समाप्ति, उपयोग की गई क्रिप्टोग्राफी), और नवीनीकृत प्रमाणपत्रों को आवश्यक स्थानों पर तैनात करता है। यह 29 DNS प्रदाताओं का समर्थन करता है, आंतरिक नामों के लिए अपना निजी CA चलाता है, छेड़छाड़-स्पष्ट ऑडिट ट्रेल रखता है, और सब कुछ REST API के माध्यम से उजागर करता है। मुख्य क्षमताएँ - प्रमाणपत्र प्रबंधन: कई CA प्रदाता (Let's Encrypt स्टेजिंग सहित, ZeroSSL, Google Trust Services, Actalis, DigiCert ACME EAB के साथ, Sectigo, SSL.com, निजी CA), वाइल्डकार्ड और मल्टी-डोमेन SAN प्रमाणपत्र, CNAME डेलीगेशन के माध्यम से DNS उपनाम, समाप्ति से 30 दिन पहले स्वचालित नवीनीकरण, प्रति-प्रमाणपत्र CA चयन, वास्तविक समय सत्यापन, और एक मल्टी-थ्रेडेड ज़ोंबी प्रमाणपत्र स्कैनर जो जाँचता है कि प्रबंधित नाम अभी भी हल और उत्तर देते हैं। - DNS प्रदाता: Cloudflare, AWS Route53, Azure DNS, Google Cloud DNS, DigitalOcean, PowerDNS, EfficientIP SOLIDserver, RFC2136, Linode, Akamai Edge DNS, Gandi, OVH, Namecheap, Vultr, DNS Made Easy, NS1, Hetzner (लीगेसी और Cloud), Porkbun, GoDaddy, Hurricane Electric, Dynu, ArvanCloud, Infomaniak, ACME-DNS, Scaleway, deSEC, DuckDNS और कस्टम स्क्रिप्ट हुक। प्रमुख प्रदाताओं के लिए मल्टी-अकाउंट समर्थन मौजूद है। README उपलब्धता स्तरों का दस्तावेजीकरण करता है: स्थिर (requirements.txt में पिन किया गया), विस्तारित छवि, अलग इंस्टॉल, और अनुपलब्ध (Namecheap, जिसका एकमात्र PyPI प्लगइन Python 2.7-3.8 को लक्षित करता है और Python 3.12 पर certbot 2.x के साथ असंगत है)। - एंटरप्राइज़ सुविधाएँ: तीन-स्तरीय RBAC (दर्शक, ऑपरेटर, व्यवस्थापक), स्कोप्ड API कुंजियाँ प्रति-कुंजी भूमिका और वैकल्पिक समाप्ति के साथ, मल्टी-अकाउंट प्रबंधन, Swagger/OpenAPI दस्तावेज़ों के साथ REST API, Tailwind/Alpine वेब डैशबोर्ड, निर्देशित सेटअप विज़ार्ड, SSE वास्तविक समय अपडेट, Docker और Kubernetes समर्थन, स्वास्थ्य जाँच, Prometheus मेट्रिक्स और संरचित JSON लॉगिंग। - स्टोरेज बैकएंड: स्थानीय फ़ाइल सिस्टम (600/700 अनुमतियाँ), Azure Key Vault, AWS Secrets Manager, HashiCorp Vault, Infisical, और कॉन्फ़िगर करने योग्य एंडपॉइंट के माध्यम से S3-संगत ऑब्जेक्ट स्टोरेज (Hetzner, Contabo, OVHcloud, Scaleway, Exoscale, Wasabi, MinIO, AWS)। बैकएंड के बीच माइग्रेशन समर्थित है। - सूचनाएँ और स्वचालन: ईमेल (SMTP), Slack, Discord, Google Chat, Telegram, ntfy, Gotify और SHA-256 HMAC हस्ताक्षरों के साथ सामान्य वेबहुक; जारी करने के बाद शेल कमांड चलाने वाले डिप्लॉय हुक; 14/7/3/1 दिनों पर समाप्ति चेतावनी और 60/30/14/7/1 दिनों पर डोमेन समाप्ति चेतावनी; साप्ताहिक डाइजेस्ट ईमेल। - बैकअप और पुनर्प्राप्ति: सेटिंग्स और प्रमाणपत्रों के परमाणु स्नैपशॉट, परिवर्तनों पर स्वचालित बैकअप, UI या API के माध्यम से मैन्युअल बैकअप, प्रति प्रकार 50 सबसे हाल के अभिलेखों की अवधारण और 30 दिनों से पुराना कुछ भी नहीं, डाउनलोड/निर्यात और पुनर्स्थापना। - सुरक्षा: बियरर टोकन प्रमाणीकरण, फ़ाइल अनुमतियाँ, टाइमलाइन दृश्य के साथ ऑडिट लॉगिंग, पर्यावरण-चर क्रेडेंशियल प्रबंधन, दर-सीमा जागरूकता, और एक लॉग सैनिटाइज़र जो संवेदनशील पैरामीटर, निजी कुंजी और API टोकन को संपादित करता है। इंटरफेस - certmate-cli (pip install certmate-cli) टर्मिनल से जीवनचक्र को कवर करता है: स्वास्थ्य, cert create/ls/info, audit verify। यह certmate-sdk पर एक पतली परत है, जो समान REST API के लिए httpx-आधारित Python क्लाइंट है। - mcp/ में एक प्रथम-पक्ष Model Context Protocol सर्वर (Node.js >= 20) इन्वेंट्री, जीवनचक्र संचालन और वितरण के लिए 16 उपकरण उजागर करता है, ताकि MCP-सक्षम सहायक समान प्रमाणीकरण और ऑडिट ट्रेल के साथ API चला सकें। README is_agent: true के साथ बनाई गई स्कोप्ड कुंजियों की अनुशंसा करता है ताकि एजेंट क्रियाएँ actor.kind="agent" के रूप में दर्ज हों। - एक-URL प्रमाणपत्र डाउनलोड और व्यक्तिगत घटक डाउनलोड (cert, key, chain, fullchain) PEM या ZIP में, साथ ही Python, Bash, Ansible और Terraform के लिए SDK उदाहरण। आर्किटेक्चर नोट CertMate एकल उदाहरण के रूप में चलता है: नवीनीकरण शेड्यूलर वेब प्रक्रिया के अंदर रहता है, इसलिए दूसरा रेप्लिका उसी स्टोर के खिलाफ जारी करने वाला दूसरा शेड्यूलर होगा, जिससे डुप्लिकेट ACME ऑर्डर और CA डुप्लिकेट-प्रमाणपत्र दर सीमाएँ होंगी। Helm चार्ट एक से अधिक रेप्लिका प्रस्तुत करने से इनकार करता है। यह बाहर के बजाय ऊपर की ओर स्केल करता है; उपलब्धता सक्रिय/स्टैंडबाय और साझा स्टोरेज फेलओवर के साथ संभाली जाती है। पारिस्थितिकी तंत्र में संबंधित परियोजनाओं में certmate-tools (ब्राउज़र-आधारित TLS/ACME डायग्नोस्टिक्स), certmate-agent (दस्तावेज़ों पर RAG के साथ REST API से मैप किया गया स्थानीय LLM सहायक), और nis2-public (NIS2 आसन प्रबंधन) शामिल हैं। एक स्रोत-उपलब्ध एंटरप्राइज़ संस्करण (CertMate-ng, BSL 1.1) मल्टी-टेनेंट, mTLS, व्हाइट-लेबल और NIS2-संरेखित तैनाती को कवर करता है। त्वरित प्रारंभ Docker Compose के माध्यम से है: रिपॉजिटरी क्लोन करें, .env.example को .env में कॉपी करें, API_BEARER_TOKEN सेट करें (इंस्टेंस को उजागर करने से पहले अनुशंसित, क्योंकि एक अपरिवर्तित इंस्टेंस पहली बार चलने वाले सेटअप बाईपास को उस तक पहुँचने वाले किसी भी व्यक्ति को परोसता है), Cloudflare का उपयोग करने पर CLOUDFLARE_TOKEN कॉन्फ़िगर करें, और स्टैक शुरू करें। अन्य DNS प्रदाता पर्यावरण चर के बजाय वेब UI या API में कॉन्फ़िगर किए जाते हैं। परियोजना MIT लाइसेंस प्राप्त है और Python 3.12 में लिखी गई है।