NewWe open-sourced 50+ Laravel packages
Custom AI apps, agents and automation — Roundly ConsultingRoundly
All packages

Providers are resolved by CertificateProviderManager, a standard Laravel manager behind Certificates::driver() and Certificates::extend(). config('certificates.default') picks the driver when none is named; using() on the builder or a driver argument overrides it per call:

use RoundlyConsulting\Certificates\Facades\Certificates;

// config/certificates.php → 'default' => 'acme', or per call:
Certificates::for('app.example.com')->using('acme')->issue();

Certificates::driver();          // the default provider (CertificateProvider)
Certificates::driver('null');    // a specific provider instance
Certificates::get();             // Collection<int, RemoteCertificate> from the default provider

certificates()->driver('acme');  // the same through the helper, which returns CertificatesManager
DriverClassMulti-domainLive statusUse it for
kubernetesKubernetesProvideryesyescert-manager in a cluster — the default.
acmeAcmeProvideryesyesReal certificates from Let’s Encrypt or any ACME v2 CA.
filesystemLocalFilesystemProvideryesyesPEM files on a Storage disk; self-signed for development.
nullNullProvidernonoA no-op where no certificate backend exists.
arrayArrayProvideryesyesIn-memory backend for tests.

Multi-domain means the driver implements ProvisionsMultipleDomains and receives the full SAN list; others get the primary domain only. Live status means it implements ReportsCertificateStatus — the registry reads expiry from it, and statusReport() returns null for drivers without it.

Certificates::driver() — and provider() on CertificateProviderManager — throw UnknownProviderException for an unknown name. The CertificateProvider contract is also bound in the container to the default driver.

The null driver provisions nothing — with the registry present, its rows get the fallback expiry of validForDays (default 90). Use it where no backend exists; in tests reach for array or the fake.

Show your open-source love

This package is free and MIT-licensed. If it saves you time, a one-off donation or a Patreon membership keeps it maintained, tested and documented.

More ways to support, including crypto

By donating, you agree to our donation terms.

Want this built into your product?

We integrate our packages into custom Laravel and AI builds. Tell us what you're working on and we'll reply within 48 hours.