Skip to content

Commit

Permalink
Merge pull request #69 from shibayan/feature/replace-certificate
Browse files Browse the repository at this point in the history
Adding certificate replacement
  • Loading branch information
shibayan authored Apr 5, 2019
2 parents fdca25d + 56996c2 commit c5c52e8
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 6 deletions.
24 changes: 19 additions & 5 deletions AzureAppService.LetsEncrypt/GetSitesInformation.cs
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ public static async Task<IList<ResourceGroupInformation>> RunOrchestrator([Orche
{
// App Service を取得
var sites = await context.CallActivityAsync<IList<Site>>(nameof(SharedFunctions.GetSites), null);
var certificates = await context.CallActivityAsync<IList<Certificate>>(nameof(SharedFunctions.GetAllCertificates), null);

var result = new List<ResourceGroupInformation>();

Expand All @@ -46,13 +47,17 @@ public static async Task<IList<ResourceGroupInformation>> RunOrchestrator([Orche
{
var (_, slotName) = slot.SplitName();

var hostNameSslStates = slot.HostNameSslStates
.Where(x => !x.Name.EndsWith(".azurewebsites.net"));

var slotInformation = new SlotInformation
{
Name = slotName ?? "production",
Domains = slot.HostNameSslStates
.Where(x => x.SslState == SslState.Disabled && !x.Name.EndsWith(".azurewebsites.net"))
.Select(x => x.Name)
.ToArray()
Domains = hostNameSslStates.Select(x => new DomainInformation
{
Name = x.Name,
Issuer = certificates.FirstOrDefault(xs => xs.Thumbprint == x.Thumbprint)?.Issuer ?? "None"
}).ToArray()
};

if (slotInformation.Domains.Count != 0)
Expand Down Expand Up @@ -120,6 +125,15 @@ public class SlotInformation
public string Name { get; set; }

[JsonProperty("domains")]
public IList<string> Domains { get; set; }
public IList<DomainInformation> Domains { get; set; }
}

public class DomainInformation
{
[JsonProperty("name")]
public string Name { get; set; }

[JsonProperty("issuer")]
public string Issuer { get; set; }
}
}
12 changes: 12 additions & 0 deletions AzureAppService.LetsEncrypt/SharedFunctions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,18 @@ public static async Task<IList<Certificate>> GetCertificates([ActivityTrigger] D
.Where(x => (x.ExpirationDate.Value - currentDateTime).TotalDays < 30).ToArray();
}

[FunctionName(nameof(GetAllCertificates))]
public static async Task<IList<Certificate>> GetAllCertificates([ActivityTrigger] DurableActivityContext context, ILogger log)
{
var websiteClient = await CreateWebSiteManagementClientAsync();

// TODO: https://github.com/Azure/azure-rest-api-specs/issues/3526
//var certificates = await websiteClient.Certificates.ListAsync();
var certificates = await websiteClient.ListCertificatesAsync();

return certificates.ToArray();
}

[FunctionName(nameof(Order))]
public static async Task<OrderDetails> Order([ActivityTrigger] DurableActivityContext context, ILogger log)
{
Expand Down
2 changes: 1 addition & 1 deletion AzureAppService.LetsEncrypt/proxies.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"matchCondition": {
"route": "add-certificate"
},
"backendUri": "https://shibayan.blob.core.windows.net/azure-appservice-letsencrypt/index.html"
"backendUri": "https://shibayan.blob.core.windows.net/azure-appservice-letsencrypt/index.v2.html"
}
}
}

0 comments on commit c5c52e8

Please sign in to comment.