DAT CMS

DAT CMS सर्टिफिकेट बनाता है, उन्हें database में रखता है और उपयुक्त सर्टिफिकेट issuing तथा verifying services को देता है। Protocol behavior का वर्णन DAT CMS विनिर्देश में है।

runtime configuration बनाएँ

DAT certificate management service

dns

Server

PortDefault: 8088
HostnameDefault: Auto
terminal

चलाने का command

bash
API जाँचें
bash
database

Database

API cacheDefault: 60
verified_user

DAT certificate

Signature algorithm
Encryption algorithm
Certificate issuance delayसेकंडhelp
DAT issuance periodसेकंडhelp
DAT TTL (lifetime)सेकंडhelp
DAT certificate generation schedule (Cron)help
lock

Access control

Master token
DAT certificates बनाएँ और server version प्राप्त करें
Full Cert token
Full (Pair Key, Hash Key) certificates प्राप्त करें
Verify Cert token
Verify (Verify Key Only) certificates प्राप्त करें

Docker के साथ चलाएँ

container को non-root user के रूप में चलाएँ। SQLite का उपयोग करते समय writable data directory mount करें। tokens और database passwords को command history के बजाय secret-injection mechanism से दें।

docker run --rm --name dat-cms -p 8088:8088 \
  --user 10001:10001 \
  -v "$PWD/dat-cms-data:/data" \
  -e PORT=8088 \
  -e DB_URI='sqlite:/data/data.db' \
  -e TOKEN_MASTER='replace-with-a-secret' \
  -e TOKEN_CERT_FULL='replace-with-a-secret' \
  -e TOKEN_CERT_VERIFY='replace-with-a-secret' \
  sarolab/dat-cms

डेटाबेस

SQLite, PostgreSQL या MySQL connection configure करने के लिए DB_URI का उपयोग करें। MariaDB, MySQL protocol से connect होता है। CMS certificate query results को snapshot के रूप में cache करता है और storage refresh की अस्थायी विफलता पर अंतिम सफल snapshot देता रहता है।

DB_CACHE_SECS snapshot refresh interval तय करता है, जबकि DB_QUERY_TIMEOUT_SECS refresh queries को सीमित करता है। यदि कोई सफल snapshot नहीं है और storage पढ़ा नहीं जा सकता, तो सेवा DAT_STORE_UNAVAILABLE लौटाती है।

पहुँच भूमिकाएँ

environment variableअनुमतिउपयोगकर्ता
TOKEN_MASTERसर्टिफिकेट register करना और protected version प्राप्त करनाऑपरेशंस
TOKEN_CERT_FULLपूर्ण सर्टिफिकेट प्राप्त करनाDAT issuing services
TOKEN_CERT_VERIFYverify-only सर्टिफिकेट प्राप्त करनासत्यापन और decryption services

हर variable comma-separated alphanumeric tokens स्वीकार करता है। किसी role की token list खाली होने पर उसके endpoints खुल जाते हैं और warning log होती है।

सर्टिफिकेट जनरेशन

master role signature algorithm, encryption algorithm, propagation delay, issuance period और TTL निर्दिष्ट करके सर्टिफिकेट register करती है। propagation delay के दौरान सेवाएँ नए सर्टिफिकेट को उसके issuable होने से पहले synchronize करती हैं।

क्लाइंट एकीकरण

  1. issuing services के लिए full token और full-certificate endpoint का उपयोग करें।
  2. verifying services के लिए verify token और verify-only option का उपयोग करें।
  3. पहले synchronization का परिणाम जाँचें; यदि startup विफल होना चाहिए, तो immediate synchronization API कॉल करें।
  4. automatic synchronization सक्रिय होने पर application shutdown में manager बंद करें।

हर भाषा के builder और shutdown behavior के लिए लाइब्रेरी गाइड देखें।

ऑपरेशनल जाँच

  • /health और /version/api बिना authentication के status बताते हैं।
  • उस role के configured होने पर /version को master token चाहिए।
  • standard output और standard error से logs एकत्र करें।
  • shutdown signals forward करें और database तथा scheduler को बंद होने का समय दें।

Kubernetes

container port और probes को service port से मिलाएँ, और data directory को non-root user के write access के साथ mount करें। tokens और database connection details को Secrets के माध्यम से inject करें।

securityContext:
  runAsNonRoot: true
  runAsUser: 10001
  runAsGroup: 10001
containers:
  - name: dat-cms
    image: sarolab/dat-cms
    ports: [{ containerPort: 8088 }]
    readinessProbe: { httpGet: { path: /health, port: 8088 } }
    livenessProbe: { httpGet: { path: /health, port: 8088 } }