---
title: "Drivers — Certificates for Laravel | Roundly"
description: "The five shipped drivers — kubernetes, acme, filesystem, null and array — what each can do and how to pick one per call."
url: https://roundly-consulting.com/open-source/docs/certificates-for-laravel/drivers
language: en
---

[All packages](https://roundly-consulting.com/open-source.md)

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

# Drivers

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:

```php
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
```

| Driver | Class | Multi-domain | Live status | Use it for |
| --- | --- | --- | --- | --- |
| `kubernetes` | KubernetesProvider | yes | yes | cert-manager in a cluster — the default. |
| `acme` | AcmeProvider | yes | yes | Real certificates from Let’s Encrypt or any ACME v2 CA. |
| `filesystem` | LocalFilesystemProvider | yes | yes | PEM files on a Storage disk; self-signed for development. |
| `null` | NullProvider | no | no | A no-op where no certificate backend exists. |
| `array` | ArrayProvider | yes | yes | In-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](https://roundly-consulting.com/support-us.md)

By donating, you agree to our [donation terms](https://roundly-consulting.com/donation-terms.md).

[Support our open source work (opens in a new tab)](https://donate.stripe.com/dRmeVe8FX5PF1Qd9pXcEw00) [Join us on Patreon (opens in a new tab)](https://www.patreon.com/cw/roundly)

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

[Get a quote in 48 hours](https://roundly-consulting.com/contact.md) [Browse all packages](https://roundly-consulting.com/open-source/docs/certificates-for-laravel.md)
