# CertManagerExtensions

- Kind: `class`
- Package: [Aspire.Hosting.Kubernetes](/reference/api/csharp/aspire.hosting.kubernetes.md)
- Version: `13.4.0-preview.1.26281.18`
- Namespace: `Aspire.Hosting`
- Target framework: `net8.0`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/becb48e2d61099e35ae336d527d3875e928d6594/src/Aspire.Hosting.Kubernetes/CertManagerExtensions.cs)

Provides extension methods for installing cert-manager into a Kubernetes environment and declaring `ClusterIssuer` resources against it.

## Definition

```csharp
namespace Aspire.Hosting;

public static class CertManagerExtensions
{
    // ...
}
```

## Methods

- [AddCertManager(IResourceBuilder<KubernetesEnvironmentResource>, string, string?)](/reference/api/csharp/aspire.hosting.kubernetes/certmanagerextensions/methods.md#addcertmanager-iresourcebuilder-kubernetesenvironmentresource-string-string) : `IResourceBuilder<CertManagerResource>` `extension` `ats export` -- Installs cert-manager into the Kubernetes environment and returns a typed [CertManagerResource](/reference/api/csharp/aspire.hosting.kubernetes/certmanagerresource.md) that can host issuer resources.
- [AddIssuer(IResourceBuilder<CertManagerResource>, string)](/reference/api/csharp/aspire.hosting.kubernetes/certmanagerextensions/methods.md#addissuer-iresourcebuilder-certmanagerresource-string) : `IResourceBuilder<CertManagerIssuerResource>` `extension` `ats export` -- Adds a cert-manager `ClusterIssuer` to this cert-manager installation.
- [WithAcmeServer(IResourceBuilder<CertManagerIssuerResource>, string, string)](/reference/api/csharp/aspire.hosting.kubernetes/certmanagerextensions/methods.md#withacmeserver-iresourcebuilder-certmanagerissuerresource-string-string) : `IResourceBuilder<CertManagerIssuerResource>` `extension` `ats export` -- Configures the issuer to use a custom ACME directory endpoint (e.g., a private ACME server such as ZeroSSL or step-ca).
- [WithAcmeServer(IResourceBuilder<CertManagerIssuerResource>, string, IResourceBuilder<ParameterResource>)](/reference/api/csharp/aspire.hosting.kubernetes/certmanagerextensions/methods.md#withacmeserver-iresourcebuilder-certmanagerissuerresource-string-iresourcebuilder-parameterresource) : `IResourceBuilder<CertManagerIssuerResource>` `extension` `ats export` -- Configures the issuer to use a custom ACME directory endpoint with a parameterized email.
- [WithHttp01Solver(IResourceBuilder<CertManagerIssuerResource>)](/reference/api/csharp/aspire.hosting.kubernetes/certmanagerextensions/methods.md#withhttp01solver-iresourcebuilder-certmanagerissuerresource) : `IResourceBuilder<CertManagerIssuerResource>` `extension` `ats export` -- Adds an HTTP-01 ACME challenge solver to the issuer. cert-manager will satisfy the challenge by provisioning a temporary HTTP route at `/.well-known/acme-challenge/{token}` on the same hostname being validated. This requires the hostname to be publicly reachable on port 80.
- [WithLetsEncryptProduction(IResourceBuilder<CertManagerIssuerResource>, string)](/reference/api/csharp/aspire.hosting.kubernetes/certmanagerextensions/methods.md#withletsencryptproduction-iresourcebuilder-certmanagerissuerresource-string) : `IResourceBuilder<CertManagerIssuerResource>` `extension` `ats export` -- Configures the issuer to use the Let's Encrypt production ACME endpoint.
- [WithLetsEncryptProduction(IResourceBuilder<CertManagerIssuerResource>, IResourceBuilder<ParameterResource>)](/reference/api/csharp/aspire.hosting.kubernetes/certmanagerextensions/methods.md#withletsencryptproduction-iresourcebuilder-certmanagerissuerresource-iresourcebuilder-parameterresource) : `IResourceBuilder<CertManagerIssuerResource>` `extension` `ats export` -- Configures the issuer to use the Let's Encrypt production ACME endpoint, with the contact email supplied via a parameter resolved at deploy time.
- [WithLetsEncryptStaging(IResourceBuilder<CertManagerIssuerResource>, string)](/reference/api/csharp/aspire.hosting.kubernetes/certmanagerextensions/methods.md#withletsencryptstaging-iresourcebuilder-certmanagerissuerresource-string) : `IResourceBuilder<CertManagerIssuerResource>` `extension` `ats export` -- Configures the issuer to use the Let's Encrypt staging ACME endpoint. Certificates issued from staging are not trusted by browsers, but the endpoint has much higher rate limits, making it the right choice for development and CI workflows.
- [WithLetsEncryptStaging(IResourceBuilder<CertManagerIssuerResource>, IResourceBuilder<ParameterResource>)](/reference/api/csharp/aspire.hosting.kubernetes/certmanagerextensions/methods.md#withletsencryptstaging-iresourcebuilder-certmanagerissuerresource-iresourcebuilder-parameterresource) : `IResourceBuilder<CertManagerIssuerResource>` `extension` `ats export` -- Configures the issuer to use the Let's Encrypt staging ACME endpoint, with the contact email supplied via a parameter resolved at deploy time.
- [WithTls(IResourceBuilder<KubernetesGatewayResource>, IResourceBuilder<CertManagerIssuerResource>)](/reference/api/csharp/aspire.hosting.kubernetes/certmanagerextensions/methods.md#withtls-iresourcebuilder-kubernetesgatewayresource-iresourcebuilder-certmanagerissuerresource) : `IResourceBuilder<KubernetesGatewayResource>` `extension` `ats export` -- Adds an HTTPS listener to the gateway and wires it to the supplied cert-manager `ClusterIssuer`. This adds the `cert-manager.io/cluster-issuer` annotation to the generated Gateway resource, causing cert-manager to provision and renew a certificate for each gateway listener hostname.
