---
title: "Register certifikátov — Certificates for Laravel | Roundly"
description: "Eloquent model Certificate — stĺpce, query scopes, pomocníci pre expiráciu, zmeny stavu cez fasádu, vymeniteľný model a schéma."
url: https://roundly-consulting.com/sk/open-source/navody/certificates-for-laravel/register-certifikatov
language: sk
---

[Všetky balíky](https://roundly-consulting.com/sk/open-source.md)

[Certificates for Laravel](https://roundly-consulting.com/sk/open-source/navody/certificates-for-laravel.md)

# Register certifikátov

Každý certifikát, ktorý aplikácia vystaví, sa zaznamená ako RoundlyConsulting\\Certificates\\Models\\Certificate — bežný Eloquent model so soft deletes a factory. Otázka „ktorým certifikátom vyprší platnosť do 14 dní?“ je tak obyčajný dotaz:

```php
use RoundlyConsulting\Certificates\Models\Certificate;

Certificate::query()->active()->get();
Certificate::query()->expiring(14)->get();   // expiring within 14 days or already past (default: config threshold)
Certificate::query()->expired()->get();
Certificate::query()->forDomain('app.example.com')->forDriver('kubernetes')->get();
Certificate::query()->coveringDomain('www.example.com')->first();
```

## Query scopes

| Scope | Vyhovuje |
| --- | --- |
| `active()` | Issued alebo Renewed s expires\_at null alebo v budúcnosti. |
| `expired()` | Stav Expired alebo expires\_at v minulosti. |
| `expiring(?int $days = null)` | Issued, Renewed alebo Failed — aj uviaznutý záznam v Renewing — s expiráciou do $days dní (predvolene renewal.threshold\_days) alebo už po expirácii: zlyhaná obnova zostáva na rade pred expiráciou aj po nej. |
| `forDomain(string $domain)` | Primárna doména sa rovná $domain bez ohľadu na veľkosť písmen. |
| `forDriver(string $driver)` | Driver sa rovná $driver. |
| `coveringDomain(string $domain)` | Primárna doména sa rovná $domain alebo ju obsahuje zoznam SAN domén v domains (bez ohľadu na veľkosť písmen). |

## Pomocníci a životný cyklus

```php
$certificate->isActive();          // active status and not past expires_at
$certificate->isExpired();         // Expired status, or expires_at in the past
$certificate->expiresWithin(14);   // bool
$certificate->daysUntilExpiry();   // int|null — negative once expired
$certificate->certifiable;         // the owning model, if any

// State changes go through the facade — guarded, evented and seen by the fake.
Certificates::revoke($certificate, 'key compromise'); // Revoked + CertificateRevoked
Certificates::expire($certificate);                   // Expired + CertificateExpired
Certificates::prune(30);                              // soft-delete stale expired/failed/revoked rows → int
```

Stav certifikátu meňte cez fasádu: Certificates::renew(), revoke() a expire() strážia prechod stavu, spustia udalosť (CertificateRevoked a CertificateExpired môžu otvoriť upozornenia) a Certificates::fake() ich zaznamená. revoke() odvolanie zapíše len do registra — certifikačnú autoritu ani klaster nekontaktuje — a certificates:sync odvolaný záznam nikdy neobnoví, vyčistený ani nevyčistený; to dokáže len nové issue().

Metódy modelu markIssued(), markRenewed(), markFailed(), markRevoked() a markExpired() sú interné: surové nastavenie stavu, ktoré používajú akcie, bez kontroly prechodu a mimo dosahu fake. Z kódu aplikácie ich nevolajte.

## Stĺpce

| Stĺpec | Typ | Poznámka |
| --- | --- | --- |
| `name` | string | Odvodený názov certifikátu; indexovaný. |
| `domain` | string | Primárna doména uložená malými písmenami; indexovaná. |
| `domains` | json, nullable | Celý zoznam SAN domén, ak ste žiadali viac ako jednu doménu. |
| `driver` | string | Driver, ktorý certifikát vystavil (predvolene kubernetes); indexovaný. |
| `status` | CertificateStatus | Pretypovaný enum (predvolene pending); indexovaný. |
| `issuer` | ?string | Vydavateľ, ktorého hlási poskytovateľ pri vystavení, obnove alebo certificates:sync. |
| `serial / fingerprint` | ?string | Sériové číslo a odtlačok od poskytovateľa; nezmenený odtlačok znamená neúspešnú obnovu. |
| `certifiable_type / certifiable_id` | nullable morph | Vlastník; typ kľúča podľa key\_type. |
| `issued_at` | ?CarbonImmutable | Nastaví sa pri vystavení. |
| `expires_at` | ?CarbonImmutable | Expirácia; indexovaná. |
| `last_renewed_at` | ?CarbonImmutable | Nastaví sa pri obnove. |
| `last_error` | ?string | Dôvod zlyhania. |
| `meta` | ?array | JSON metadáta z meta(). |
| `created_at / updated_at / deleted_at` | timestamps | Soft deletes. |

(driver, name) je unikátne vrátane vyčistených záznamov — opätovné vystavenie vyčistenej domény, alebo sync, ktorý ju stále nájde, preto tento záznam obnoví ako novú registráciu namiesto vloženia duplikátu (vyčistený odvolaný záznam sync nechá vyčistený). Dve domény, ktoré splynú do jedného názvu (a.b.com s a-b.com), záznam nikdy nezdieľajú: zostane doméne, ktorá sa zaregistrovala prvá. Morph certifiable používa key\_type — pred migráciou ho nastavte na uuid alebo ulid, ak vaše modely vlastníkov používajú UUID alebo ULID kľúče. table a connection sa berú z konfigurácie.

## Vlastný model

Nasmerujte certificates.model na podtriedu, ak chcete pridať vlastné scopes, vzťahy či casty. Manager, vystavenie, obnovy cez frontu, HasCertificates, kontrola expirácie, fake aj konzolové príkazy použijú nakonfigurovanú triedu. Bez nastavenia alebo pri prázdnej hodnote sa použije dodávaný Certificate; čokoľvek iné musí byť týmto modelom alebo jeho podtriedou — trieda, ktorá ho nerozširuje alebo neexistuje, vyhodí InvalidConfigurationException s názvom certificates.model a nikdy sa potichu nenahradí:

```php
namespace App\Models;

use RoundlyConsulting\Certificates\Models\Certificate as BaseCertificate;

class Certificate extends BaseCertificate
{
    // your own scopes, relations and casts
}

// config/certificates.php
'model' => App\Models\Certificate::class,
```

## 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](https://roundly-consulting.com/sk/podporte-nas.md)

Odoslaním daru súhlasíte s našimi [podmienkami prijímania darov](https://roundly-consulting.com/sk/podmienky-darov.md).

[Podporte našu open-source prácu (otvorí sa v novej karte)](https://donate.stripe.com/dRmeVe8FX5PF1Qd9pXcEw00) [Pridajte sa k nám na Patreone (otvorí sa v novej karte)](https://www.patreon.com/cw/roundly)

## 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.

[Ponuka do 48 hodín](https://roundly-consulting.com/sk/kontakt.md) [Prezrieť všetky balíky](https://roundly-consulting.com/sk/open-source/navody/certificates-for-laravel.md)
