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:
- CLI ikili dosyasını sunucunuzun
/releases/uç noktasından indirir - Güncelleme kanalını keşfetmek için
/account/api/v1/.well-known/server-infoadresini sorgular - Sunucu URL’nizi, güncelleme kanalınızı ve şifreleme anahtarlarınızı içeren
server.jsondosyasını yazar - Gelecekteki güncellemeler için
rdc updatekomutunu 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şken | Kullanan | Amaç |
|---|---|---|
REDIACC_SERVER_URL | Kurulum betiği | Hesap sunucusu URL’si. Kanalı ve şifreleme anahtarlarını otomatik keşfeder. |
REDIACC_RELEASES_URL | Kurulum betiği, CLI güncelleyici | CLI ikili dosyaları için özel sürüm uç noktası. Varsayılan: https://releases.rediacc.com |
REDIACC_CHANNEL | Kurulum betiği | Güncelleme kanalını geçersiz kılar. Ayarlanmamışsa sunucudan otomatik algılanır. |
REDIACC_ACCOUNT_SERVER | CLI çalışma zamanı | Tüm CLI komutları için hesap sunucusu URL’sini geçersiz kılar. |
RDC_UPDATE_CHANNEL | CLI ç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ı önerilirENVIRONMENT=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:
- Yerinde yönetici portalından yenileme isteği indirin. Yerinde sistem kökü olarak
GET /onprem/renewal-requestadresine 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. - 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.
- 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. - Yeni sertifikayı yukarı akış portalından
.jsondosyası olarak indirin. - Sertifikayı yerinde sunucuya geri aktarın.
- 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ıngenesisSequence’ı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ı
| Kod | Neden | Düzeltme |
|---|---|---|
NO_ACTIVE_CERT | Yukarı akışın bu abonelik için aktif sertifikası yok | Yenileme yerine oluşturma akışı ile yeni sertifika düzenleyin |
DELEGATED_KEY_MISMATCH | Manifestonun delegatedPublicKey’i etkin sertifikadan farklı | Manifesto farklı bir yerinde kurulumdan tekrar oynatılmış olabilir |
MANIFEST_SIGNATURE_INVALID | İmza yetkilendirilmiş genel anahtara karşı doğrulanamıyor | Manifesto transit sırasında kurcalandı veya farklı bir yerinde sunucuda oluşturuldu |
MANIFEST_EXPIRED | Manifesto 7 günden daha eski | Yerinde sunucudan yeni yenileme isteği oluşturun |
Sertifika yükleme hata modları
| Kod | Neden | Düzeltme |
|---|---|---|
CHAIN_HEAD_BEHIND | Yeni sertifikanın genesisSequence’ı yerel zincir başının önünde | Yukarı akış çatallanmış bir zincirde - araştırın |
CHAIN_FORK_ON_UPLOAD | Sertifikanın genesisSequence’ındaki zincir hash’i yerel deftere uymuyor | Yerel zincir yukarı akıştan ayrıştı - araştırın |
Signature verification failed | Sertifika 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şken | Zorunlu? | Amaç |
|---|---|---|
ON_PREMISE_MODE | Evet | Yerinde rota alt kümesini etkinleştirmek için true olarak ayarlayın |
ON_PREMISE_PRIVATE_KEY | Evet | Yetkilendirilmiş imzalama için Base64 PKCS8 Ed25519 özel anahtarı |
ON_PREMISE_PUBLIC_KEY | Evet | Base64 SPKI Ed25519 genel anahtarı (sertifikanın delegatedPublicKey’iyle eşleşmeli) |
DELEGATION_CERT_PATH | Bunlardan biri | İmzalı sertifika JSON’una dosya sistemi yolu |
DELEGATION_CERT_BASE64 | Bunlardan biri | Base64 kodlu sertifika JSON’u (dosya yoluna alternatif) |
UPSTREAM_PUBLIC_KEY | UPSTREAM_API_KEY ayarlanmışsa veya /onprem/cert-upload’ın çalışması için gerekli | Yukarı akış ana genel anahtarının Base64 SPKI’si. Eksikse önyüklemede hızla başarısız olur. |
UPSTREAM_URL | Otomatik yenileme için | Yukarı akış hesap sunucusu temel URL’si, örn. https://www.rediacc.com |
UPSTREAM_API_KEY | Otomatik yenileme için | delegation: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_DETECTEDdö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:renewtokeni 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
validUntiltarihine 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.