NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky
Certificates for Laravel

Fasáda Certificates

Odporúčaným vstupným bodom je RoundlyConsulting\Certificates\Facades\Certificates. Jej koreňom je CertificatesManager, singleton v kontajneri, a každá metóda meniaca stav prechádza cez akciu — fasáda, injektovaný manager aj Certificates::fake() tak vidia tie isté volania. Prehľad rozhrania:

use RoundlyConsulting\Certificates\DataTransferObjects\IssueCertificateData;
use RoundlyConsulting\Certificates\Facades\Certificates;

// Issue
Certificates::issueIfMissing('app.example.com');
Certificates::issue(IssueCertificateData::make('app.example.com'));

// Lifecycle — a registry Certificate or a domain (its most recent row)
Certificates::renew('app.example.com');
Certificates::renewLater('app.example.com');
Certificates::revoke($certificate, 'key compromise');
Certificates::expire('app.example.com');

// The whole registry
Certificates::expiring(14);            // Collection<int, Certificate>, soonest first
Certificates::renewDue();              // RenewalReport
Certificates::sync('kubernetes');      // int rows written
Certificates::prune(30);               // int rows soft-deleted

// One domain — fluent issuance, reads and the same lifecycle verbs
Certificates::for('app.example.com')->using('acme')->issue();
Certificates::for('app.example.com')->renew();

// Reads, drivers and scoping
Certificates::find('app.example.com');
Certificates::statusReport('app.example.com', fresh: true);
Certificates::driver('acme');
Certificates::extend('vault', fn () => new VaultCertificateProvider());
Certificates::on('tenant')->renewDue();

Vystavenie a životný cyklus

Každé sloveso životného cyklu prijíma Certificate z registra alebo doménu, ktorá sa preloží na jej najnovší záznam na naviazanom pripojení. Neznáma doména alebo stav, z ktorého prechod nie je možný (napríklad obnova odvolaného certifikátu), vyhodí CertificateException — aj pri renewLater(), ktoré stav overí skôr, než čokoľvek zaradí do fronty:

MetódaVraciaÚčel
issue(IssueCertificateData $data)CertificateVystaví a zaznamená certifikát z DTO; kým ten istý certifikát vystavuje iný proces, vyhodí ProvisioningInProgressException.
issueIfMissing(string $domain)CertificateAktívny záznam z registra, alebo nové vystavenie.
generate(string $domain)boolVystavenie — s registrom celý životný cyklus, bez neho priamo cez poskytovateľa; false, kým je zámok certifikátu obsadený.
renew(Certificate|string $certificate)CertificateIssued/Renewed/Failed → Renewed, hneď a cez vlastný driver certifikátu.
renewLater(Certificate|string $certificate)CertificateStav overí hneď, potom zaradí RenewCertificateJob do fronty renewal.queue.
renewDue(?int $thresholdDays = null, bool $queue = false)RenewalReportObnoví alebo zaradí do fronty všetko, čo expiruje v rámci prahu (vrátane zlyhaných záznamov); jedno zlyhanie nezastaví ostatné.
revoke(Certificate|string $certificate, ?string $reason = null)CertificateIssued/Renewed → Revoked, spustí CertificateRevoked. Len v registri — autorita sa nekontaktuje.
expire(Certificate|string $certificate)CertificateIssued/Renewed → Expired, spustí CertificateExpired.
sync(?string $driver = null)intPrenesie živé certifikáty drivera do registra; vráti počet zapísaných záznamov.
prune(int $days = 30, CertificateStatus|string|null $status = null)intSoft-deletne staré záznamy v stave expired, failed a revoked — alebo presne $status.

Rukoväť domény, čítanie a drivery

MetódaVraciaÚčel
for(string|array $domain)CertificateBuilderRukoväť domény — fluentné vystavenie, čítanie a slovesá životného cyklu.
find(string $domain, ?string $driver = null)?CertificatePosledný záznam registra pre doménu.
status(string $domain)?CertificateStatusStav posledného záznamu v registri.
statusReport(string $domain, ?string $driver = null, bool $fresh = false)?CertificateStatusReportŽivý stav od poskytovateľa s podporou cache.
expiring(?int $days = null, ?string $driver = null)Collection<Certificate>Záznamy Issued, Renewed a Failed s expiráciou do $days dní (predvolene renewal.threshold_days), najbližšie prvé.
get()Collection<RemoteCertificate>Certifikáty, ktoré spravuje predvolený driver.
exists(string $domain)boolKontrola u poskytovateľa predvoleného drivera.
monitorExpiry(Certificate $certificate, ?Model $notifiable = null)PendingScheduledCheckNaplánuje monitor expirácie v alerts.
driver(?string $name = null)CertificateProviderVráti poskytovateľa (pri null predvoleného).
extend(string $driver, Closure $callback)CertificatesManagerZaregistruje vlastný driver v CertificateProviderManager.
on(?string $connection)CertificatesManagerKlon naviazaný na pripojenie pre registre tenantov.
certificateName(string $domain)stringDeterministický názov certifikátu malými písmenami vo formáte DNS-1123 (*. sa zmení na wildcard-, najviac 253 znakov).
fake()CertificatesFakeNahradí manager zaznamenávajúcim fake v pamäti (pozri Testovanie).

Certificates::for($domain) je rukoväť pre jednu doménu (alebo SAN skupinu vedenú prvou doménou): fluentné vystavenie, čítanie a renew(), renewLater(), revoke() a expire() nad záznamom tejto domény — pozri Fluentný builder. S using($driver) sa nikdy nedotkne záznamu iného drivera.

Po zapnutí Certificates::fake() fasáda sprístupní aj metódy seed() a failRenewalOf() a všetky asercie assert* (pozri Testovanie). Manager je makrovateľný, takže vaše vlastné metódy sa objavia aj na fasáde (pozri Rozšírenie).

Prejavte lásku k open source

Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.

Ďalšie spôsoby podpory vrátane kryptomien

Odoslaním daru súhlasíte s našimi podmienkami prijímania darov.

Chcete to zabudovať do svojho produktu?

Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.