Ana içeriğe geç
Versiyon: 2.7 (Güncel)

ACME Server

SecTrail CM, kendi bünyesinde bir ACME Server (RFC 8555) barındırır. Bu sayede kurumunuzdaki sunucular, konteynerler ve otomasyon araçları; Certbot, acme.sh, Caddy, Traefik, win-acme gibi standart ACME istemcilerini kullanarak SecTrail CM üzerinden sertifika alabilir ve otomatik olarak yenileyebilir.

Let's Encrypt gibi bir dış sertifika otoritesine bağlanmak yerine, ACME istemcileriniz doğrudan SecTrail CM'i ACME sunucusu olarak kullanır. Sertifikalar SecTrail CM'in yönettiği CA'lar (Local CA, Microsoft ADCS vb.) tarafından, sizin tanımladığınız template kurallarına göre düzenlenir.

ACME Client mi, ACME Server mı?
  • ACME Client: SecTrail CM'in istemci olarak dışarıdaki bir ACME sertifika otoritesinden (Let's Encrypt, ZeroSSL, Buypass vb.) sertifika alması.
  • ACME Server (bu doküman): SecTrail CM'in sunucu olarak kendi ACME servisini yayınlaması ve kurum içi istemcilere sertifika düzenlemesi.

Sağladığı Avantajlar

  • Kurum içi otomasyon: İnternete açık olmayan iç sistemler için de tam otomatik sertifika yaşam döngüsü
  • Standart istemciler: Certbot, acme.sh, Caddy, Traefik, Kubernetes cert-manager gibi yaygın araçlarla uyumluluk
  • Merkezî kontrol: Hangi istemcinin hangi template ile sertifika alabileceği EAB üzerinden belirlenir
  • Tam görünürlük: Düzenlenen tüm sertifikalar SecTrail CM envanterine otomatik olarak işlenir
  • Kısa ömürlü sertifikalar: Sık yenilenen sertifika stratejileri manuel iş yükü oluşturmadan uygulanabilir

Çalışma Mantığı

ACME Server'ın temel bileşenleri şunlardır:

BileşenAçıklama
EAB Credentialİstemcinin ACME hesabı açarken kullandığı kimlik bilgisi (kid + HMAC anahtarı). Bir template'e bağlıdır ve isteğe bağlı olarak belirli domainlerle sınırlandırılabilir.
AccountEAB ile kaydolmuş ACME istemci hesabı. Hesap, bağlı olduğu EAB'nin template'ini devralır.
OrderBir hesabın belirli domain(ler) için oluşturduğu sertifika talebi.

Akış şu şekilde ilerler:

  1. Yönetici, SecTrail CM'de bir EAB Credential oluşturur ve bunu bir sertifika template'ine bağlar.
  2. Üretilen kid ve HMAC anahtarı ilgili sunucu/ekip ile paylaşılır.
  3. İstemci, bu EAB bilgileriyle SecTrail CM ACME Server'a hesap kaydı yapar.
  4. İstemci bir order oluşturur; domain doğrulaması (challenge) tamamlanır. Domain, EAB'nin Allowed Identifiers listesinde tanımlıysa bu adım atlanır.
  5. Sertifika, EAB'ye bağlı template kurallarına göre düzenlenir ve envantere eklenir.
  6. İstemci, sertifikanın süresi dolmadan aynı hesapla otomatik olarak yeniler.
Template Bağlantısı

Bir EAB credential yalnızca bağlı olduğu template'e karşı sertifika üretebilir. Template, hangi CA'nın kullanılacağını, geçerlilik süresini, key usage ve diğer sertifika parametrelerini belirler. Template yönetimi için bkz. Inventory → Issue Certificate → Templates.

EAB Credentials (Harici Hesap Bağlama)

EAB (External Account Binding), ACME hesabının kurumunuzda önceden yetkilendirilmiş bir kimliğe bağlanmasını sağlayan RFC 8555 mekanizmasıdır. SecTrail CM ACME Server'da hesap açabilmek için EAB zorunludur; böylece yalnızca kendisine kimlik bilgisi verilmiş istemciler sertifika alabilir.

EAB Credential Oluşturma

Certificate Authorities (CA) > ACME Server > EAB Credentials bölümüne gidin ve Create butonuna tıklayın:

ACME EAB Credential Oluşturma

