Managed Certificate Args
data class ManagedCertificateArgs(val customHostnameBindingId: Output<String>? = null, val tags: Output<Map<String, String>>? = null) : ConvertibleToJava<ManagedCertificateArgs>
This certificate can be used to secure custom domains on App Services (Windows and Linux) hosted on an App Service Plan of Basic and above (free and shared tiers are not supported).
NOTE: A certificate is valid for six months, and about a month before the certificate’s expiration date, App Services renews/rotates the certificate. This is managed by Azure and doesn't require this resource to be changed or reprovisioned. It will change the
thumbprint
computed attribute the next time the resource is refreshed after rotation occurs, so keep that in mind if you have any dependencies on this attribute directly.
Example Usage
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azure.core.ResourceGroup;
import com.pulumi.azure.core.ResourceGroupArgs;
import com.pulumi.azure.dns.DnsFunctions;
import com.pulumi.azure.dns.inputs.GetZoneArgs;
import com.pulumi.azure.appservice.Plan;
import com.pulumi.azure.appservice.PlanArgs;
import com.pulumi.azure.appservice.inputs.PlanSkuArgs;
import com.pulumi.azure.appservice.AppService;
import com.pulumi.azure.appservice.AppServiceArgs;
import com.pulumi.azure.dns.TxtRecord;
import com.pulumi.azure.dns.TxtRecordArgs;
import com.pulumi.azure.dns.inputs.TxtRecordRecordArgs;
import com.pulumi.azure.dns.CNameRecord;
import com.pulumi.azure.dns.CNameRecordArgs;
import com.pulumi.azure.appservice.CustomHostnameBinding;
import com.pulumi.azure.appservice.CustomHostnameBindingArgs;
import com.pulumi.azure.appservice.ManagedCertificate;
import com.pulumi.azure.appservice.ManagedCertificateArgs;
import com.pulumi.azure.appservice.CertificateBinding;
import com.pulumi.azure.appservice.CertificateBindingArgs;
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 exampleResourceGroup = new ResourceGroup("exampleResourceGroup", ResourceGroupArgs.builder()
.name("example-resources")
.location("West Europe")
.build());
final var example = DnsFunctions.getZone(GetZoneArgs.builder()
.name("mydomain.com")
.resourceGroupName(exampleResourceGroup.name())
.build());
var examplePlan = new Plan("examplePlan", PlanArgs.builder()
.name("example-plan")
.location(exampleResourceGroup.location())
.resourceGroupName(exampleResourceGroup.name())
.kind("Linux")
.reserved(true)
.sku(PlanSkuArgs.builder()
.tier("Basic")
.size("B1")
.build())
.build());
var exampleAppService = new AppService("exampleAppService", AppServiceArgs.builder()
.name("example-app")
.location(exampleResourceGroup.location())
.resourceGroupName(exampleResourceGroup.name())
.appServicePlanId(examplePlan.id())
.build());
var exampleTxtRecord = new TxtRecord("exampleTxtRecord", TxtRecordArgs.builder()
.name("asuid.mycustomhost.contoso.com")
.zoneName(example.applyValue(getZoneResult -> getZoneResult).applyValue(example -> example.applyValue(getZoneResult -> getZoneResult.name())))
.resourceGroupName(example.applyValue(getZoneResult -> getZoneResult).applyValue(example -> example.applyValue(getZoneResult -> getZoneResult.resourceGroupName())))
.ttl(300)
.records(TxtRecordRecordArgs.builder()
.value(exampleAppService.customDomainVerificationId())
.build())
.build());
var exampleCNameRecord = new CNameRecord("exampleCNameRecord", CNameRecordArgs.builder()
.name("example-adcr")
.zoneName(example.applyValue(getZoneResult -> getZoneResult).applyValue(example -> example.applyValue(getZoneResult -> getZoneResult.name())))
.resourceGroupName(example.applyValue(getZoneResult -> getZoneResult).applyValue(example -> example.applyValue(getZoneResult -> getZoneResult.resourceGroupName())))
.ttl(300)
.record(exampleAppService.defaultSiteHostname())
.build());
var exampleCustomHostnameBinding = new CustomHostnameBinding("exampleCustomHostnameBinding", CustomHostnameBindingArgs.builder()
.hostname(StdFunctions.join().applyValue(invoke -> invoke.result()))
.appServiceName(exampleAppService.name())
.resourceGroupName(exampleResourceGroup.name())
.build());
var exampleManagedCertificate = new ManagedCertificate("exampleManagedCertificate", ManagedCertificateArgs.builder()
.customHostnameBindingId(exampleCustomHostnameBinding.id())
.build());
var exampleCertificateBinding = new CertificateBinding("exampleCertificateBinding", CertificateBindingArgs.builder()
.hostnameBindingId(exampleCustomHostnameBinding.id())
.certificateId(exampleManagedCertificate.id())
.sslState("SniEnabled")
.build());
}
}
Content copied to clipboard
Import
App Service Managed Certificates can be imported using the resource id
, e.g.
$ pulumi import azure:appservice/managedCertificate:ManagedCertificate example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resGroup1/providers/Microsoft.Web/certificates/customhost.contoso.com
Content copied to clipboard
Constructors
Link copied to clipboard
fun ManagedCertificateArgs(customHostnameBindingId: Output<String>? = null, tags: Output<Map<String, String>>? = null)