{"id":8,"date":"2025-10-16T11:37:32","date_gmt":"2025-10-16T11:37:32","guid":{"rendered":"https:\/\/cybermonolog.com\/?p=8"},"modified":"2025-10-16T11:37:32","modified_gmt":"2025-10-16T11:37:32","slug":"cpanel-free-letsencrypt-ssl-issue-deployment-and-auto-renew-on-shared-hosting","status":"publish","type":"post","link":"https:\/\/cybermonolog.com\/?p=8","title":{"rendered":"[cPanel] Free LetsEncrypt SSL issue, deployment and auto-renew on shared hosting"},"content":{"rendered":"\n<p>Managing SSL certificates across multiple shared hosting accounts can quickly become a time-consuming headache. If you&#8217;re like me and have several domains spread across platforms like NameCheap&#8217;s shared hosting, you&#8217;ve probably noticed their SSL policy: a 1-year free PositiveSSL certificate for new domains, followed by paid renewals. While switching to free Let&#8217;s Encrypt certificates sounds like a great alternative, the manual renewal process every 90 days becomes tedious\u2014especially when you&#8217;re juggling multiple accounts and domains.<\/p>\n\n\n\n<p>The good news? There&#8217;s a way to automate Let&#8217;s Encrypt SSL renewals on shared hosting without upgrading to premium plugins or switching providers. Once you set it up, your certificates will auto-renew in the background, saving you hours of repetitive work.<\/p>\n\n\n\n<p>This guide works with any shared hosting platform using cPanel, and the setup process is straightforward\u2014taking just a few minutes per domain. Here&#8217;s how to do it:<\/p>\n\n\n\n<p><strong>Step 1: Enable Manage Shell<\/strong><\/p>\n\n\n\n<p>1.1 &#8211; Log in to your Namecheap cPanel.<\/p>\n\n\n\n<p>1.2 &#8211; Navigate to the \u2018Manage Shell\u2019 and then &#8220;Enable SSH access&#8221;.<\/p>\n\n\n\n<p><strong>Step 2: Open the cPanel Terminal<\/strong><\/p>\n\n\n\n<p>cPanel &gt; \u2018Advanced\u2019 section &gt; Open \u2018Terminal\u2019<\/p>\n\n\n\n<p><strong>Step 3: Install<\/strong>&nbsp;<a href=\"http:\/\/acme.sh\/\" rel=\"noreferrer noopener\" target=\"_blank\"><strong>acme.sh<\/strong><\/a><\/p>\n\n\n\n<p>In the Terminal run these commands to install acme, make it auto-upgrade and then set the default SSL provider to Let&#8217;s Encrypt:<\/p>\n\n\n\n<p>curl&nbsp;<a href=\"https:\/\/get.acme.sh\/\" rel=\"noreferrer noopener\" target=\"_blank\">https:\/\/get.acme.sh<\/a>&nbsp;| sh<\/p>\n\n\n\n<p>acme.sh &#8211;upgrade &#8211;auto-upgrade<\/p>\n\n\n\n<p>acme.sh &#8211;set-default-ca &#8211;server letsencrypt<\/p>\n\n\n\n<p><strong>Step 4: Issue and install SSL certificates<\/strong><\/p>\n\n\n\n<p>4.1. SSL issue command:<\/p>\n\n\n\n<p>acme.sh &#8211;issue -d DOMAIN.COM -w \/home\/PATH_TO\/WEBSITE_DIRECTORY &#8211;server letsencrypt &#8211;force<\/p>\n\n\n\n<p>4.2. Install command:<\/p>\n\n\n\n<p>acme.sh &#8211;deploy -d DOMAIN.COM &#8211;deploy-hook cpanel_uapi<\/p>\n\n\n\n<p><strong>Step 5: You&#8217;re done. Congrats!<\/strong><\/p>\n\n\n\n<p>By following these steps, you should have a fully functioning SSL setup for your domain with auto-renewal configured. You can review all domains in the auto-renewal list with this command:<\/p>\n\n\n\n<p>acme.sh &#8211;list<\/p>\n\n\n\n<p>You can also verify the deploy hook is saved for each live domain with this command (copy all three lines at once):<\/p>\n\n\n\n<p>for f in ~\/.acme.sh\/*_ecc\/*.conf; do<\/p>\n\n\n\n<p>&nbsp; echo &#8220;== $f ==&#8221;; grep -E &#8216;Le_DeployHook|Le_Webroot&#8217; &#8220;$f&#8221;<\/p>\n\n\n\n<p>done<\/p>\n\n\n\n<p>You can now navigate back to cPanel &gt; \u2018Manage Shell\u2019 and disable it.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Managing SSL certificates across multiple shared hosting accounts can quickly become a time-consuming headache. If you&#8217;re like me and have several domains spread across platforms like NameCheap&#8217;s shared hosting, you&#8217;ve probably noticed their SSL policy: a 1-year free PositiveSSL certificate for new domains, followed by paid renewals. While switching to free Let&#8217;s Encrypt certificates sounds [&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-8","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/cybermonolog.com\/index.php?rest_route=\/wp\/v2\/posts\/8","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cybermonolog.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cybermonolog.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cybermonolog.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cybermonolog.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=8"}],"version-history":[{"count":1,"href":"https:\/\/cybermonolog.com\/index.php?rest_route=\/wp\/v2\/posts\/8\/revisions"}],"predecessor-version":[{"id":10,"href":"https:\/\/cybermonolog.com\/index.php?rest_route=\/wp\/v2\/posts\/8\/revisions\/10"}],"wp:attachment":[{"href":"https:\/\/cybermonolog.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=8"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cybermonolog.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=8"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cybermonolog.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=8"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}