Aşağıdaki bilgileri girin:

  • Template (zorunlu): Bu EAB ile açılan ACME hesaplarının sertifika alabileceği template. İstemcinin alacağı sertifikaların CA'sı, geçerlilik süresi ve profil bilgileri bu template tarafından belirlenir.
  • Description (opsiyonel): Credential'ın nerede kullanılacağını açıklayan kısa bir not (örn. Web01 sunucusu / DevOps ekibi). Çok sayıda credential yönetirken hangisinin nereye ait olduğunu ayırt etmenizi sağlar.
  • Expires at (opsiyonel): Credential'ın geçerlilik bitiş tarihi. Boş bırakılırsa süresiz geçerli olur.
  • Allowed Identifiers (opsiyonel): Bu credential ile sertifika alınabilecek domain listesi. Her satıra bir DNS identifier yazılır. Boş bırakılırsa istemci herhangi bir domain için talepte bulunabilir (normal challenge doğrulaması uygulanır). Ayrıntı için bkz. Allowed Identifiers (Ön Yetkilendirme).

Submit butonuna tıklayarak credential'ı oluşturun.

HMAC Anahtarı Yalnızca Bir Kez Gösterilir

Kaydettiğinizde rastgele bir kid ve 256-bit HMAC anahtarı üretilir. HMAC anahtarı yalnızca bir kez gösterilir; ekranı kapatmadan önce güvenli bir yere kaydettiğinizden emin olun. Anahtarı kaybederseniz yeni bir EAB credential oluşturmanız gerekir.

Allowed Identifiers (Ön Yetkilendirme)

Allowed Identifiers, bir EAB credential'ın hangi domain adları için sertifika alabileceğini sınırlandırmanızı sağlar. Alan boş bırakılabilir; doldurulduğunda hem bir kapsam kısıtı hem de bir ön yetkilendirme (pre-authorization) mekanizması olarak çalışır.

DurumDavranış
Boş bırakılırsaİstemci herhangi bir domain için sertifika talep edebilir. Talep edilen her domain için normal challenge doğrulaması (HTTP-01 / DNS-01) zorunludur.
Doldurulursaİstemci yalnızca listedeki domainler için sertifika alabilir. Bu domainler ön yetkilendirilmiş kabul edilir; challenge adımı atlanır ve sertifika doğrudan düzenlenir.

Alan kuralları:

  • Her satıra bir DNS identifier yazılır.
  • Wildcard desteklenir: *.example.com tek bir etiketle eşleşir (foo.example.com ✓, a.b.example.com ✗).
  • # ile başlayan satırlar yorum olarak kabul edilir ve yok sayılır.

Örnek:

api.example.com
*.internal.example.com
web01.example.com

Listede olmayan bir domain için yapılan talepler reddedilir; bu nedenle liste, istemcinin sertifika alabileceği alan adlarını da fiilen sınırlar.

EAB Credential Listesi

Oluşturulan credential'lar Certificate Authorities (CA) > ACME Server > EAB Credentials listesinde görüntülenir:

ACME EAB Credentials Listesi

Liste ekranında aşağıdaki bilgiler gösterilir:

SütunAçıklama
KidCredential'ın benzersiz kimliği (eab_ ön ekiyle başlar). İstemci yapılandırmasında kullanılır.
TemplateBağlı olduğu sertifika template'i ve template'in CA tipi (örn. LocalCA, ADCS)
ActiveCredential'ın etkin (active) veya devre dışı (inactive) durumu
AccountsBu credential ile açılmış ACME hesabı sayısı
ExpiresGeçerlilik bitiş tarihi. Süresi geçmişse expired etiketiyle işaretlenir. süresiz anlamına gelir.
CreatedCredential'ın oluşturulma tarihi

Credential İşlemleri

  • Edit: Description, geçerlilik tarihi ve Allowed Identifiers gibi bilgileri düzenleyin
  • Aktif/Pasif: Satır sonundaki anahtar (toggle) ile credential'ı devre dışı bırakın veya yeniden etkinleştirin
  • Delete: Credential'ı silin
  • Export: Listeyi dışa aktarın
Credential Devre Dışı Bırakma

