All Projects → shibayan → Keyvault Acmebot

shibayan / Keyvault Acmebot

Licence: apache-2.0
Automated ACME issuer for Azure Key Vault (App Gateway / Front Door / CDN / others)

Projects that are alternatives of or similar to Keyvault Acmebot

Appservice Acmebot
Automated ACME issuer for Azure App Service (Web Apps / Functions / Containers)
Stars: ✭ 281 (-16.37%)
Mutual labels:  azure, letsencrypt
Letsencrypt Siteextension
Azure Web App Site Extension for easy installation and configuration of Let's Encrypt issued SSL certifcates for custom domain names.
Stars: ✭ 727 (+116.37%)
Mutual labels:  azure, letsencrypt
Applicationinsights Aspnetcore
ASP.NET Core web applications monitoring
Stars: ✭ 306 (-8.93%)
Mutual labels:  azure
Mkit
MKIT is a Managed Kubernetes Inspection Tool that validates several common security-related configuration settings of managed Kubernetes cluster objects and the workloads/resources running inside the cluster.
Stars: ✭ 330 (-1.79%)
Mutual labels:  azure
Rancher Letsencrypt
🐮 Rancher service that obtains and manages free SSL certificates from the Let's Encrypt CA
Stars: ✭ 318 (-5.36%)
Mutual labels:  letsencrypt
Cosmonaut
🌐 A supercharged Azure CosmosDB .NET SDK with ORM support
Stars: ✭ 309 (-8.04%)
Mutual labels:  azure
Template Building Blocks
A tool for deploying Azure infrastructure based on proven practices. Azure building blocks take advantage of the Azure CLI and Azure Resource Manager templates to provision collections of resources as logical units with production-ready settings.
Stars: ✭ 325 (-3.27%)
Mutual labels:  azure
Terraform Kubestack
Terraform GitOps Framework — Everything you need to build reliable automation for AKS, EKS and GKE Kubernetes clusters in one free and open-source framework.
Stars: ✭ 300 (-10.71%)
Mutual labels:  azure
Caf Terraform Landingzones
Cloud Adoption Framework for Azure - Terraform landing zones
Stars: ✭ 335 (-0.3%)
Mutual labels:  azure
Grant
OAuth Proxy
Stars: ✭ 3,509 (+944.35%)
Mutual labels:  azure
Autorest
OpenAPI (f.k.a Swagger) Specification code generator. Supports C#, PowerShell, Go, Java, Node.js, TypeScript, Python
Stars: ✭ 3,607 (+973.51%)
Mutual labels:  azure
Azure Devops Utils
Azure DevOps Utilities
Stars: ✭ 314 (-6.55%)
Mutual labels:  azure
Cqrs
A lightweight enterprise Function as a Service (FaaS) framework to write function based serverless and micro-service applications in hybrid multi-datacentre, on-premise and Azure environments.
Stars: ✭ 310 (-7.74%)
Mutual labels:  azure
Streamstone
Event store for Azure Table Storage
Stars: ✭ 326 (-2.98%)
Mutual labels:  azure
Leapp
Leapp is the tool to access your cloud; It securely stores your access information and generates temporary credential sets to access your cloud ecosystem from your local machine.
Stars: ✭ 306 (-8.93%)
Mutual labels:  azure
Oauth
🔗 OAuth 2.0 implementation for various providers in one place.
Stars: ✭ 336 (+0%)
Mutual labels:  azure
Vagrant Azure
Enable Vagrant to manage virtual machines in Microsoft Azure
Stars: ✭ 304 (-9.52%)
Mutual labels:  azure
Docker Android
Android in docker solution with noVNC supported and video recording
Stars: ✭ 4,042 (+1102.98%)
Mutual labels:  azure
React Aad
A React wrapper for Azure AD using the Microsoft Authentication Library (MSAL). The easiest way to integrate AzureAD with your React for authentication.
Stars: ✭ 324 (-3.57%)
Mutual labels:  azure
Ubnt Letsencrypt
Let's Encrypt setup instructions for Ubiquiti EdgeRouter
Stars: ✭ 341 (+1.49%)
Mutual labels:  letsencrypt

Key Vault Acmebot

Build Release License Terraform Registry

This application automates the issuance and renewal of ACME SSL/TLS certificates. The certificates are stored inside Azure Key Vault. Many Azure services such as Azure App Service, Application Gateway, CDN, etc. are able to import certificates directly from Key Vault.

We have started to address the following requirements:

  • Use the Azure Key Vault to store SSL/TLS certificates securely
  • Centralize management of a large number of certificates using a single Key Vault
  • Easy to deploy and configure solution
  • Highly reliable implementation
  • Ease of Monitoring (Application Insights, Webhook)

Key Vault allows for secure and centralized management of ACME certificates.

