lisans· Altyapı
Lisans paneli ayrı sunucudadır. WiseCP çekirdeğine kurulmaz. Satılacak her yeni modül aynı kapıyı kullanır. Daha önce yayımlanmış modüllere bu kapı eklenmez.
Panele tarayıcıdan https:// ve sunucu adresi ile girilir. İlk hesap, sunucudaki kurulum kullanıcısıdır. Parola bu dosyada durmaz.
Kayıt
Bir lisans dört bilgi taşır: modül kodu, panelin dış IP adresi, alan adı, lisans kullanıcısı. IP, modülün gövdede yazdığı adres değildir. Doğrulama isteğinin geldiği adrestir.
İlk başarılı doğrulama kaydı o sunucuya kilitler. Modül dosyasını başka makineye kopyalamak yetmez. Sunucu değişirse kayıttaki Bağı sıfırla yeni kuruluma izin verir. Bilet beş dakika yaşar. Her işlem yeni bilet ister. Kopyalanan bilet geçmez.
Duraklatılan veya silinen lisans yeni sipariş, yükseltme ve format açmaz. Çalışan sanal sunucuyu silmez.
Doğrulama
Modül POST /api/claim ile yalnız modül kodunu ve kendi alan adını gönderir. İsteğin geldiği IP, kayıtlı panel IP'si ile aynıysa cevapta kullanıcı ve anahtar vardır. Modül bunları yerel kayda yazar. Eşleşme yoksa yerel kayıt silinir. Anahtar, başka bir IP'den sorulursa dönmez.
Modül POST /api/check çağırır. Eşleşme varsa cevap, yalnızca bu sunucunun özel anahtarıyla imzalanmış bir bilettir. Özel anahtar data/sign.key içindedir ve pakete konmaz. Modül, gömülü açık anahtarla imzayı doğrulamadan bileti kabul etmez. ok: true yazmak veya cevabı elle değiştirmek yetmez.
Red ayrıntısı yalnızca Denetim ekranındadır.
Genel sorgu ve bildirim
Site üzerindeki /lisans-dogrula sayfası lisans anahtarı istemez. İki açık uç vardır.
POST /api/lookup gövdesi {"q":"alan-adi-veya-ip"}. Cevapta ürün adı, alan adı, IP, durum ve Süresiz yazar. Müşteri adı, anahtar ve makine dönmez. Kayıt yoksa found: false olur, satır Bildirimler'e yazılır ve yöneticiye posta gider (aynı hedefe günde bir).
POST /api/report gövdesi {"target":"...","email":"...","details":"..."}. Her bildirim kayda geçer. Lisans yoksa yöneticiye posta gider.
İzinli kökenler: trecloud.com.tr, www.trecloud.com.tr, dcmodules.net. Dakikada 20 sorgu. Posta adresi data/notify.json içindeki email alanıdır; dosya yoksa info@treteknoloji.com kullanılır. Örnek dosya data/notify.json.example.
Kurulu bir kopya POST /api/check ile “Kayıt eşleşmedi” alırsa aynı bildirim yolu çalışır.
Panelde Bildirimler menüsü bu kayıtları gösterir.
Satış paketinde siparişi yapan dosya ionCube ile kapatılır. Kapı o dosyanın içindedir. Yerine konan kısa bir dosya imzayı üretemez.
Katalog kalıpları
Kalıplar data/images/<ad>/ altında durur: bir .ovf, bir .vmdk. Kalıp eklendikten veya dosyası değiştirildikten sonra özetler mutlaka üretilir:
cd /var/www/lisans && sudo -u www-data php bin/image-sums.phpBetik her kalıbın .sums.json dosyasına SHA-1 ve SHA-256 yazar; boyutu ve tarihi değişmeyen dosyayı atlar. Lisans bileti bu özetleri taşır. TreHypervisor 1.4.1 ve sonrası özeti olmayan kalıbı indirmez; vCenter diski inerken bu özetle denetler. Özet üretilmeden kalıp katalogda görünür ama çekilemez.
Yönetim API'si
WiseCP'deki TreLisans modülü lisansları bu API ile açar. Adres POST /api/admin/<işlem>, gövde JSON.
Anahtarlar data/admin-api.json içindedir (sahibi www-data, izin 640). Her anahtarın kimliği, 64 karakterlik gizli değeri ve izinli IP listesi vardır. Gizli değer bu dosyaya yazılmaz.
Her istek dört başlık taşır: X-Tre-Id, X-Tre-Time (unix saniye), X-Tre-Nonce (32 onaltılık), X-Tre-Sign. İmza hmac_sha256(gizli, kimlik \n zaman \n nonce \n yol \n sha256(gövde)) değerinin onaltılık hâlidir. Saat farkı 300 saniyeyi geçemez. Aynı nonce ikinci kez kabul edilmez. İstek izinli IP'den gelmelidir. Uymayan istek 403 “Yetkisiz istek” alır.
| İşlem | Gövde | Ne yapar |
|---|---|---|
ping | boş | Sunucudaki modül kodlarını döner |
license/create | ref, module, customer, ip, domain, username, note | Lisans açar. Aynı ref ile ikinci çağrı mevcut kaydı döner |
license/get | id | Kaydı döner |
license/update | id ve değişen alanlar | IP veya alan adı değişirse kurulum bağı sıfırlanır. Modül kodu değişmez |
license/status | id, status (active / paused) | Duraklatır veya açar |
license/reset | id | Kurulum bağını sıfırlar |
license/delete | id | Kaydı siler |
Cevapta license alanı: id, ref, module, customer, ip, domain, username, key, status, bound, bound_at, created_at, last_check. Hatalar 422 ve {"ok":false,"error":"..."} döner.
Panel IP genel bir adres olmalıdır (özel ve ayrılmış aralıklar reddedilir). Aynı modülde aynı alan adı ve IP'ye ikinci aktif lisans açılmaz. Her API işlemi Denetim ekranına api:<kimlik> kaynağıyla yazılır. Bu satırlar istek sınırına sayılmaz.