Ana içeriğe atla Navigasyona atla Alt bilgiye atla

Yerinde (On-Premise) Kurulum

Hesap sunucusunu ve CLI dağıtımını kendi altyapınızda çalıştırma.

Rediacc tamamen kendi altyapınızda çalışabilir. Bağımsız Docker imajı hesap sunucusunu, web portalını, pazarlama sitesini ve CLI dağıtım uç noktasını içerir. Rediacc’ın barındırılan servislerine harici bağımlılık gerekmez.

Docker İmajı

Bağımsız imajı çekin:

docker pull ghcr.io/rediacc/server:stable

Varsayılan ayarlarla çalıştırın:

docker run -p 80:80 -p 443:443 ghcr.io/rediacc/server:stable

İmaj şunları sunar:

  • /account/api/v1/ adresinde Account API
  • /account/ adresinde web portalı
  • / adresinde pazarlama sitesi
  • /releases/ adresinde CLI artefaktları
  • /bin/ adresinde Renet ikili dosyaları

CLI’ı Sunucunuzdan Kurma

Kullanıcılar CLI’ı doğrudan yerinde sunucunuzdan kurabilir. Kurulum betiği güncelleme kanalını otomatik algılar ve CLI’ı güncellemeler için sunucunuzu kontrol edecek şekilde yapılandırır.

curl -fsSL https://account.example.com/install.sh | \
  REDIACC_SERVER_URL=https://account.example.com bash

Bu tek komut:

  1. CLI ikili dosyasını sunucunuzun /releases/ uç noktasından indirir
  2. Güncelleme kanalını keşfetmek için /account/api/v1/.well-known/server-info adresini sorgular
  3. Sunucu URL’nizi, güncelleme kanalınızı ve şifreleme anahtarlarınızı içeren server.json dosyasını yazar
  4. Gelecekteki güncellemeler için rdc update komutunu sunucunuzu kontrol edecek şekilde yapılandırır

REDIACC_CHANNEL değişkenine gerek yoktur. Kurulum betiği kanalı sunucunuzun yapılandırmasından otomatik olarak okur.

Adlandırılmış Yapılandırmalarla CLI Ayarları

Birden fazla sunucuya (yerinde, üretim, edge) bağlanan kullanıcılar için adlandırılmış yapılandırmalar her ortamı izole tutar:

# Yerinde sunucunuz için bir yapılandırma oluşturun
rdc config init --name myserver --server https://account.example.com

# Bu yapılandırmayı kullanarak giriş yapın
rdc --config myserver subscription login

# --config ile tüm komutlar yerinde sunucuyu kullanır
rdc --config myserver machine query --name prod-1

Her adlandırılmış yapılandırma kendi hesap sunucusu URL’sini ve abonelik tokenini saklar. Yapılandırma değiştirmek tüm sunucu bağlamını değiştirir.

İnternet Erişimi Olmayan Ortamlar

İnternet erişimi olmayan ortamlar için hem sunucu URL’sini hem de özel bir sürüm URL’sini ayarlayın:

curl -fsSL https://account.example.com/install.sh | \
  REDIACC_SERVER_URL=https://account.example.com \
  REDIACC_RELEASES_URL=https://account.example.com/releases \
  bash

CLI, güncellemeler için genel sürümler CDN yerine account.example.com/releases/cli/stable/manifest.json adresini kontrol eder.

Sunucu tamamen çevrimdışıysa, paketlenmiş tarball’dan npm aracılığıyla CLI’ı kurun:

npm install -g https://account.example.com/npm/rediacc-cli-latest.tgz

Ortam Değişkenleri Referansı

DeğişkenKullananAmaç
REDIACC_SERVER_URLKurulum betiğiHesap sunucusu URL’si. Kanalı ve şifreleme anahtarlarını otomatik keşfeder.
REDIACC_RELEASES_URLKurulum betiği, CLI güncelleyiciCLI ikili dosyaları için özel sürüm uç noktası. Varsayılan: https://releases.rediacc.com
REDIACC_CHANNELKurulum betiğiGüncelleme kanalını geçersiz kılar. Ayarlanmamışsa sunucudan otomatik algılanır.
REDIACC_ACCOUNT_SERVERCLI çalışma zamanıTüm CLI komutları için hesap sunucusu URL’sini geçersiz kılar.
RDC_UPDATE_CHANNELCLI çalışma zamanırdc update için güncelleme kanalını geçersiz kılar.

