← All projects

pfx-chain-tool

● Python ★ 0 ⑂ 0 Last updated: September 8, 2026

PFX Zincir Aracı

SRE/DevOps ekiplerinin wildcard TLS .pfx / .p12 dosyalarını, Kubernetes Secret data alanına konacak üç sertifikalık CRT ve şifresiz PKCS#8 KEY Base64 değerlerine dönüştürmesi için tarayıcıdan kullanılan bir web uygulamasıdır.

Uygulama adı: PFX Zincir Aracı.

Ne işe yarar?

  • PFX/P12 dosyasını şifresiyle (veya boş şifre alanındaki sabit aday listesiyle) açar.
  • Özel anahtarla eşleşen sunucu sertifikasını bulur, imza doğrulayarak zinciri sıralar.
  • Yönetilen CA deposuna göre OpenSSL verify ile yolu doğrular.
  • Başarılı çıktıda tam üç benzersiz X.509 sertifikası üretir; aksi halde dışa aktarma alanlarını açmaz.
  • CRT ve KEY için satır kaydırmasız Base64 ve indirilebilir PEM sağlar.

Bu üç blok kuralı bir kurumsal çıktı politikasıdır. TLS’in her durumda üç sertifika gerektirdiği anlamına gelmez; iki sertifikalık bir sunum genel olarak geçerli olabilir.

Sentetik örnek

Doğru bir CRT PEM’i çözüldüğünde tam üç blok görünür:

-----BEGIN CERTIFICATE-----
... sunucu / alan adı sertifikası ...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
... ara CA ...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
... kök CA veya ikinci ara CA ...
-----END CERTIFICATE-----

İkinci ara CA senaryosunda yönetilen depodaki kök CRT dosyasına yazılmaz; arayüzde “CRT dışındaki güven kökü” olarak gösterilir.

Hızlı başlangıç (macOS)

Ön koşullar: Python 3.12+, uv, Node.js 22+, OpenSSL 3 CLI.

# 1) Depo kökünde, backend bağımlılıkları
cd backend
uv sync --group dev

# 2) Yönetilen güven deposu (örnek; kendi köklerinizi koyun)
mkdir -p ../tmp
# CA_BUNDLE_PATH için PEM kökleri içeren bir dosya hazırlayın

# 3) API (ayrı terminal, backend dizininde)
CA_BUNDLE_PATH=/absolute/path/to/ca-bundle.pem uv run uvicorn app.main:app --reload --port 8080

# 4) Arayüz (ayrı terminal, frontend dizininde)
cd ../frontend
npm ci
npm run dev

Tarayıcı: http://127.0.0.1:5173 (Vite, /api isteklerini 8080’e vekiller).

Docker / Linux GHCR: docs/deployment.md (doğrulanmış komut: port 10000, MAX_CERTIFICATES=512, sistem CA bundle).

Dokümantasyon

Belge Konu
docs/architecture.md Modüller, veri akışı, üç sertifika politikası
docs/development.md Mac kurulumu, lint, test
docs/usage.md PFX yükleme, kopyalama, indirme, infra-secret
docs/deployment.md Docker, GHCR, Linux Compose, HTTPS
docs/security.md Sırlar, Base64, güven deposu, yapılmayan kontroller
docs/troubleshooting.md Şifre, legacy PFX, eksik CA, pano, platform

Bilinçli sınırlar

  • İlk sürüm tek özel anahtar bekler; birden fazla anahtarlı PFX desteklenmez.
  • AIA CA Issuers üzerinden ara/kök sertifika indirme vardır; OCSP/CRL yapılmaz. AIA’dan gelen kök çapa sayılmaz.
  • Canlı TLS sunumu veya tarayıcı kök deposu doğrulanmaz.
  • Yeni kullanıcı hesabı sistemi yoktur; erişim reverse proxy / VPN katmanındadır.

Lisans ve referanslar

Uygulama, PyCA cryptography PKCS#12, OpenSSL verify ve RFC 8446 Certificate listesi belgelerine dayanır.