DAT CMS

DAT CMS membuat sertifikat, menyimpannya dalam basis data, dan mengirim sertifikat yang sesuai kepada layanan penerbit dan pemverifikasi. Perilaku protokol dijelaskan dalam spesifikasi DAT CMS.

Buat konfigurasi runtime

Layanan pengelolaan sertifikat DAT

dns

Server

PortDefault: 8088
HostnameDefault: Auto
terminal

Perintah menjalankan

bash
Periksa API
bash
database

Basis data

Cache APIDefault: 60
verified_user

Sertifikat DAT

Algoritme tanda tangan
Algoritme enkripsi
Penundaan penerbitan sertifikatdetikhelp
Periode penerbitan DATdetikhelp
TTL DAT (masa berlaku)detikhelp
Jadwal pembuatan sertifikat DAT (Cron)help
lock

Kontrol akses

Master token
Membuat sertifikat DAT dan mengambil versi server
Full Cert token
Mengambil sertifikat Full (Pair Key, Hash Key)
Verify Cert token
Mengambil sertifikat Verify (Verify Key Only)

Jalankan dengan Docker

Jalankan container sebagai pengguna non-root. Saat menggunakan SQLite, mount direktori data yang dapat ditulis. Berikan token dan kata sandi basis data melalui mekanisme injeksi secret, bukan riwayat perintah.

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

Basis data

Gunakan DB_URI untuk mengatur koneksi SQLite, PostgreSQL, atau MySQL. MariaDB terhubung melalui protokol MySQL. CMS menyimpan hasil kueri sertifikat sebagai snapshot dalam cache dan tetap melayani snapshot berhasil terakhir ketika refresh penyimpanan gagal sementara.

DB_CACHE_SECS mengatur interval refresh snapshot, sedangkan DB_QUERY_TIMEOUT_SECS membatasi kueri refresh. Jika belum ada snapshot berhasil dan penyimpanan tidak dapat dibaca, layanan mengembalikan DAT_STORE_UNAVAILABLE.

Peran akses

Variabel lingkunganIzinDigunakan oleh
TOKEN_MASTERMendaftarkan sertifikat dan mengambil versi terlindungiOperasi
TOKEN_CERT_FULLMengambil sertifikat lengkapLayanan penerbit DAT
TOKEN_CERT_VERIFYMengambil sertifikat khusus verifikasiLayanan verifikasi dan dekripsi

Setiap variabel menerima token alfanumerik yang dipisahkan koma. Jika daftar token suatu peran kosong, endpoint peran tersebut dibuka dan peringatan dicatat.

Pembuatan sertifikat

Peran master mendaftarkan sertifikat dengan menentukan algoritme tanda tangan, algoritme enkripsi, penundaan propagasi, periode penerbitan, dan TTL. Selama penundaan propagasi, layanan menyinkronkan sertifikat baru sebelum sertifikat dapat menerbitkan.

Integrasi klien

  1. Gunakan token lengkap dan endpoint sertifikat lengkap untuk layanan penerbit.
  2. Gunakan token verifikasi dan opsi verify-only untuk layanan pemverifikasi.
  3. Periksa hasil sinkronisasi pertama; jika startup harus gagal, panggil API sinkronisasi langsung.
  4. Saat sinkronisasi otomatis aktif, tutup manajer ketika aplikasi berhenti.

Lihat panduan pustaka untuk perilaku builder dan penghentian tiap bahasa.

Pemeriksaan operasional

  • /health dan /version/api melaporkan status tanpa autentikasi.
  • /version memerlukan master token jika peran tersebut dikonfigurasi.
  • Kumpulkan log dari output standar dan error standar.
  • Teruskan sinyal penghentian dan beri waktu bagi basis data serta scheduler untuk berhenti.

Kubernetes

Samakan port container dan probe dengan port layanan, lalu mount direktori data dengan akses tulis untuk pengguna non-root. Injeksi token dan detail koneksi basis data melalui Secrets.

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 } }