Sunucu Yapılandırması

Yerinde Docker imajı, barındırılan servisle aynı ENVIRONMENT değişkenini kullanır. Bunu Docker ortamınızda veya orkestrasyon yapılandırmanızda ayarlayın:

  • ENVIRONMENT=production (varsayılan): standart limitler, istemcilere stable güncelleme kanalı önerilir
  • ENVIRONMENT=edge: 2X Community limitleri, istemcilere edge güncelleme kanalı önerilir

Her ortamın sağladıkları hakkında ayrıntılar için Sürüm Kanalları sayfasına bakın.

Sunucunun CLI’a Söyledikleri

CLI sunucunuza bağlandığında, şunları keşfetmek için /.well-known/server-info adresini sorgular:

  • E2E şifreleme genel anahtarı: sıfır bilgi yapılandırma depolama için
  • Minimum CLI sürümü: güncel olmayan CLI’ların bağlanmasını engeller
  • Güncelleme kanalı: CLI’a güncellemeler için hangi sürüm kanalını kullanacağını söyler
  • Ortam: bunun üretim mu yoksa edge dağıtımı mı olduğu

Bu otomatik yapılandırma, kullanıcıların yalnızca sunucu URL’sine ihtiyaç duyduğu anlamına gelir. Diğer her şey otomatik olarak keşfedilir.

Hava Boşluklu Dağıtımlar için Lisanslama

Hava boşluklu ve kendi kendine barındırılan yerinde sunucular, yukarı akış ana anahtarı tarafından imzalanmış bir yetkilendirme sertifikası kullanarak lisansları yerel olarak düzenler. Sertifika, yerinde sunucuyu plan limitleriyle kısıtlar ve kurcalamaya karşı kanıt zinciri oluşturur. Kriptografik tasarım (zincir bütünlüğü, çatal algılama, denetim kanıtları) için Lisans Zinciri ve Yetkilendirme sayfasına bakın.

Bu bölüm operasyonel kurulumu kapsar: anahtar oluşturma, sertifika talep etme, otomatik yenileme yapılandırması ve çevrimdışı (hava boşluklu) yenileme akışı.

Bir abonelik, bir yerinde kurulum

Bir aboneliğin aynı anda en fazla bir etkin yetkilendirme sertifikası olabilir. Her yerinde kurulum aylık ve makine başına limitleri kendi yerel düzenleme defterine karşı uygular; dolayısıyla birden fazla etkin sertifika, olası uzlaştırma olmaksızın fiili kotayı çarpar.

Ayrı ortamlara (üretim, hazırlama, DR, çok bölgeli) ihtiyaç duyuyorsanız, kurulum başına bir abonelik satın alın. Tek etkin uygulama bu sözleşmeyi kodlar: ikinci etkin sertifika oluşturma girişimi, mevcut sertifika kimliği ve yenileme (tercih edilen - zinciri korur) veya iptal-ve-oluşturma (zinciri sıfırlar) talimatlarıyla birlikte 409 DELEGATION_CERT_ALREADY_ACTIVE döndürür.

1. Yerinde Ed25519 anahtar çifti oluşturma

Yerinde sunucu lisansları imzalamak için ayrı bir Ed25519 anahtar çifti kullanır. Yukarı akışın yetkilendirme sertifikası bu belirli genel anahtarı yetkilendirir.

# Yeni bir anahtar çifti oluşturun
openssl genpkey -algorithm Ed25519 -out onprem-private.pem
openssl pkey -in onprem-private.pem -pubout -out onprem-public.pem

# base64'e dönüştürün (yerinde ortamın env var'larında beklediği format)
ON_PREMISE_PRIVATE_KEY=$(openssl pkey -in onprem-private.pem -outform DER | base64 -w 0)
ON_PREMISE_PUBLIC_KEY=$(openssl pkey -in onprem-private.pem -pubout -outform DER | base64 -w 0)

