1. Packages
  2. Proxmox Virtual Environment (Proxmox VE)
  3. API Docs
  4. Acme
  5. Certificate
Proxmox Virtual Environment (Proxmox VE) v7.13.0 published on Tuesday, Feb 10, 2026 by Daniel Muehlbachler-Pietrzykowski
proxmoxve logo
Proxmox Virtual Environment (Proxmox VE) v7.13.0 published on Tuesday, Feb 10, 2026 by Daniel Muehlbachler-Pietrzykowski

    Manages ACME SSL certificates for Proxmox VE nodes. This resource orders and renews certificates from an ACME Certificate Authority for a specific node.

    Example Usage

    Basic ACME Certificate with HTTP-01 Challenge

    import * as pulumi from "@pulumi/pulumi";
    import * as proxmoxve from "@muhlba91/pulumi-proxmoxve";
    
    // First, create an ACME account
    const example = new proxmoxve.AcmeAccount("example", {
        name: "production",
        contact: "admin@example.com",
        directory: "https://acme-v02.api.letsencrypt.org/directory",
        tos: "https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf",
    });
    // Order a certificate for the node
    const exampleCertificate = new proxmoxve.acme.Certificate("example", {
        nodeName: "pve",
        account: example.name,
        domains: [{
            domain: "pve.example.com",
        }],
    });
    
    import pulumi
    import pulumi_proxmoxve as proxmoxve
    
    # First, create an ACME account
    example = proxmoxve.AcmeAccount("example",
        name="production",
        contact="admin@example.com",
        directory="https://acme-v02.api.letsencrypt.org/directory",
        tos="https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf")
    # Order a certificate for the node
    example_certificate = proxmoxve.acme.Certificate("example",
        node_name="pve",
        account=example.name,
        domains=[{
            "domain": "pve.example.com",
        }])
    
    package main
    
    import (
    	"github.com/muhlba91/pulumi-proxmoxve/sdk/v7/go/proxmoxve"
    	"github.com/muhlba91/pulumi-proxmoxve/sdk/v7/go/proxmoxve/acme"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		// First, create an ACME account
    		example, err := proxmoxve.NewAcmeAccount(ctx, "example", &proxmoxve.AcmeAccountArgs{
    			Name:      pulumi.String("production"),
    			Contact:   pulumi.String("admin@example.com"),
    			Directory: pulumi.String("https://acme-v02.api.letsencrypt.org/directory"),
    			Tos:       pulumi.String("https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf"),
    		})
    		if err != nil {
    			return err
    		}
    		// Order a certificate for the node
    		_, err = acme.NewCertificate(ctx, "example", &acme.CertificateArgs{
    			NodeName: pulumi.String("pve"),
    			Account:  example.Name,
    			Domains: acme.CertificateDomainArray{
    				&acme.CertificateDomainArgs{
    					Domain: pulumi.String("pve.example.com"),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using ProxmoxVE = Pulumi.ProxmoxVE;
    
    return await Deployment.RunAsync(() => 
    {
        // First, create an ACME account
        var example = new ProxmoxVE.AcmeAccount("example", new()
        {
            Name = "production",
            Contact = "admin@example.com",
            Directory = "https://acme-v02.api.letsencrypt.org/directory",
            Tos = "https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf",
        });
    
        // Order a certificate for the node
        var exampleCertificate = new ProxmoxVE.Acme.Certificate("example", new()
        {
            NodeName = "pve",
            Account = example.Name,
            Domains = new[]
            {
                new ProxmoxVE.Acme.Inputs.CertificateDomainArgs
                {
                    Domain = "pve.example.com",
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import io.muehlbachler.pulumi.proxmoxve.AcmeAccount;
    import io.muehlbachler.pulumi.proxmoxve.AcmeAccountArgs;
    import io.muehlbachler.pulumi.proxmoxve.Acme.Certificate;
    import io.muehlbachler.pulumi.proxmoxve.Acme.CertificateArgs;
    import com.pulumi.proxmoxve.Acme.inputs.CertificateDomainArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            // First, create an ACME account
            var example = new AcmeAccount("example", AcmeAccountArgs.builder()
                .name("production")
                .contact("admin@example.com")
                .directory("https://acme-v02.api.letsencrypt.org/directory")
                .tos("https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf")
                .build());
    
            // Order a certificate for the node
            var exampleCertificate = new Certificate("exampleCertificate", CertificateArgs.builder()
                .nodeName("pve")
                .account(example.name())
                .domains(CertificateDomainArgs.builder()
                    .domain("pve.example.com")
                    .build())
                .build());
    
        }
    }
    
    resources:
      # First, create an ACME account
      example:
        type: proxmoxve:AcmeAccount
        properties:
          name: production
          contact: admin@example.com
          directory: https://acme-v02.api.letsencrypt.org/directory
          tos: https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf
      # Order a certificate for the node
      exampleCertificate:
        type: proxmoxve:Acme:Certificate
        name: example
        properties:
          nodeName: pve
          account: ${example.name}
          domains:
            - domain: pve.example.com
    

    ACME Certificate with DNS-01 Challenge

    import * as pulumi from "@pulumi/pulumi";
    import * as proxmoxve from "@muhlba91/pulumi-proxmoxve";
    
    // Create an ACME account
    const example = new proxmoxve.AcmeAccount("example", {
        name: "production",
        contact: "admin@example.com",
        directory: "https://acme-v02.api.letsencrypt.org/directory",
        tos: "https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf",
    });
    // Configure a DNS plugin (Desec example)
    const desec = new proxmoxve.AcmeDnsPlugin("desec", {
        plugin: "desec",
        api: "desec",
        data: {
            DEDYN_TOKEN: dedynToken,
        },
    });
    // Order a certificate using the DNS plugin
    const test = new proxmoxve.acme.Certificate("test", {
        nodeName: "pve",
        account: example.name,
        force: false,
        domains: [{
            domain: "pve.example.dedyn.io",
            plugin: desec.plugin,
        }],
    }, {
        dependsOn: [
            example,
            desec,
        ],
    });
    
    import pulumi
    import pulumi_proxmoxve as proxmoxve
    
    # Create an ACME account
    example = proxmoxve.AcmeAccount("example",
        name="production",
        contact="admin@example.com",
        directory="https://acme-v02.api.letsencrypt.org/directory",
        tos="https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf")
    # Configure a DNS plugin (Desec example)
    desec = proxmoxve.AcmeDnsPlugin("desec",
        plugin="desec",
        api="desec",
        data={
            "DEDYN_TOKEN": dedyn_token,
        })
    # Order a certificate using the DNS plugin
    test = proxmoxve.acme.Certificate("test",
        node_name="pve",
        account=example.name,
        force=False,
        domains=[{
            "domain": "pve.example.dedyn.io",
            "plugin": desec.plugin,
        }],
        opts = pulumi.ResourceOptions(depends_on=[
                example,
                desec,
            ]))
    
    package main
    
    import (
    	"github.com/muhlba91/pulumi-proxmoxve/sdk/v7/go/proxmoxve"
    	"github.com/muhlba91/pulumi-proxmoxve/sdk/v7/go/proxmoxve/acme"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		// Create an ACME account
    		example, err := proxmoxve.NewAcmeAccount(ctx, "example", &proxmoxve.AcmeAccountArgs{
    			Name:      pulumi.String("production"),
    			Contact:   pulumi.String("admin@example.com"),
    			Directory: pulumi.String("https://acme-v02.api.letsencrypt.org/directory"),
    			Tos:       pulumi.String("https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf"),
    		})
    		if err != nil {
    			return err
    		}
    		// Configure a DNS plugin (Desec example)
    		desec, err := proxmoxve.NewAcmeDnsPlugin(ctx, "desec", &proxmoxve.AcmeDnsPluginArgs{
    			Plugin: pulumi.String("desec"),
    			Api:    pulumi.String("desec"),
    			Data: pulumi.StringMap{
    				"DEDYN_TOKEN": pulumi.Any(dedynToken),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		// Order a certificate using the DNS plugin
    		_, err = acme.NewCertificate(ctx, "test", &acme.CertificateArgs{
    			NodeName: pulumi.String("pve"),
    			Account:  example.Name,
    			Force:    pulumi.Bool(false),
    			Domains: acme.CertificateDomainArray{
    				&acme.CertificateDomainArgs{
    					Domain: pulumi.String("pve.example.dedyn.io"),
    					Plugin: desec.Plugin,
    				},
    			},
    		}, pulumi.DependsOn([]pulumi.Resource{
    			example,
    			desec,
    		}))
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using ProxmoxVE = Pulumi.ProxmoxVE;
    
    return await Deployment.RunAsync(() => 
    {
        // Create an ACME account
        var example = new ProxmoxVE.AcmeAccount("example", new()
        {
            Name = "production",
            Contact = "admin@example.com",
            Directory = "https://acme-v02.api.letsencrypt.org/directory",
            Tos = "https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf",
        });
    
        // Configure a DNS plugin (Desec example)
        var desec = new ProxmoxVE.AcmeDnsPlugin("desec", new()
        {
            Plugin = "desec",
            Api = "desec",
            Data = 
            {
                { "DEDYN_TOKEN", dedynToken },
            },
        });
    
        // Order a certificate using the DNS plugin
        var test = new ProxmoxVE.Acme.Certificate("test", new()
        {
            NodeName = "pve",
            Account = example.Name,
            Force = false,
            Domains = new[]
            {
                new ProxmoxVE.Acme.Inputs.CertificateDomainArgs
                {
                    Domain = "pve.example.dedyn.io",
                    Plugin = desec.Plugin,
                },
            },
        }, new CustomResourceOptions
        {
            DependsOn =
            {
                example,
                desec,
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import io.muehlbachler.pulumi.proxmoxve.AcmeAccount;
    import io.muehlbachler.pulumi.proxmoxve.AcmeAccountArgs;
    import io.muehlbachler.pulumi.proxmoxve.AcmeDnsPlugin;
    import io.muehlbachler.pulumi.proxmoxve.AcmeDnsPluginArgs;
    import io.muehlbachler.pulumi.proxmoxve.Acme.Certificate;
    import io.muehlbachler.pulumi.proxmoxve.Acme.CertificateArgs;
    import com.pulumi.proxmoxve.Acme.inputs.CertificateDomainArgs;
    import com.pulumi.resources.CustomResourceOptions;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            // Create an ACME account
            var example = new AcmeAccount("example", AcmeAccountArgs.builder()
                .name("production")
                .contact("admin@example.com")
                .directory("https://acme-v02.api.letsencrypt.org/directory")
                .tos("https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf")
                .build());
    
            // Configure a DNS plugin (Desec example)
            var desec = new AcmeDnsPlugin("desec", AcmeDnsPluginArgs.builder()
                .plugin("desec")
                .api("desec")
                .data(Map.of("DEDYN_TOKEN", dedynToken))
                .build());
    
            // Order a certificate using the DNS plugin
            var test = new Certificate("test", CertificateArgs.builder()
                .nodeName("pve")
                .account(example.name())
                .force(false)
                .domains(CertificateDomainArgs.builder()
                    .domain("pve.example.dedyn.io")
                    .plugin(desec.plugin())
                    .build())
                .build(), CustomResourceOptions.builder()
                    .dependsOn(                
                        example,
                        desec)
                    .build());
    
        }
    }
    
    resources:
      # Create an ACME account
      example:
        type: proxmoxve:AcmeAccount
        properties:
          name: production
          contact: admin@example.com
          directory: https://acme-v02.api.letsencrypt.org/directory
          tos: https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf
      # Configure a DNS plugin (Desec example)
      desec:
        type: proxmoxve:AcmeDnsPlugin
        properties:
          plugin: desec
          api: desec
          data:
            DEDYN_TOKEN: ${dedynToken}
      # Order a certificate using the DNS plugin
      test:
        type: proxmoxve:Acme:Certificate
        properties:
          nodeName: pve
          account: ${example.name}
          force: false
          domains:
            - domain: pve.example.dedyn.io
              plugin: ${desec.plugin}
        options:
          dependsOn:
            - ${example}
            - ${desec}
    

    Force Certificate Renewal

    import * as pulumi from "@pulumi/pulumi";
    import * as proxmoxve from "@muhlba91/pulumi-proxmoxve";
    
    const exampleForce = new proxmoxve.acme.Certificate("example_force", {
        nodeName: "pve",
        account: example.name,
        force: true,
        domains: [{
            domain: "pve.example.com",
        }],
    });
    
    import pulumi
    import pulumi_proxmoxve as proxmoxve
    
    example_force = proxmoxve.acme.Certificate("example_force",
        node_name="pve",
        account=example["name"],
        force=True,
        domains=[{
            "domain": "pve.example.com",
        }])
    
    package main
    
    import (
    	"github.com/muhlba91/pulumi-proxmoxve/sdk/v7/go/proxmoxve/acme"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := acme.NewCertificate(ctx, "example_force", &acme.CertificateArgs{
    			NodeName: pulumi.String("pve"),
    			Account:  pulumi.Any(example.Name),
    			Force:    pulumi.Bool(true),
    			Domains: acme.CertificateDomainArray{
    				&acme.CertificateDomainArgs{
    					Domain: pulumi.String("pve.example.com"),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using ProxmoxVE = Pulumi.ProxmoxVE;
    
    return await Deployment.RunAsync(() => 
    {
        var exampleForce = new ProxmoxVE.Acme.Certificate("example_force", new()
        {
            NodeName = "pve",
            Account = example.Name,
            Force = true,
            Domains = new[]
            {
                new ProxmoxVE.Acme.Inputs.CertificateDomainArgs
                {
                    Domain = "pve.example.com",
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import io.muehlbachler.pulumi.proxmoxve.Acme.Certificate;
    import io.muehlbachler.pulumi.proxmoxve.Acme.CertificateArgs;
    import com.pulumi.proxmoxve.Acme.inputs.CertificateDomainArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var exampleForce = new Certificate("exampleForce", CertificateArgs.builder()
                .nodeName("pve")
                .account(example.name())
                .force(true)
                .domains(CertificateDomainArgs.builder()
                    .domain("pve.example.com")
                    .build())
                .build());
    
        }
    }
    
    resources:
      exampleForce:
        type: proxmoxve:Acme:Certificate
        name: example_force
        properties:
          nodeName: pve
          account: ${example.name}
          force: true # This will trigger renewal on every apply
          domains:
            - domain: pve.example.com
    
    • proxmoxve.AcmeAccount - Manages ACME accounts
    • proxmoxve.AcmeDnsPlugin - Manages ACME DNS plugins for DNS-01 challenges
    • proxmoxve.Certifi - Manages custom SSL/TLS certificates (non-ACME)

    Create Certificate Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new Certificate(name: string, args: CertificateArgs, opts?: CustomResourceOptions);
    @overload
    def Certificate(resource_name: str,
                    args: CertificateArgs,
                    opts: Optional[ResourceOptions] = None)
    
    @overload
    def Certificate(resource_name: str,
                    opts: Optional[ResourceOptions] = None,
                    account: Optional[str] = None,
                    domains: Optional[Sequence[CertificateDomainArgs]] = None,
                    node_name: Optional[str] = None,
                    force: Optional[bool] = None)
    func NewCertificate(ctx *Context, name string, args CertificateArgs, opts ...ResourceOption) (*Certificate, error)
    public Certificate(string name, CertificateArgs args, CustomResourceOptions? opts = null)
    public Certificate(String name, CertificateArgs args)
    public Certificate(String name, CertificateArgs args, CustomResourceOptions options)
    
    type: proxmoxve:Acme:Certificate
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    

    Parameters

    name string
    The unique name of the resource.
    args CertificateArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    resource_name str
    The unique name of the resource.
    args CertificateArgs
    The arguments to resource properties.
    opts ResourceOptions
    Bag of options to control resource's behavior.
    ctx Context
    Context object for the current deployment.
    name string
    The unique name of the resource.
    args CertificateArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args CertificateArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args CertificateArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Constructor example

    The following reference example uses placeholder values for all input properties.

    var certificateResource = new ProxmoxVE.Acme.Certificate("certificateResource", new()
    {
        Account = "string",
        Domains = new[]
        {
            new ProxmoxVE.Acme.Inputs.CertificateDomainArgs
            {
                Domain = "string",
                Alias = "string",
                Plugin = "string",
            },
        },
        NodeName = "string",
        Force = false,
    });
    
    example, err := acme.NewCertificate(ctx, "certificateResource", &acme.CertificateArgs{
    	Account: pulumi.String("string"),
    	Domains: acme.CertificateDomainArray{
    		&acme.CertificateDomainArgs{
    			Domain: pulumi.String("string"),
    			Alias:  pulumi.String("string"),
    			Plugin: pulumi.String("string"),
    		},
    	},
    	NodeName: pulumi.String("string"),
    	Force:    pulumi.Bool(false),
    })
    
    var certificateResource = new Certificate("certificateResource", CertificateArgs.builder()
        .account("string")
        .domains(CertificateDomainArgs.builder()
            .domain("string")
            .alias("string")
            .plugin("string")
            .build())
        .nodeName("string")
        .force(false)
        .build());
    
    certificate_resource = proxmoxve.acme.Certificate("certificateResource",
        account="string",
        domains=[{
            "domain": "string",
            "alias": "string",
            "plugin": "string",
        }],
        node_name="string",
        force=False)
    
    const certificateResource = new proxmoxve.acme.Certificate("certificateResource", {
        account: "string",
        domains: [{
            domain: "string",
            alias: "string",
            plugin: "string",
        }],
        nodeName: "string",
        force: false,
    });
    
    type: proxmoxve:Acme:Certificate
    properties:
        account: string
        domains:
            - alias: string
              domain: string
              plugin: string
        force: false
        nodeName: string
    

    Certificate Resource Properties

    To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

    Inputs

    In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

    The Certificate resource accepts the following input properties:

    Account string
    The ACME account name to use for ordering the certificate.
    Domains List<Pulumi.ProxmoxVE.Acme.Inputs.CertificateDomain>
    The list of domains to include in the certificate. At least one domain is required.
    NodeName string
    The name of the Proxmox VE node for which to order/manage the ACME certificate.
    Force bool
    Force certificate renewal even if the certificate is not due for renewal yet. Setting this to true will trigger a new certificate order on every apply.
    Account string
    The ACME account name to use for ordering the certificate.
    Domains []CertificateDomainArgs
    The list of domains to include in the certificate. At least one domain is required.
    NodeName string
    The name of the Proxmox VE node for which to order/manage the ACME certificate.
    Force bool
    Force certificate renewal even if the certificate is not due for renewal yet. Setting this to true will trigger a new certificate order on every apply.
    account String
    The ACME account name to use for ordering the certificate.
    domains List<CertificateDomain>
    The list of domains to include in the certificate. At least one domain is required.
    nodeName String
    The name of the Proxmox VE node for which to order/manage the ACME certificate.
    force Boolean
    Force certificate renewal even if the certificate is not due for renewal yet. Setting this to true will trigger a new certificate order on every apply.
    account string
    The ACME account name to use for ordering the certificate.
    domains CertificateDomain[]
    The list of domains to include in the certificate. At least one domain is required.
    nodeName string
    The name of the Proxmox VE node for which to order/manage the ACME certificate.
    force boolean
    Force certificate renewal even if the certificate is not due for renewal yet. Setting this to true will trigger a new certificate order on every apply.
    account str
    The ACME account name to use for ordering the certificate.
    domains Sequence[CertificateDomainArgs]
    The list of domains to include in the certificate. At least one domain is required.
    node_name str
    The name of the Proxmox VE node for which to order/manage the ACME certificate.
    force bool
    Force certificate renewal even if the certificate is not due for renewal yet. Setting this to true will trigger a new certificate order on every apply.
    account String
    The ACME account name to use for ordering the certificate.
    domains List<Property Map>
    The list of domains to include in the certificate. At least one domain is required.
    nodeName String
    The name of the Proxmox VE node for which to order/manage the ACME certificate.
    force Boolean
    Force certificate renewal even if the certificate is not due for renewal yet. Setting this to true will trigger a new certificate order on every apply.

    Outputs

    All input properties are implicitly available as output properties. Additionally, the Certificate resource produces the following output properties:

    Fingerprint string
    The certificate fingerprint.
    Id string
    The provider-assigned unique ID for this managed resource.
    Issuer string
    The certificate issuer.
    NotAfter string
    The certificate expiration timestamp.
    NotBefore string
    The certificate start timestamp.
    Subject string
    The certificate subject.
    SubjectAlternativeNames List<string>
    The certificate subject alternative names (SANs).
    certificatePem string
    The PEM-encoded certificate data.
    Certificate string
    The PEM-encoded certificate data.
    Fingerprint string
    The certificate fingerprint.
    Id string
    The provider-assigned unique ID for this managed resource.
    Issuer string
    The certificate issuer.
    NotAfter string
    The certificate expiration timestamp.
    NotBefore string
    The certificate start timestamp.
    Subject string
    The certificate subject.
    SubjectAlternativeNames []string
    The certificate subject alternative names (SANs).
    certificate String
    The PEM-encoded certificate data.
    fingerprint String
    The certificate fingerprint.
    id String
    The provider-assigned unique ID for this managed resource.
    issuer String
    The certificate issuer.
    notAfter String
    The certificate expiration timestamp.
    notBefore String
    The certificate start timestamp.
    subject String
    The certificate subject.
    subjectAlternativeNames List<String>
    The certificate subject alternative names (SANs).
    certificate string
    The PEM-encoded certificate data.
    fingerprint string
    The certificate fingerprint.
    id string
    The provider-assigned unique ID for this managed resource.
    issuer string
    The certificate issuer.
    notAfter string
    The certificate expiration timestamp.
    notBefore string
    The certificate start timestamp.
    subject string
    The certificate subject.
    subjectAlternativeNames string[]
    The certificate subject alternative names (SANs).
    certificate str
    The PEM-encoded certificate data.
    fingerprint str
    The certificate fingerprint.
    id str
    The provider-assigned unique ID for this managed resource.
    issuer str
    The certificate issuer.
    not_after str
    The certificate expiration timestamp.
    not_before str
    The certificate start timestamp.
    subject str
    The certificate subject.
    subject_alternative_names Sequence[str]
    The certificate subject alternative names (SANs).
    certificate String
    The PEM-encoded certificate data.
    fingerprint String
    The certificate fingerprint.
    id String
    The provider-assigned unique ID for this managed resource.
    issuer String
    The certificate issuer.
    notAfter String
    The certificate expiration timestamp.
    notBefore String
    The certificate start timestamp.
    subject String
    The certificate subject.
    subjectAlternativeNames List<String>
    The certificate subject alternative names (SANs).

    Look up Existing Certificate Resource

    Get an existing Certificate resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

    public static get(name: string, id: Input<ID>, state?: CertificateState, opts?: CustomResourceOptions): Certificate
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            account: Optional[str] = None,
            certificate: Optional[str] = None,
            domains: Optional[Sequence[CertificateDomainArgs]] = None,
            fingerprint: Optional[str] = None,
            force: Optional[bool] = None,
            issuer: Optional[str] = None,
            node_name: Optional[str] = None,
            not_after: Optional[str] = None,
            not_before: Optional[str] = None,
            subject: Optional[str] = None,
            subject_alternative_names: Optional[Sequence[str]] = None) -> Certificate
    func GetCertificate(ctx *Context, name string, id IDInput, state *CertificateState, opts ...ResourceOption) (*Certificate, error)
    public static Certificate Get(string name, Input<string> id, CertificateState? state, CustomResourceOptions? opts = null)
    public static Certificate get(String name, Output<String> id, CertificateState state, CustomResourceOptions options)
    resources:  _:    type: proxmoxve:Acme:Certificate    get:      id: ${id}
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    resource_name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    The following state arguments are supported:
    Account string
    The ACME account name to use for ordering the certificate.
    Domains List<Pulumi.ProxmoxVE.Acme.Inputs.CertificateDomain>
    The list of domains to include in the certificate. At least one domain is required.
    Fingerprint string
    The certificate fingerprint.
    Force bool
    Force certificate renewal even if the certificate is not due for renewal yet. Setting this to true will trigger a new certificate order on every apply.
    Issuer string
    The certificate issuer.
    NodeName string
    The name of the Proxmox VE node for which to order/manage the ACME certificate.
    NotAfter string
    The certificate expiration timestamp.
    NotBefore string
    The certificate start timestamp.
    Subject string
    The certificate subject.
    SubjectAlternativeNames List<string>
    The certificate subject alternative names (SANs).
    certificatePem string
    The PEM-encoded certificate data.
    Account string
    The ACME account name to use for ordering the certificate.
    Certificate string
    The PEM-encoded certificate data.
    Domains []CertificateDomainArgs
    The list of domains to include in the certificate. At least one domain is required.
    Fingerprint string
    The certificate fingerprint.
    Force bool
    Force certificate renewal even if the certificate is not due for renewal yet. Setting this to true will trigger a new certificate order on every apply.
    Issuer string
    The certificate issuer.
    NodeName string
    The name of the Proxmox VE node for which to order/manage the ACME certificate.
    NotAfter string
    The certificate expiration timestamp.
    NotBefore string
    The certificate start timestamp.
    Subject string
    The certificate subject.
    SubjectAlternativeNames []string
    The certificate subject alternative names (SANs).
    account String
    The ACME account name to use for ordering the certificate.
    certificate String
    The PEM-encoded certificate data.
    domains List<CertificateDomain>
    The list of domains to include in the certificate. At least one domain is required.
    fingerprint String
    The certificate fingerprint.
    force Boolean
    Force certificate renewal even if the certificate is not due for renewal yet. Setting this to true will trigger a new certificate order on every apply.
    issuer String
    The certificate issuer.
    nodeName String
    The name of the Proxmox VE node for which to order/manage the ACME certificate.
    notAfter String
    The certificate expiration timestamp.
    notBefore String
    The certificate start timestamp.
    subject String
    The certificate subject.
    subjectAlternativeNames List<String>
    The certificate subject alternative names (SANs).
    account string
    The ACME account name to use for ordering the certificate.
    certificate string
    The PEM-encoded certificate data.
    domains CertificateDomain[]
    The list of domains to include in the certificate. At least one domain is required.
    fingerprint string
    The certificate fingerprint.
    force boolean
    Force certificate renewal even if the certificate is not due for renewal yet. Setting this to true will trigger a new certificate order on every apply.
    issuer string
    The certificate issuer.
    nodeName string
    The name of the Proxmox VE node for which to order/manage the ACME certificate.
    notAfter string
    The certificate expiration timestamp.
    notBefore string
    The certificate start timestamp.
    subject string
    The certificate subject.
    subjectAlternativeNames string[]
    The certificate subject alternative names (SANs).
    account str
    The ACME account name to use for ordering the certificate.
    certificate str
    The PEM-encoded certificate data.
    domains Sequence[CertificateDomainArgs]
    The list of domains to include in the certificate. At least one domain is required.
    fingerprint str
    The certificate fingerprint.
    force bool
    Force certificate renewal even if the certificate is not due for renewal yet. Setting this to true will trigger a new certificate order on every apply.
    issuer str
    The certificate issuer.
    node_name str
    The name of the Proxmox VE node for which to order/manage the ACME certificate.
    not_after str
    The certificate expiration timestamp.
    not_before str
    The certificate start timestamp.
    subject str
    The certificate subject.
    subject_alternative_names Sequence[str]
    The certificate subject alternative names (SANs).
    account String
    The ACME account name to use for ordering the certificate.
    certificate String
    The PEM-encoded certificate data.
    domains List<Property Map>
    The list of domains to include in the certificate. At least one domain is required.
    fingerprint String
    The certificate fingerprint.
    force Boolean
    Force certificate renewal even if the certificate is not due for renewal yet. Setting this to true will trigger a new certificate order on every apply.
    issuer String
    The certificate issuer.
    nodeName String
    The name of the Proxmox VE node for which to order/manage the ACME certificate.
    notAfter String
    The certificate expiration timestamp.
    notBefore String
    The certificate start timestamp.
    subject String
    The certificate subject.
    subjectAlternativeNames List<String>
    The certificate subject alternative names (SANs).

    Supporting Types

    CertificateDomain, CertificateDomainArgs

    Domain string
    The domain name to include in the certificate.
    Alias string
    An optional alias domain for DNS validation. This allows you to validate the domain using a different domain's DNS records.
    Plugin string
    The DNS plugin to use for DNS-01 challenge validation. If not specified, the standalone HTTP-01 challenge will be used.
    Domain string
    The domain name to include in the certificate.
    Alias string
    An optional alias domain for DNS validation. This allows you to validate the domain using a different domain's DNS records.
    Plugin string
    The DNS plugin to use for DNS-01 challenge validation. If not specified, the standalone HTTP-01 challenge will be used.
    domain String
    The domain name to include in the certificate.
    alias String
    An optional alias domain for DNS validation. This allows you to validate the domain using a different domain's DNS records.
    plugin String
    The DNS plugin to use for DNS-01 challenge validation. If not specified, the standalone HTTP-01 challenge will be used.
    domain string
    The domain name to include in the certificate.
    alias string
    An optional alias domain for DNS validation. This allows you to validate the domain using a different domain's DNS records.
    plugin string
    The DNS plugin to use for DNS-01 challenge validation. If not specified, the standalone HTTP-01 challenge will be used.
    domain str
    The domain name to include in the certificate.
    alias str
    An optional alias domain for DNS validation. This allows you to validate the domain using a different domain's DNS records.
    plugin str
    The DNS plugin to use for DNS-01 challenge validation. If not specified, the standalone HTTP-01 challenge will be used.
    domain String
    The domain name to include in the certificate.
    alias String
    An optional alias domain for DNS validation. This allows you to validate the domain using a different domain's DNS records.
    plugin String
    The DNS plugin to use for DNS-01 challenge validation. If not specified, the standalone HTTP-01 challenge will be used.

    Import

    ACME certificates can be imported using the node name:

    #!/usr/bin/env sh

    ACME certificates can be imported using the node name, e.g.:

    $ pulumi import proxmoxve:Acme/certificate:Certificate example pve
    

    To learn more about importing existing cloud resources, see Importing resources.

    Package Details

    Repository
    proxmoxve muhlba91/pulumi-proxmoxve
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the proxmox Terraform Provider.
    proxmoxve logo
    Proxmox Virtual Environment (Proxmox VE) v7.13.0 published on Tuesday, Feb 10, 2026 by Daniel Muehlbachler-Pietrzykowski
      Meet Neo: Your AI Platform Teammate