{"id":312,"date":"2025-07-16T10:54:27","date_gmt":"2025-07-16T17:54:27","guid":{"rendered":"https:\/\/www.cmsws.com\/blog\/?p=309"},"modified":"2025-07-16T10:54:27","modified_gmt":"2025-07-16T17:54:27","slug":"use-acme-sh-to-create-wildcard-certs-via-lets-encrypt","status":"publish","type":"post","link":"https:\/\/www.cmsws.com\/blog\/use-acme-sh-to-create-wildcard-certs-via-lets-encrypt\/","title":{"rendered":"Use acme.sh to create Wildcard certs via Let&#8217;s Encrypt"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Install_acmesh\"><\/span>Install acme.sh<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>On the server requesting the cert:<\/p><div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 ez-toc-wrap-right counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<span class=\"ez-toc-title-toggle\"><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.cmsws.com\/blog\/use-acme-sh-to-create-wildcard-certs-via-lets-encrypt\/#Install_acmesh\" >Install acme.sh<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.cmsws.com\/blog\/use-acme-sh-to-create-wildcard-certs-via-lets-encrypt\/#Create_%E2%80%9Chook%E2%80%9D_scripts_for_the_acmesh_script\" >Create &#8220;hook&#8221; scripts for the acme.sh script<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.cmsws.com\/blog\/use-acme-sh-to-create-wildcard-certs-via-lets-encrypt\/#Issue_the_wildcard_cert_using_acmesh\" >Issue the wildcard cert using acme.sh<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.cmsws.com\/blog\/use-acme-sh-to-create-wildcard-certs-via-lets-encrypt\/#Install_the_cert_locally\" >Install the cert locally<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.cmsws.com\/blog\/use-acme-sh-to-create-wildcard-certs-via-lets-encrypt\/#Copy_cert_and_key_files_to_other_servers\" >Copy cert and key files to other servers<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.cmsws.com\/blog\/use-acme-sh-to-create-wildcard-certs-via-lets-encrypt\/#Restart_services_to_load_new_SSL_cert\" >Restart services to load new SSL cert<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.cmsws.com\/blog\/use-acme-sh-to-create-wildcard-certs-via-lets-encrypt\/#systemd_systems\" >systemd systems<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.cmsws.com\/blog\/use-acme-sh-to-create-wildcard-certs-via-lets-encrypt\/#sysV_systems\" >sysV systems<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.cmsws.com\/blog\/use-acme-sh-to-create-wildcard-certs-via-lets-encrypt\/#BSD_systems\" >BSD systems<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n\n\n\n\n<pre class=\"wp-block-code\"><code>curl https:\/\/get.acme.sh | sh<br>source ~\/.bashrc<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Create_%E2%80%9Chook%E2%80%9D_scripts_for_the_acmesh_script\"><\/span>Create &#8220;hook&#8221; scripts for the acme.sh script<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.cmsws.com\/blog\/create-tinydns-hook-script-for-use-with-acme-sh\/\" title=\"Create TinyDNS \u201chook\u201d script for use with acme.sh\">Example for TinyDNS on CentOS<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.cmsws.com\/blog\/create-bind9-hook-script-for-use-with-acme-sh\/\" title=\"Create Bind9 \u201chook\u201d script for use with acme.sh\">Example for Bind9 on Debian 12<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Issue_the_wildcard_cert_using_acmesh\"><\/span>Issue the wildcard cert using acme.sh<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>acme.sh --issue --dns dns_tinydns -d '*.example.com' --server letsencrypt || {\n    echo \"Could not generate cert\"\n    exit 1\n}<\/code><\/pre>\n\n\n\n<p>Check here to see if the SSL we renewed.<br>If it was renewed, continue on with the rest of this process<br>If it was NOT renewed, go ahead and stop here<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Install_the_cert_locally\"><\/span>Install the cert locally<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>acme.sh --install-cert -d '*.example.com' \\\n  --key-file \/etc\/ssl\/private\/example.com.key \\\n  --cert-file \/etc\/ssl\/certs\/example.com.crt \\\n  --fullchain-file \/etc\/ssl\/certs\/example.com_fullchain.crt || {\n    echo \"Could not copy certificate files to destination\"\n    exit 1\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Copy_cert_and_key_files_to_other_servers\"><\/span>Copy cert and key files to other servers<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>scp \/etc\/ssl\/private\/example.com.key root@zabbix.example.com:\/etc\/ssl\/private\/ || {\n}\nscp \/etc\/ssl\/certs\/example.com.crt root@zabbix.example.com:\/etc\/ssl\/certs\/ || {\n}\nscp \/etc\/ssl\/certs\/example.com_fullchain.crt root@zabbix.example.com:\/etc\/ssl\/certs\/ || {\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Restart_services_to_load_new_SSL_cert\"><\/span>Restart services to load new SSL cert<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"systemd_systems\"><\/span>systemd systems<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>ssh root@fs.example.com 'systemctl restart apache2'\nssh root@zabbix.example.com 'systemctl restart apache2'<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"sysV_systems\"><\/span>sysV systems<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>ssh root@fs.example.com 'service apache2 restart'\nssh root@zabbix.example.com 'service apache2 restart'<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"BSD_systems\"><\/span>BSD systems<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>ssh root@fs.example.com 'rcctl restart apache2'\nssh root@zabbix.example.com 'rcctl restart apache2'<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Install acme.sh On the server requesting the cert: Create &#8220;hook&#8221; scripts for the acme.sh script Issue the wildcard cert using acme.sh Check here to see if the SSL we renewed.If it was renewed, continue on with the rest of this processIf it was NOT renewed, go ahead and stop here Install the cert locally Copy cert and key files to [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-312","post","type-post","status-publish","format-standard","hentry","category-misc"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"Install acme.sh On the server requesting the cert: curl https:\/\/get.acme.sh | shsource ~\/.bashrc Create &quot;hook&quot; scripts for the acme.sh script Example for TinyDNS on CentOS Example for Bind9 on Debian 12 Issue the wildcard cert using acme.sh acme.sh --issue --dns dns_tinydns -d &#039;*.example.com&#039; --server letsencrypt || { echo &quot;Could not generate cert&quot; exit 1 }\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Jim Lucas\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.cmsws.com\/blog\/use-acme-sh-to-create-wildcard-certs-via-lets-encrypt\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"A different perspective \u203a Right, lets get on with it...\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Use acme.sh to create Wildcard certs via Let\u2019s Encrypt \u203a A different perspective\" \/>\n\t\t<meta property=\"og:description\" content=\"Install acme.sh On the server requesting the cert: curl https:\/\/get.acme.sh | shsource ~\/.bashrc Create &quot;hook&quot; scripts for the acme.sh script Example for TinyDNS on CentOS Example for Bind9 on Debian 12 Issue the wildcard cert using acme.sh acme.sh --issue --dns dns_tinydns -d &#039;*.example.com&#039; --server letsencrypt || { echo &quot;Could not generate cert&quot; exit 1 }\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.cmsws.com\/blog\/use-acme-sh-to-create-wildcard-certs-via-lets-encrypt\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2025-07-16T17:54:27+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2025-07-16T17:54:27+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Use acme.sh to create Wildcard certs via Let\u2019s Encrypt \u203a A different perspective\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Install acme.sh On the server requesting the cert: curl https:\/\/get.acme.sh | shsource ~\/.bashrc Create &quot;hook&quot; scripts for the acme.sh script Example for TinyDNS on CentOS Example for Bind9 on Debian 12 Issue the wildcard cert using acme.sh acme.sh --issue --dns dns_tinydns -d &#039;*.example.com&#039; --server letsencrypt || { echo &quot;Could not generate cert&quot; exit 1 }\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/www.cmsws.com\\\/blog\\\/use-acme-sh-to-create-wildcard-certs-via-lets-encrypt\\\/#blogposting\",\"name\":\"Use acme.sh to create Wildcard certs via Let\\u2019s Encrypt \\u203a A different perspective\",\"headline\":\"Use acme.sh to create Wildcard certs via Let&#8217;s Encrypt\",\"author\":{\"@id\":\"https:\\\/\\\/www.cmsws.com\\\/blog\\\/author\\\/jlucas\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/www.cmsws.com\\\/blog\\\/#organization\"},\"datePublished\":\"2025-07-16T10:54:27-07:00\",\"dateModified\":\"2025-07-16T10:54:27-07:00\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.cmsws.com\\\/blog\\\/use-acme-sh-to-create-wildcard-certs-via-lets-encrypt\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.cmsws.com\\\/blog\\\/use-acme-sh-to-create-wildcard-certs-via-lets-encrypt\\\/#webpage\"},\"articleSection\":\"Misc\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.cmsws.com\\\/blog\\\/use-acme-sh-to-create-wildcard-certs-via-lets-encrypt\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.cmsws.com\\\/blog#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.cmsws.com\\\/blog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.cmsws.com\\\/blog\\\/category\\\/misc\\\/#listItem\",\"name\":\"Misc\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.cmsws.com\\\/blog\\\/category\\\/misc\\\/#listItem\",\"position\":2,\"name\":\"Misc\",\"item\":\"https:\\\/\\\/www.cmsws.com\\\/blog\\\/category\\\/misc\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.cmsws.com\\\/blog\\\/use-acme-sh-to-create-wildcard-certs-via-lets-encrypt\\\/#listItem\",\"name\":\"Use acme.sh to create Wildcard certs via Let&#8217;s Encrypt\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.cmsws.com\\\/blog#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.cmsws.com\\\/blog\\\/use-acme-sh-to-create-wildcard-certs-via-lets-encrypt\\\/#listItem\",\"position\":3,\"name\":\"Use acme.sh to create Wildcard certs via Let&#8217;s Encrypt\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.cmsws.com\\\/blog\\\/category\\\/misc\\\/#listItem\",\"name\":\"Misc\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.cmsws.com\\\/blog\\\/#organization\",\"name\":\"A different perspective\",\"description\":\"Right, lets get on with it...\",\"url\":\"https:\\\/\\\/www.cmsws.com\\\/blog\\\/\",\"telephone\":\"+15414085189\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.cmsws.com\\\/blog\\\/author\\\/jlucas\\\/#author\",\"url\":\"https:\\\/\\\/www.cmsws.com\\\/blog\\\/author\\\/jlucas\\\/\",\"name\":\"Jim Lucas\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/www.cmsws.com\\\/blog\\\/use-acme-sh-to-create-wildcard-certs-via-lets-encrypt\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3cbbbf6cb05c36455e4560d55d14ec27e194a9639eef5b88d16f0d547e8c55c7?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Jim Lucas\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.cmsws.com\\\/blog\\\/use-acme-sh-to-create-wildcard-certs-via-lets-encrypt\\\/#webpage\",\"url\":\"https:\\\/\\\/www.cmsws.com\\\/blog\\\/use-acme-sh-to-create-wildcard-certs-via-lets-encrypt\\\/\",\"name\":\"Use acme.sh to create Wildcard certs via Let\\u2019s Encrypt \\u203a A different perspective\",\"description\":\"Install acme.sh On the server requesting the cert: curl https:\\\/\\\/get.acme.sh | shsource ~\\\/.bashrc Create \\\"hook\\\" scripts for the acme.sh script Example for TinyDNS on CentOS Example for Bind9 on Debian 12 Issue the wildcard cert using acme.sh acme.sh --issue --dns dns_tinydns -d '*.example.com' --server letsencrypt || { echo \\\"Could not generate cert\\\" exit 1 }\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.cmsws.com\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.cmsws.com\\\/blog\\\/use-acme-sh-to-create-wildcard-certs-via-lets-encrypt\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/www.cmsws.com\\\/blog\\\/author\\\/jlucas\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/www.cmsws.com\\\/blog\\\/author\\\/jlucas\\\/#author\"},\"datePublished\":\"2025-07-16T10:54:27-07:00\",\"dateModified\":\"2025-07-16T10:54:27-07:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.cmsws.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.cmsws.com\\\/blog\\\/\",\"name\":\"A different perspective\",\"description\":\"Right, lets get on with it...\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.cmsws.com\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Use acme.sh to create Wildcard certs via Let\u2019s Encrypt \u203a A different perspective","description":"Install acme.sh On the server requesting the cert: curl https:\/\/get.acme.sh | shsource ~\/.bashrc Create \"hook\" scripts for the acme.sh script Example for TinyDNS on CentOS Example for Bind9 on Debian 12 Issue the wildcard cert using acme.sh acme.sh --issue --dns dns_tinydns -d '*.example.com' --server letsencrypt || { echo \"Could not generate cert\" exit 1 }","canonical_url":"https:\/\/www.cmsws.com\/blog\/use-acme-sh-to-create-wildcard-certs-via-lets-encrypt\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/www.cmsws.com\/blog\/use-acme-sh-to-create-wildcard-certs-via-lets-encrypt\/#blogposting","name":"Use acme.sh to create Wildcard certs via Let\u2019s Encrypt \u203a A different perspective","headline":"Use acme.sh to create Wildcard certs via Let&#8217;s Encrypt","author":{"@id":"https:\/\/www.cmsws.com\/blog\/author\/jlucas\/#author"},"publisher":{"@id":"https:\/\/www.cmsws.com\/blog\/#organization"},"datePublished":"2025-07-16T10:54:27-07:00","dateModified":"2025-07-16T10:54:27-07:00","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/www.cmsws.com\/blog\/use-acme-sh-to-create-wildcard-certs-via-lets-encrypt\/#webpage"},"isPartOf":{"@id":"https:\/\/www.cmsws.com\/blog\/use-acme-sh-to-create-wildcard-certs-via-lets-encrypt\/#webpage"},"articleSection":"Misc"},{"@type":"BreadcrumbList","@id":"https:\/\/www.cmsws.com\/blog\/use-acme-sh-to-create-wildcard-certs-via-lets-encrypt\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/www.cmsws.com\/blog#listItem","position":1,"name":"Home","item":"https:\/\/www.cmsws.com\/blog","nextItem":{"@type":"ListItem","@id":"https:\/\/www.cmsws.com\/blog\/category\/misc\/#listItem","name":"Misc"}},{"@type":"ListItem","@id":"https:\/\/www.cmsws.com\/blog\/category\/misc\/#listItem","position":2,"name":"Misc","item":"https:\/\/www.cmsws.com\/blog\/category\/misc\/","nextItem":{"@type":"ListItem","@id":"https:\/\/www.cmsws.com\/blog\/use-acme-sh-to-create-wildcard-certs-via-lets-encrypt\/#listItem","name":"Use acme.sh to create Wildcard certs via Let&#8217;s Encrypt"},"previousItem":{"@type":"ListItem","@id":"https:\/\/www.cmsws.com\/blog#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/www.cmsws.com\/blog\/use-acme-sh-to-create-wildcard-certs-via-lets-encrypt\/#listItem","position":3,"name":"Use acme.sh to create Wildcard certs via Let&#8217;s Encrypt","previousItem":{"@type":"ListItem","@id":"https:\/\/www.cmsws.com\/blog\/category\/misc\/#listItem","name":"Misc"}}]},{"@type":"Organization","@id":"https:\/\/www.cmsws.com\/blog\/#organization","name":"A different perspective","description":"Right, lets get on with it...","url":"https:\/\/www.cmsws.com\/blog\/","telephone":"+15414085189"},{"@type":"Person","@id":"https:\/\/www.cmsws.com\/blog\/author\/jlucas\/#author","url":"https:\/\/www.cmsws.com\/blog\/author\/jlucas\/","name":"Jim Lucas","image":{"@type":"ImageObject","@id":"https:\/\/www.cmsws.com\/blog\/use-acme-sh-to-create-wildcard-certs-via-lets-encrypt\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/3cbbbf6cb05c36455e4560d55d14ec27e194a9639eef5b88d16f0d547e8c55c7?s=96&d=mm&r=g","width":96,"height":96,"caption":"Jim Lucas"}},{"@type":"WebPage","@id":"https:\/\/www.cmsws.com\/blog\/use-acme-sh-to-create-wildcard-certs-via-lets-encrypt\/#webpage","url":"https:\/\/www.cmsws.com\/blog\/use-acme-sh-to-create-wildcard-certs-via-lets-encrypt\/","name":"Use acme.sh to create Wildcard certs via Let\u2019s Encrypt \u203a A different perspective","description":"Install acme.sh On the server requesting the cert: curl https:\/\/get.acme.sh | shsource ~\/.bashrc Create \"hook\" scripts for the acme.sh script Example for TinyDNS on CentOS Example for Bind9 on Debian 12 Issue the wildcard cert using acme.sh acme.sh --issue --dns dns_tinydns -d '*.example.com' --server letsencrypt || { echo \"Could not generate cert\" exit 1 }","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/www.cmsws.com\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/www.cmsws.com\/blog\/use-acme-sh-to-create-wildcard-certs-via-lets-encrypt\/#breadcrumblist"},"author":{"@id":"https:\/\/www.cmsws.com\/blog\/author\/jlucas\/#author"},"creator":{"@id":"https:\/\/www.cmsws.com\/blog\/author\/jlucas\/#author"},"datePublished":"2025-07-16T10:54:27-07:00","dateModified":"2025-07-16T10:54:27-07:00"},{"@type":"WebSite","@id":"https:\/\/www.cmsws.com\/blog\/#website","url":"https:\/\/www.cmsws.com\/blog\/","name":"A different perspective","description":"Right, lets get on with it...","inLanguage":"en-US","publisher":{"@id":"https:\/\/www.cmsws.com\/blog\/#organization"}}]},"og:locale":"en_US","og:site_name":"A different perspective \u203a Right, lets get on with it...","og:type":"article","og:title":"Use acme.sh to create Wildcard certs via Let\u2019s Encrypt \u203a A different perspective","og:description":"Install acme.sh On the server requesting the cert: curl https:\/\/get.acme.sh | shsource ~\/.bashrc Create &quot;hook&quot; scripts for the acme.sh script Example for TinyDNS on CentOS Example for Bind9 on Debian 12 Issue the wildcard cert using acme.sh acme.sh --issue --dns dns_tinydns -d '*.example.com' --server letsencrypt || { echo &quot;Could not generate cert&quot; exit 1 }","og:url":"https:\/\/www.cmsws.com\/blog\/use-acme-sh-to-create-wildcard-certs-via-lets-encrypt\/","article:published_time":"2025-07-16T17:54:27+00:00","article:modified_time":"2025-07-16T17:54:27+00:00","twitter:card":"summary_large_image","twitter:title":"Use acme.sh to create Wildcard certs via Let\u2019s Encrypt \u203a A different perspective","twitter:description":"Install acme.sh On the server requesting the cert: curl https:\/\/get.acme.sh | shsource ~\/.bashrc Create &quot;hook&quot; scripts for the acme.sh script Example for TinyDNS on CentOS Example for Bind9 on Debian 12 Issue the wildcard cert using acme.sh acme.sh --issue --dns dns_tinydns -d '*.example.com' --server letsencrypt || { echo &quot;Could not generate cert&quot; exit 1 }"},"aioseo_meta_data":{"post_id":"312","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2025-07-23 02:33:38","updated":"2025-07-23 02:33:38","seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.cmsws.com\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.cmsws.com\/blog\/category\/misc\/\" title=\"Misc\">Misc<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tUse acme.sh to create Wildcard certs via Let\u2019s Encrypt\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.cmsws.com\/blog"},{"label":"Misc","link":"https:\/\/www.cmsws.com\/blog\/category\/misc\/"},{"label":"Use acme.sh to create Wildcard certs via Let&#8217;s Encrypt","link":"https:\/\/www.cmsws.com\/blog\/use-acme-sh-to-create-wildcard-certs-via-lets-encrypt\/"}],"_links":{"self":[{"href":"https:\/\/www.cmsws.com\/blog\/wp-json\/wp\/v2\/posts\/312","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.cmsws.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.cmsws.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.cmsws.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cmsws.com\/blog\/wp-json\/wp\/v2\/comments?post=312"}],"version-history":[{"count":0,"href":"https:\/\/www.cmsws.com\/blog\/wp-json\/wp\/v2\/posts\/312\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.cmsws.com\/blog\/wp-json\/wp\/v2\/media?parent=312"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.cmsws.com\/blog\/wp-json\/wp\/v2\/categories?post=312"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.cmsws.com\/blog\/wp-json\/wp\/v2\/tags?post=312"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}