Özel anahtarı diğer sırlarınızın yanında saklayın (örneğin, Docker sırrı veya Kubernetes Secret). Asla yerinde kutunun dışına çıkmaz.

2. Yukarı akıştan yetkilendirme sertifikası talep etme

Yukarı akış hesap portalından sertifikayı üç yolla talep edebilirsiniz:

Seçenek A - Müşteri self-servis (önerilen). Yukarı akış portalına org sahibi veya yönetici olarak giriş yapın ve /account/delegation-certs sayfasına gidin. Yeni Oluştur’a tıklayın, yerinde genel anahtarı (base64 SPKI) yapıştırın, bir geçerlilik süresi seçin (veya plan başına varsayılanı kabul edin) ve sonuçta elde edilen .json dosyasını indirin.

Seçenek B - Yönetici (müşteriler arası). Rediacc desteği veya yukarı akış sistem yöneticisi aynı parametrelerle POST /admin/delegation-certs kullanabilir.

Seçenek C - rdc CLI (planlanmış). Gelecekteki bir CLI komutu portal akışını saracaktır.

Döndürülen .json şöyle görünür:

{
  "payload": "eyJ2ZXJzaW9uIjoxLCJzdWJzY3JpcHRpb25JZCI6...",
  "signature": "...",
  "publicKeyId": "..."
}

Sertifikanın geçerliliği, geçerlilik politikası tarafından yönetilir (plan başına varsayılanlar ve tavanlar, abonelik başına geçersiz kılma, abonelik sonu + 3 günlük yetkisiz kullanım süresiyle sınırlandırılmış). Yanıt ayrıca hangi değerin seçildiğini görebilmeniz için effectiveDays ve reason içerir. Tam kurallar için Lisans Zinciri - Geçerlilik Politikası sayfasına bakın.

3. Sertifikayı yerinde sunucuya kurma

İndirilen .json dosyasını bilinen bir yola kaydedin ve yerinde sunucuyu buna yönlendirin:

DELEGATION_CERT_PATH=/etc/rediacc/delegation-cert.json

Veya geçici / Docker-secrets iş akışları için sertifikayı env var’da base64 olarak gömün:

DELEGATION_CERT_BASE64=$(base64 -w 0 < delegation-cert.json)

4. Yukarı akış doğrulaması ve otomatik yenileme yapılandırması (isteğe bağlı ancak önerilir)

Yerinde sunucunuzun yukarı akışa giden HTTPS erişimi varsa, sertifikanın manuel müdahale olmaksızın son kullanma tarihinden önce yenilenmesi için otomatik yenileme ayarlayın:

# /onprem/cert-upload'ın yüklenen sertifikaları yukarı akış ana anahtarına karşı doğrulaması için gereklidir.
# UPSTREAM_API_KEY bu olmadan ayarlanırsa önyüklemede hızla başarısız olur.
UPSTREAM_PUBLIC_KEY="<upstream master Ed25519 SPKI public key, base64>"

# Otomatik yenileme döngüsü için gereklidir. Portal aracılığıyla oluşturun:
#   Org sahibi/yönetici -> /account/delegation-certs -> "Otomatik yenileme tokeni al"
# Bu, delegation:renew kapsamlı api tokeni edinmenin TEK yoludur.
UPSTREAM_URL="https://www.rediacc.com"
UPSTREAM_API_KEY="rdt_..."

# İsteğe bağlı ayar (varsayılanlar gösterilmiştir).
AUTO_RENEW_INTERVAL_HOURS=24
RENEW_THRESHOLD_DAYS=14

Yerinde otomatik yenileme döngüsü önyüklemede bir kez ve ardından yapılandırılan aralıkta çalışır. Uyarlanabilir bir eşik (min(env.RENEW_THRESHOLD_DAYS, ceil(certValidityDays / 3))) kullanır; böylece 15 günlük COMMUNITY sertifikası 1. günde yenilemeyi tetiklemek yerine 5 gün kala yenilenir. 90 günlük BUSINESS sertifikası 14 gün kala yenilenir (env tarafından yapılandırılan tavan devreye girer).