Bir credential pasif hâle getirildiğinde veya süresi dolduğunda, bu credential ile yeni ACME hesabı açılamaz. Bir sunucunun sertifika almasını derhâl durdurmanız gerekiyorsa, credential'ı pasife almanın yanı sıra ilgili ACME hesabını da devre dışı bırakmanız gerekir.

ACME Hesapları (Accounts)

İstemciler EAB bilgileriyle kayıt olduğunda, oluşan hesaplar Certificate Authorities (CA) > ACME Server > Accounts bölümünde listelenir:

ACME Server Hesap Listesi

Liste ekranında aşağıdaki bilgiler gösterilir:

SütunAçıklama
Contactİstemcinin kayıt sırasında bildirdiği iletişim e-posta adresi
TemplateHesabın (EAB üzerinden devraldığı) sertifika template'i ve CA tipi
EAB KidHesabın hangi EAB credential ile açıldığı
OrdersHesap tarafından oluşturulmuş sipariş sayısı
StatusHesap durumu (valid, deactivated)
CreatedHesabın oluşturulma tarihi

Hesap İşlemleri

  • Detay: Satır başındaki + simgesi ile hesabın ayrıntılarını görüntüleyin
  • Delete: Hesabı silin
  • Export: Listeyi dışa aktarın
Hesap - Template İlişkisi

Bir hesap, kayıt anında kullandığı EAB credential'ın template'ine kalıcı olarak bağlanır. Farklı bir template ile sertifika almak isteyen bir istemcinin, o template'e bağlı yeni bir EAB credential ile ayrı bir hesap açması gerekir.

Siparişler (Orders)

İstemcilerin oluşturduğu tüm sertifika talepleri Certificate Authorities (CA) > ACME Server > Orders bölümünden takip edilir:

ACME Server Sipariş Listesi

Liste ekranında aşağıdaki bilgiler gösterilir:

SütunAçıklama
AccountSiparişi oluşturan ACME hesabının iletişim adresi
TemplateSertifikanın düzenlendiği template
IdentifiersSipariş kapsamındaki domain adları. Bir siparişte birden fazla domain (SAN) bulunabilir.
StatusSipariş durumu (pending, ready, processing, valid, invalid)
CertificateDüzenlenen sertifikanın envanterdeki kaydına bağlantı. İptal edilmiş sertifikalar REVOKED etiketiyle işaretlenir.
CreatedSiparişin oluşturulma tarihi
ExpiresSiparişin geçerlilik süresi (sertifikanın değil, ACME siparişinin)

Sipariş Durumları

  • pending: Sipariş oluşturuldu, domain doğrulaması (challenge) bekleniyor
  • ready: Doğrulama başarılı, sertifika talebi (finalize) bekleniyor
  • processing: Sertifika düzenleniyor
  • valid: Sertifika başarıyla düzenlendi ve envantere eklendi
  • invalid: Doğrulama başarısız oldu veya sipariş süresi doldu
Sertifika Envanteri

valid durumundaki siparişlerde Certificate sütunundaki sertifika numarasına tıklayarak envanterdeki kayda gidebilir; sertifikayı indirebilir, izleyebilir veya iptal (revoke) edebilirsiniz.

İstemci Yapılandırma Örnekleri

Aşağıdaki örneklerde acme.sectrail.local yerine kendi SecTrail CM adresinizi, eab_... ve HMAC değerleri yerine kendi EAB credential bilgilerinizi kullanın.

ACME Directory URL:

https://acme.sectrail.local/acme/directory

Certbot

certbot register \
--server https://acme.sectrail.local/acme/directory \
--email ops@sectrail.com \
--eab-kid eab_d4sy8Ub9TMCHw3mF \
--eab-hmac-key <HMAC_ANAHTARI>

certbot certonly --standalone \
--server https://acme.sectrail.local/acme/directory \
-d www.sectrail.com -d api.sectrail.com

acme.sh

acme.sh --register-account \
--server https://acme.sectrail.local/acme/directory \
-m ops@sectrail.com \
--eab-kid eab_d4sy8Ub9TMCHw3mF \
--eab-hmac-key <HMAC_ANAHTARI>

acme.sh --issue \
--server https://acme.sectrail.local/acme/directory \
-d www.sectrail.com --standalone

Caddy

{
acme_ca https://acme.sectrail.local/acme/directory
acme_eab {
key_id eab_d4sy8Ub9TMCHw3mF
mac_key <HMAC_ANAHTARI>
}
}