{"id":1254,"date":"2025-04-11T05:43:44","date_gmt":"2025-04-11T05:43:44","guid":{"rendered":"https:\/\/techtrendfeed.com\/?p=1254"},"modified":"2025-04-11T05:43:44","modified_gmt":"2025-04-11T05:43:44","slug":"utilizing-wsl-and-lets-encrypt-to-create-azure-app-service-ssl-wildcard-certificates","status":"publish","type":"post","link":"https:\/\/techtrendfeed.com\/?p=1254","title":{"rendered":"Utilizing WSL and Let&#8217;s Encrypt to create Azure App Service SSL Wildcard Certificates"},"content":{"rendered":"<p> <br \/>\n<\/p>\n<div id=\"\">&#13;<br \/>\n            &#13;<\/p>\n<p>There are lots of let&#8217;s encrypt computerized instruments for azure however I additionally wished to see if I might use certbot in wsl to generate a wildcard certificates for the azure Friday web site after which add the ensuing certificates to azure app service. <\/p>\n<p>Azure app service finally wants a particular format known as dot PFX that features the complete certificates path and all intermediates.<\/p>\n<p>Per the docs, App Service non-public certificates should meet <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/app-service\/configure-ssl-certificate?tabs=apex%2Cportal#private-certificate-requirements\">the next necessities<\/a>:  <\/p>\n<ul>\n<li>Exported as a password-protected PFX file, encrypted utilizing triple DES.  <\/li>\n<li>Accommodates non-public key not less than 2048 bits lengthy  <\/li>\n<li>Accommodates all intermediate certificates and the basis certificates within the certificates chain.<\/li>\n<\/ul>\n<p>In case you have a PFX that does not meet all these necessities you may have Home windows reencrypt the file.<\/p>\n<p>I take advantage of WSL and certbot to create the cert, then I import\/export in Home windows and add the ensuing PFX.<\/p>\n<p>Inside WSL, set up certbot:<\/p>\n<pre class=\"gutter: false; toolbar: false; smart-tabs: false;\">sudo apt replace<br\/>sudo apt set up python3 python3-venv libaugeas0<br\/>sudo python3 -m venv \/decide\/certbot\/<br\/>sudo \/decide\/certbot\/bin\/pip set up --upgrade pip<br\/>sudo \/decide\/certbot\/bin\/pip set up certbot<\/pre>\n<p>Then I generate the cert. You may get a pleasant textual content UI from certbot and replace your DNS as a verification problem. Change this to verify it is <strong>two<\/strong> traces, and your domains and subdomains are right and your paths are right.<\/p>\n<pre class=\"gutter: false; toolbar: false; smart-tabs: false;\">sudo certbot certonly --manual --preferred-challenges=dns --email YOUR@EMAIL.COM   <br\/>--server https:\/\/acme-v02.api.letsencrypt.org\/listing   <br\/>--agree-tos   --manual-public-ip-logging-ok   -d \"azurefriday.com\"   -d \"*.azurefriday.com\"<br\/>sudo openssl pkcs12 -export -out AzureFriday2023.pfx <br\/>-inkey \/and so forth\/letsencrypt\/reside\/azurefriday.com\/privkey.pem <br\/>-in \/and so forth\/letsencrypt\/reside\/azurefriday.com\/fullchain.pem<\/pre>\n<p>I then copy the ensuing file to my desktop (examine your desktop path) so it is now within the Home windows world.<\/p>\n<pre class=\"gutter: false; toolbar: false; smart-tabs: false;\">sudo cp AzureFriday2023.pfx \/mnt\/c\/Customers\/Scott\/OneDrive\/Desktop\n<\/pre>\n<p>Now from Home windows, import the PFX, be aware the thumbprint and export that cert.<\/p>\n<pre class=\"brush: ps; gutter: false; toolbar: false; smart-tabs: false;\">Import-PfxCertificate -FilePath \"AzureFriday2023.pfx\" -CertStoreLocation Cert:LocalMachineMy <br\/>-Password (ConvertTo-SecureString -String 'PASSWORDHERE' -AsPlainText -Pressure) -Exportable<p>Export-PfxCertificate -Cert Microsoft.PowerShell.SecurityCertificate::LocalMachineMy597THISISTHETHUMBNAILCF1157B8CEBB7CA1 <br\/>-FilePath 'AzureFriday2023-fixed.pfx' -Password (ConvertTo-SecureString -String 'PASSWORDHERE' -AsPlainText -Pressure) <\/p><\/pre>\n<p>Then add the cert to the Certificates part of your App Service, beneath Deliver Your Personal Cert. <\/p>\n<figure><img loading=\"lazy\" decoding=\"async\" title=\"Custom Domains in Azure App Service\" style=\"display: inline\" alt=\"Custom Domains in Azure App Service\" src=\"https:\/\/images.hanselman.com\/blog\/Windows-Live-Writer\/Using-WSL-and-Lets-Encrypt-to-create-Azu_C384\/image_3849c466-fcdb-4abd-96ad-8d52a5e93730.png\" width=\"858\" height=\"437\"\/><\/figure>\n<p>Then beneath Customized Domains, click on Replace Binding and choose the brand new cert (with the most recent expiration date).<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"margin: 0px; display: inline\" alt=\"image\" src=\"https:\/\/images.hanselman.com\/blog\/Windows-Live-Writer\/Using-WSL-and-Lets-Encrypt-to-create-Azu_C384\/image_3d6c1eb8-4a3e-4004-985a-75e8f8f56118.png\" width=\"522\" height=\"437\"\/><\/p>\n<p>Subsequent step is to make this much more computerized or choose a extra automated answer however for now, I will fear about this in September and it solved my costly Wildcard Area subject.<\/p>\n<p>&#13;<br \/>\n&#13;<br \/>\n&#13;<br \/>\n&#13;<\/p>\n<div class=\"about-scott\">\n<div class=\"bioBox\">\n<h4>About Scott<\/h4>\n<div class=\"bioBoxInner\">\n<p>Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, advisor, father, diabetic, and Microsoft worker. He&#8217;s a failed stand-up comedian, a cornrower, and a e book writer.<\/p>\n<p>                        <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/facebook.com\/shanselman\" class=\"sm-link\"><img decoding=\"async\" src=\"http:\/\/images.hanselman.com\/main\/icon-fb.png\" alt=\"facebook\"\/><\/a><br \/>\n                        <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/bsky.app\/profile\/scott.hanselman.com\" class=\"sm-link\"><img decoding=\"async\" src=\"http:\/\/images.hanselman.com\/main\/icon-bluesky.png\" alt=\"bluesky\"\/><\/a><br \/>\n                        <a rel=\"nofollow\" target=\"_blank\" href=\"http:\/\/feeds.hanselman.com\/ScottHanselman\" class=\"sm-link\"><img decoding=\"async\" src=\"http:\/\/images.hanselman.com\/main\/icon-rss.png\" alt=\"subscribe\"\/><\/a><br \/>\n                        <a rel=\"nofollow\" target=\"_blank\" href=\"http:\/\/hanselman.com\/about\">About<\/a> \u00a0 <a rel=\"nofollow\" target=\"_blank\" href=\"http:\/\/www.hanselman.com\/newsletter\">Publication<\/a>\n                    <\/div><\/div>\n<div class=\"ads-box\">\n<div class=\"ad-item\">\n                        <strong>Internet hosting By<\/strong><br \/>\n                        <a rel=\"nofollow\" target=\"_blank\" rel=\"nofollow\" href=\"https:\/\/azure.microsoft.com\/free\"><img loading=\"lazy\" decoding=\"async\" alt=\"Hosted on Linux using .NET in an Azure App Service\" class=\"ad\" border=\"0\" valign=\"top\" vspace=\"4\" width=\"125\" height=\"125\" src=\"http:\/\/images.hanselman.com\/main\/azure-250x250.png\"\/><\/a>\n                    <\/div><\/div><\/div>\n<p>&#13;<br \/>\n&#13;<br \/>\n            &#13;<br \/>\n&#13;<br \/>\n&#13;<br \/>\n            &#13;<br \/>\n&#13;<br \/>\n            &#13;\n        <\/p><\/div>\n\n","protected":false},"excerpt":{"rendered":"<p>&#13; &#13; There are lots of let&#8217;s encrypt computerized instruments for azure however I additionally wished to see if I might use certbot in wsl to generate a wildcard certificates for the azure Friday web site after which add the ensuing certificates to azure app service. Azure app service finally wants a particular format known [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":1256,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[56],"tags":[205,1126,1129,1125,1124,265,1127,931,1128,1123],"class_list":["post-1254","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-software","tag-app","tag-azure","tag-certificates","tag-create","tag-encrypt","tag-lets","tag-service","tag-ssl","tag-wildcard","tag-wsl"],"_links":{"self":[{"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/posts\/1254","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1254"}],"version-history":[{"count":1,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/posts\/1254\/revisions"}],"predecessor-version":[{"id":1255,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/posts\/1254\/revisions\/1255"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/media\/1256"}],"wp:attachment":[{"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1254"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1254"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1254"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}<!-- This website is optimized by Airlift. Learn more: https://airlift.net. Template:. Learn more: https://airlift.net. Template: 69d9690a190636c2e0989534. Config Timestamp: 2026-04-10 21:18:02 UTC, Cached Timestamp: 2026-06-15 10:45:01 UTC -->