Yenileme başarısız olursa, sertifika doğal son kullanma tarihine kadar kullanımda kalır. Başarısızlık 1 saat geri çekilir ve ${DELEGATION_CERT_PATH}.status.json dosyasına kaydedilerek GET /onprem/cert-status aracılığıyla gösterilir.

5. Hava boşluklu yenileme (giden HTTPS yok)

Yerinde sunucunuz yukarı akışa ulaşamıyorsa, manuel transfer akışını kullanın:

  1. Yerinde yönetici portalından yenileme isteği indirin. Yerinde sistem kökü olarak GET /onprem/renewal-request adresine gidin. Bu, yerel zincir başını, yetkilendirilmiş genel anahtarı ve yerinde özel anahtarınızdan alınan kurcalamaya karşı kanıt Ed25519 imzasını içeren bir JSON manifestosu döndürür.
  2. Manifestoyu yukarı akışa USB, şifreli e-posta veya herhangi bir bant dışı kanal aracılığıyla aktarın. Manifesto küçüktür (birkaç KB) ve sır içermez.
  3. Manifestoyu yukarı akışta işleyin. Org sahibi/yönetici /account/delegation-certs sayfasını açar, Yenileme isteği yükle’yi seçer ve manifesto dosyasını seçer. Yukarı akış, manifesto imzasını etkin sertifikanın delegatedPublicKey’ine karşı doğrular (yerinde özel anahtarın sahibinden geldiğini kanıtlar), tekrar oynatmayı kontrol eder (7 günden eski manifestolar reddedilir) ve ardından yeni bir sertifika düzenler.
  4. Yeni sertifikayı yukarı akış portalından .json dosyası olarak indirin.
  5. Sertifikayı yerinde sunucuya geri aktarın.
  6. Yerel yönetici portalı aracılığıyla yerinde sunucuya yükleyin (POST /onprem/cert-upload). Yerinde sunucu, yeni sertifikayı UPSTREAM_PUBLIC_KEY’e karşı doğrular ve sertifikanın genesisSequence’ının yerel düzenleme defterindeki bir zincir girdisine hala bağlandığını doğrular (transit sırasında sıralı ilerleme desteklenir - zincir doğal olarak genişler).

Bu akış hiçbir zaman yerinde sunucudan ağ çıkışı gerektirmez.

Manifesto hata modları

KodNedenDüzeltme
NO_ACTIVE_CERTYukarı akışın bu abonelik için aktif sertifikası yokYenileme yerine oluşturma akışı ile yeni sertifika düzenleyin
DELEGATED_KEY_MISMATCHManifestonun delegatedPublicKey’i etkin sertifikadan farklıManifesto farklı bir yerinde kurulumdan tekrar oynatılmış olabilir
MANIFEST_SIGNATURE_INVALIDİmza yetkilendirilmiş genel anahtara karşı doğrulanamıyorManifesto transit sırasında kurcalandı veya farklı bir yerinde sunucuda oluşturuldu
MANIFEST_EXPIREDManifesto 7 günden daha eskiYerinde sunucudan yeni yenileme isteği oluşturun

Sertifika yükleme hata modları

KodNedenDüzeltme
CHAIN_HEAD_BEHINDYeni sertifikanın genesisSequence’ı yerel zincir başının önündeYukarı akış çatallanmış bir zincirde - araştırın
CHAIN_FORK_ON_UPLOADSertifikanın genesisSequence’ındaki zincir hash’i yerel deftere uymuyorYerel zincir yukarı akıştan ayrıştı - araştırın
Signature verification failedSertifika yapılandırılmış UPSTREAM_PUBLIC_KEY tarafından imzalanmamışUPSTREAM_PUBLIC_KEY’in yukarı akış ana genel anahtarıyla eşleştiğini kontrol edin

6. Durum ve izleme

Yerinde yerel sertifika durumunu istediğiniz zaman sorgulayın:

curl https://onprem.example.com/account/api/v1/onprem/cert-status \
  -H "Cookie: <admin session>"