Announcements

Upgrade to Acmebot v3

Key Vault Acmebot v3 has been released since December 31, 2019. Users deploying earlier than this are encouraged to upgrade to v3 by following the ugprade process described here:

https://github.com/shibayan/keyvault-acmebot/issues/80

Automate Azure CDN / Front Door certificates deployment

As of August 2020, Azure CDN / Front Door does not automatically deploy new Key Vault certificates. I develop an utility application to automatically deploy a new version of the certificate.

https://github.com/shibayan/keyvault-certificate-rotation

Table Of Contents

Feature Support

  • All Azure App Services (Web Apps / Functions / Containers, regardless of OS)
  • Azure CDN and Front Door
  • Azure Application Gateway v2
  • Issuing certificates with SANs (subject alternative names) (one certificate for multiple domains)
  • Issuing certificates and wildcard certificates for Zone Apex domains
  • Automated certificate renewal
  • ACME-compliant Certification Authorities

Requirements

You will need the following:

  • Azure Subscription (required to deploy this solution)
  • Azure Key Vault (existing one or new Key Vault can be created at deployment time)
  • DNS provider (required to host your public DNS zone)
    • Amazon Route 53
    • Azure DNS (The resource must be unlocked)
    • Cloudflare
    • DNS Made Easy
    • Google Cloud DNS
    • GratisDNS
    • TransIP DNS
  • Email address (required to register with ACME)

Getting Started

1. Deploy Acmebot

For Azure Cloud

For Azure China

For Azure Government

2. Add application settings

Update the following configuration settings of the Function App:

  • Acmebot:VaultBaseUrl
    • DNS name of the Azure Key Vault (if you are using an existing Key Vault)
  • Acmebot:Webhook
    • Webhook destination URL (optional, Slack and Microsoft Teams are recommended)

There are also additional settings that will be automatically created by Key Vault Acmebot:

  • Acmebot:Endpoint
    • The ACME endpoint used to issue certificates
  • Acmebot:Contacts
    • The email address (required) used in ACME account registration

3. Add settings for your choice DNS provider

For instructions on how to configure each DNS provider, please refer to the following page.

https://github.com/shibayan/keyvault-acmebot/wiki/DNS-Provider-Configuration

4. Enable App Service Authentication

You must enable Authentication on the Function App that is deployed as part of this application.

In the Azure Portal, open the Function blade then select the Authentication / Authorization menu and enable App Service authentication. Select the Login with Azure Active Directory as the action to perform if the request is not authenticated. We recommend using Azure Active Directory as your authentication provider, but it works with other providers as well, although it's not supported.

Enable App Service Authentication with AAD

Select Azure Active Directory as the authentication provider, select Express as the management mode, and select OK.

Create New Azure AD App

If you are using Sovereign Cloud, you may not be able to select Express. Enable authentication from the advanced settings with reference to the following document.

https://docs.microsoft.com/en-us/azure/app-service/configure-authentication-provider-aad#-configure-with-advanced-settings

Finally, you can save your previous settings to enable App Service authentication.

5. Add to Key Vault access policies (if you use an existing Key Vault)

Open the access policy of the Key Vault and add the Certificate management access policy for the deployed application.

image

Usage

Issue a new certificate

Access https://YOUR-FUNCTIONS.azurewebsites.net/add-certificate with a browser and authenticate with Azure Active Directory and the Web UI will be displayed. Select the target domain from that screen, add the required subdomains, and run, and after a few tens of seconds, the certificate will be issued.

Add certificate

If the Access Control (IAM) setting is not correct, nothing will be shown in the drop-down list.

Renew an existing certificate

All existing ACME certificates are automatically renewed 30 days before their expiration.

The default check timing is 00:00 UTC. If you need to change the time zone, use WEBSITE_TIME_ZONE to set the time zone.

How to use the issued certificate in Azure services

App Service (Web Apps / Functions / Containers)

You can import the Key Vault certificate to the App Service by opening the TLS/SSL Settings from Azure Portal and selecting the Import Key Vault Certificate button from the Private Key Certificate (.pfx).

image

After importing, the App Service will automatically check for certificate updates.

Application Gateway v2

Azure CDN

Azure Front Door

API Management

Other services

The issued certificate can be downloaded from Key Vault and used elsewhere, either in Azure or outside Azure.

Frequently Asked Questions

Remove a Certificate

To Remove a certificate from the system delete it from the Key Vault. Key Vault Acmebot will no longer renew the certificate.

Reinstalling Or Updating Key Vault Acmebot

To Reinstall or Upgrade Key Vault Acmebot without removing your certificates, ensure that the Key Vault is not removed. Key Vault Acmebot will use the exisiting certificates and vault after upgrade or reinstall

Thanks

License

This project is licensed under the Apache License 2.0

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].