Yüklenen sertifikanın subscriptionId, planCode, validUntil, daysUntilExpiry bilgilerini ve autoRenew bloğunu (enabled, lastSuccessAt, lastErrorAt, lastError) döndürür. Eski lastSuccessAt veya null olmayan lastError için uyarı vermek üzere bunu izleme yığınınıza bağlayın.

Yedekleme ve denetim için, yerinde yönetici GET /onprem/cert-current aracılığıyla şu anda yüklü olan imzalı sertifikayı da indirebilir (yükseltilmiş oturum gerektirir).

Yetkilendirme sertifikası env var referansı

DeğişkenZorunlu?Amaç
ON_PREMISE_MODEEvetYerinde rota alt kümesini etkinleştirmek için true olarak ayarlayın
ON_PREMISE_PRIVATE_KEYEvetYetkilendirilmiş imzalama için Base64 PKCS8 Ed25519 özel anahtarı
ON_PREMISE_PUBLIC_KEYEvetBase64 SPKI Ed25519 genel anahtarı (sertifikanın delegatedPublicKey’iyle eşleşmeli)
DELEGATION_CERT_PATHBunlardan biriİmzalı sertifika JSON’una dosya sistemi yolu
DELEGATION_CERT_BASE64Bunlardan biriBase64 kodlu sertifika JSON’u (dosya yoluna alternatif)
UPSTREAM_PUBLIC_KEYUPSTREAM_API_KEY ayarlanmışsa veya /onprem/cert-upload’ın çalışması için gerekliYukarı akış ana genel anahtarının Base64 SPKI’si. Eksikse önyüklemede hızla başarısız olur.
UPSTREAM_URLOtomatik yenileme içinYukarı akış hesap sunucusu temel URL’si, örn. https://www.rediacc.com
UPSTREAM_API_KEYOtomatik yenileme içindelegation:renew kapsamlı api tokeni. Portal aracılığıyla oluşturun - bkz. Adım 4.
AUTO_RENEW_INTERVAL_HOURSİsteğe bağlıVarsayılan 24. Sertifikanın yenilenmesi gerekip gerekmediğini ne sıklıkla kontrol edeceği.
RENEW_THRESHOLD_DAYSİsteğe bağlıVarsayılan 14. Uyarlanabilir 1/3 geçerlilik eşiği için tavan görevi görür.

Tehdit modeli özeti

Yetkilendirme sertifikası modeli şunlara karşı koruma sağlar:

  • Sahte lisanslar: yerinde sunucu yalnızca plan limitleri dahilinde imzalayabilir; renet sertifikanın sınırları dışındaki her şeyi reddeder.
  • Dağıtımlar arası sertifika paylaşımı: zincir ayrışması yenilemede tespit edilir (CHAIN_FORK_DETECTED döndürür).
  • Çoklu kurulum yoluyla kota aşımı: yukarı akışta tek etkin (abonelik başına bir sertifika) ile uygulanır.
  • Zincir geri alımı: renet abonelik başına görülen en yüksek sırayı saklar ve daha düşük sıralı herhangi bir blobu reddeder.
  • Ele geçirilmiş yukarı akış kimlik bilgileri: başlangıç delegation:renew tokeni yalnızca özel portal uç noktası aracılığıyla oluşturulabilir ve yönetici onayı gerektirir. Token yalnızca yenileme izni verir - başka hiçbir kaynağı okuyamaz veya değiştiremez.
  • Manifestolara tekrar oynatma saldırıları: 7 günden eski manifestolar reddedilir.

Şunlara karşı koruma sağlamaz:

  • Ele geçirilmiş yerinde özel anahtar: sızdırılan özel anahtar, sertifikanın validUntil tarihine kadar bir saldırganın lisans imzalamasına olanak tanır. Azaltma: anahtar çiftini döndürün (eski sertifikayı iptal edin ve yeni anahtarla yeni sertifika oluşturun) ve eski anahtarla imzalanan tüm lisansları şüpheli olarak değerlendirin.
  • Ele geçirilmiş yukarı akış ana anahtarı: bu güven köküdür. Rotasyon prosedürleri burada kapsam dışıdır.