{"id":4225,"date":"2026-02-06T15:04:59","date_gmt":"2026-02-06T15:04:59","guid":{"rendered":"https:\/\/www.thesslstore.com\/knowledgebase\/?post_type=ht_kb&#038;p=4225"},"modified":"2026-02-09T16:28:20","modified_gmt":"2026-02-09T16:28:20","slug":"how-to-install-an-acme-ssl-certificate-on-apache-or-nginx-linux","status":"publish","type":"ht_kb","link":"https:\/\/www.thesslstore.com\/knowledgebase\/acme-automation\/how-to-install-an-acme-ssl-certificate-on-apache-or-nginx-linux\/","title":{"rendered":"How to Install an ACME SSL Certificate on Apache or NGINX (Linux)"},"content":{"rendered":"<p>The following instructions will guide you through installing an ACME-enabled SSL certificate on an Apache or NGINX web server running on Linux. This guide uses Certbot, the most popular ACME client, which can automatically obtain and install certificates and configure your web server.<\/p>\n<p>After you complete the initial setup, your SSL certificate should be hands-free: renewals and updates happen automatically without you needing to worry about it.<\/p>\n<p><strong>Note: <\/strong>Certbot requires a supported, up-to-date operating system with the necessary dependencies. Using an outdated OS may result in installation errors. Root or sudo access is required for all installation steps.<\/p>\n<h2>What You&#8217;ll Need<\/h2>\n<p>Before you begin, make sure you have the following:<\/p>\n<ul>\n<li><strong>Apache or NGINX Web Server<\/strong> \u2013 Installed and running on your Linux server.<\/li>\n<li><strong>Root or Sudo Access<\/strong> \u2013 Administrative privileges on your server.<\/li>\n<li><strong>Domain Name<\/strong> \u2013 Pointing to your server&#8217;s IP address via DNS A\/AAAA record.<\/li>\n<li><strong>ACME Credentials<\/strong> \u2013 Your EAB Key ID (eab-kid) and EAB HMAC Key (eab-hmac-key) from your Certificate Authority.<\/li>\n<li><strong>ACME Server URL<\/strong> \u2013 The ACME directory URL provided by your CA (e.g., https:\/\/acme.sectigo.com\/v2\/DV).<\/li>\n<\/ul>\n<h2>Step 1: Install Certbot<\/h2>\n<p>Tip: you can run certbot &#8211;version to see if certbot is already installed on your server.<\/p>\n<p>Certbot is the recommended ACME client for Apache and NGINX. Installation steps vary by operating system and web server. Select your OS family below, then choose <strong>one<\/strong> of the available installation methods.<\/p>\n<h3>For Debian\/Ubuntu Systems<\/h3>\n<p>The following instructions apply to Debian, Ubuntu, Linux Mint, and other Debian-based distributions. Choose <strong>Option A<\/strong> or <strong>Option B<\/strong> below\u2014you only need to complete one.<\/p>\n<h4>Option A: Install via apt<\/h4>\n<p>The apt package manager provides a straightforward installation that integrates with your system&#8217;s package management. This method may not always provide the latest version of Certbot.<\/p>\n<ol>\n<li>Update your package list:<\/li>\n<\/ol>\n<p><code>sudo apt update<\/code><\/p>\n<ol start=\"2\">\n<li>Install Certbot with the appropriate plugin for your web server:<\/li>\n<\/ol>\n<p><strong>For Apache:<\/strong><\/p>\n<p><code>sudo apt install certbot python3-certbot-apache<\/code><\/p>\n<p><strong>For NGINX:<\/strong><\/p>\n<p><code>sudo apt install certbot python3-certbot-nginx<\/code><\/p>\n<h4>Option B: Install via snap (Recommended)<\/h4>\n<p>The Certbot developers recommend installation via snap, as it provides automatic updates and always delivers the latest version. This method installs Certbot with support for both Apache and NGINX.<\/p>\n<ol>\n<li>Ensure snapd is installed and up to date:<\/li>\n<\/ol>\n<p><code>sudo snap install core<\/code><br \/>\n<code>sudo snap refresh core<\/code><\/p>\n<ol start=\"2\">\n<li>Install Certbot:<\/li>\n<\/ol>\n<p><code>sudo snap install --classic certbot<\/code><\/p>\n<ol start=\"3\">\n<li>Create a symbolic link so you can run Certbot from anywhere:<\/li>\n<\/ol>\n<p><code>sudo ln -s \/snap\/bin\/certbot \/usr\/bin\/certbot<\/code><\/p>\n<h3>For Red Hat\/CentOS\/Fedora Systems<\/h3>\n<p>The following instructions apply to Red Hat Enterprise Linux (RHEL), CentOS, Fedora, Rocky Linux, AlmaLinux, and other RHEL-based distributions. Choose <strong>Option A<\/strong> or <strong>Option B<\/strong> below\u2014you only need to complete one.<\/p>\n<h4>Option A: Install via dnf or yum<\/h4>\n<p>This method uses your system&#8217;s native package manager. You&#8217;ll need to enable the EPEL (Extra Packages for Enterprise Linux) repository first.<\/p>\n<ol>\n<li>Enable the EPEL repository:<\/li>\n<\/ol>\n<p><code>sudo dnf install epel-release<\/code><br \/>\nOR<br \/>\n<code>sudo yum install epel-release<\/code><\/p>\n<ol start=\"2\">\n<li>Refresh the repository list:<\/li>\n<\/ol>\n<p><code>sudo dnf clean all<\/code><br \/>\n<code>sudo dnf update<\/code><br \/>\nOR<br \/>\n<code>sudo yum clean all<\/code><br \/>\n<code>sudo yum update<\/code><\/p>\n<ol start=\"3\">\n<li>Install Certbot with the appropriate plugin for your web server:<\/li>\n<\/ol>\n<p><strong>For Apache:<\/strong><\/p>\n<p><code>sudo dnf install certbot python3-certbot-apache<\/code><br \/>\nOR<br \/>\n<code>sudo yum install certbot python-certbot-apache<\/code><\/p>\n<p><strong>For NGINX:<\/strong><\/p>\n<p><code>sudo dnf install certbot python3-certbot-nginx<\/code><br \/>\nOR<br \/>\n<code>sudo yum install certbot python-certbot-nginx<\/code><\/p>\n<h4>Option B: Install via snap (Recommended)<\/h4>\n<p>The Certbot developers recommend installation via snap, as it provides automatic updates and always delivers the latest version. This method installs Certbot with support for both Apache and NGINX.<\/p>\n<ol>\n<li>Ensure snapd is installed and up to date:<\/li>\n<\/ol>\n<p><code>sudo snap install core<\/code><br \/>\n<code>sudo snap refresh core<\/code><\/p>\n<ol start=\"2\">\n<li>Install Certbot:<\/li>\n<\/ol>\n<p><code>sudo snap install --classic certbot<\/code><\/p>\n<ol start=\"3\">\n<li>Create a symbolic link so you can run Certbot from anywhere:<\/li>\n<\/ol>\n<p><code>sudo ln -s \/snap\/bin\/certbot \/usr\/bin\/certbot<\/code><\/p>\n<h2>Step 2: Obtain and Install Your Certificate<\/h2>\n<p>With Certbot installed, you can now request your SSL certificate. Certbot&#8217;s automatic mode will obtain the certificate, configure your web server, and set up automatic renewal\u2014all in a single command.<\/p>\n<p>Run the appropriate command for your web server, replacing the placeholder values with your own:<\/p>\n<p><strong>For Apache:<\/strong><\/p>\n<p><code>sudo certbot --apache --non-interactive --agree-tos \\<\/code><br \/>\n<code>\u00a0 --server &lt;acme-directory&gt; \\<\/code><br \/>\n<code>\u00a0 --email &lt;your-email&gt; \\<\/code><br \/>\n<code>\u00a0 --eab-kid &lt;your-eab-kid&gt; \\<\/code><br \/>\n<code>\u00a0 --eab-hmac-key &lt;your-hmac-key&gt; \\<\/code><br \/>\n<code>\u00a0 --domain &lt;your-domain&gt; \\\u00a0 <\/code><br \/>\n<code>\u00a0 --cert-name &lt;your-certificate-name&gt;<\/code><\/p>\n<p><strong>For NGINX:<\/strong><\/p>\n<p><code>sudo certbot --nginx --non-interactive --agree-tos \\<\/code><br \/>\n<code>\u00a0 --server &lt;acme-directory&gt; \\<\/code><br \/>\n<code>\u00a0 --email &lt;your-email&gt; \\<\/code><br \/>\n<code>\u00a0 --eab-kid &lt;your-eab-kid&gt; \\<\/code><br \/>\n<code>\u00a0 --eab-hmac-key &lt;your-hmac-key&gt; \\<\/code><br \/>\n<code>\u00a0 --domain &lt;your-domain&gt; \\\u00a0 <\/code><br \/>\n<code>\u00a0 --cert-name &lt;your-certificate-name&gt;<\/code><\/p>\n<p><strong>Command Parameters<\/strong><\/p>\n<ul>\n<li><strong>&#8211;apache \/ &#8211;nginx<\/strong> \u2013 Specifies your web server for automatic configuration.<\/li>\n<li><strong>&#8211;non-interactive<\/strong> \u2013 Runs without prompts, suitable for scripts and automation.<\/li>\n<li><strong>&#8211;agree-tos<\/strong> \u2013 Automatically accepts the terms of service.<\/li>\n<li><strong>&#8211;server<\/strong> \u2013 The ACME directory URL provided by your CA (e.g., https:\/\/acme.sectigo.com\/v2\/DV).<\/li>\n<li><strong>&#8211;email<\/strong> \u2013 Your email address for certificate expiration notifications.<\/li>\n<li><strong>&#8211;eab-kid<\/strong> \u2013 Your External Account Binding Key ID from your CA.<\/li>\n<li><strong>&#8211;eab-hmac-key<\/strong> \u2013 Your EAB HMAC Key from your CA.<\/li>\n<li><strong>&#8211;domain<\/strong> \u2013 The domain(s) to secure. Use multiple &#8211;domain flags for additional domains.<\/li>\n<li><strong>&#8211;cert-name<\/strong> \u2013 A friendly name to identify this certificate on your system.<\/li>\n<\/ul>\n<p><strong>Example Command<\/strong><\/p>\n<p>Here is a complete example for Apache using a Sectigo ACME server:<\/p>\n<p><code>sudo certbot --apache --non-interactive --agree-tos \\<\/code><br \/>\n<code>\u00a0 --email admin@example.com \\<\/code><br \/>\n<code>\u00a0 --server https:\/\/acme.sectigo.com\/v2\/DV \\<\/code><br \/>\n<code>\u00a0 --eab-kid abc123yourEabKid \\<\/code><br \/>\n<code>\u00a0 --eab-hmac-key xyz789yourHmacKey \\<\/code><br \/>\n<code>\u00a0 --domain example.com \\<\/code><br \/>\n<code>\u00a0 --domain www.example.com \\\u00a0 <\/code><br \/>\n<code>\u00a0 --cert-name my-example-certificate<\/code><\/p>\n<p><strong>Tip: <\/strong>For NGINX, simply change &#8211;apache to &#8211;nginx in the command above. To secure multiple domains with a single certificate, include a separate &#8211;domain flag for each domain.<\/p>\n<h2>Step 3: Verify the Installation<\/h2>\n<p>After the command completes successfully, verify that your certificate is installed and working:<\/p>\n<ul>\n<li>Visit https:\/\/yourdomain.com in your browser and confirm the padlock icon appears.<\/li>\n<li>Check that the certificate details show the correct domain and expiration date.<\/li>\n<li>Use our <a href=\"https:\/\/www.thesslstore.com\/ssltools\/ssl-checker.php\">SSL Checker Tool<\/a> for a comprehensive verification of your installation.<\/li>\n<\/ul>\n<p>Certbot automatically configures a cron job or systemd timer to renew your certificate before it expires. No additional configuration is required for automatic renewal.<\/p>\n<p><strong>Congratulations!<\/strong> You have successfully installed your ACME SSL certificate. Your certificate will renew automatically, ensuring uninterrupted HTTPS protection.<\/p>\n<h2>Additional Resources<\/h2>\n<p>If you encounter any issues during the installation process or need further assistance, please contact our <a href=\"https:\/\/www.thesslstore.com\/support\/\">Customer Experience Department<\/a> for support.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Step-by-step guide to install an ACME SSL certificate on Apache or NGINX using Certbot. Covers installation on Debian\/Ubuntu and Red Hat\/CentOS systems with automatic certificate configuration.<\/p>\n","protected":false},"author":1,"comment_status":"closed","ping_status":"closed","template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"ht-kb-category":[89],"ht-kb-tag":[],"class_list":["post-4225","ht_kb","type-ht_kb","status-publish","format-standard","hentry","ht_kb_category-acme-automation"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>How to Install an ACME SSL Certificate on Apache or NGINX (Linux) - Knowledge Base<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.thesslstore.com\/knowledgebase\/acme-automation\/how-to-install-an-acme-ssl-certificate-on-apache-or-nginx-linux\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Install an ACME SSL Certificate on Apache or NGINX (Linux) - Knowledge Base\" \/>\n<meta property=\"og:description\" content=\"Step-by-step guide to install an ACME SSL certificate on Apache or NGINX using Certbot. Covers installation on Debian\/Ubuntu and Red Hat\/CentOS systems with automatic certificate configuration.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.thesslstore.com\/knowledgebase\/acme-automation\/how-to-install-an-acme-ssl-certificate-on-apache-or-nginx-linux\/\" \/>\n<meta property=\"og:site_name\" content=\"Knowledge Base\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/thesslstoredotcom\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-09T16:28:20+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.thesslstore.com\/knowledgebase\/wp-content\/uploads\/2017\/04\/thesslstore.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"300\" \/>\n\t<meta property=\"og:image:height\" content=\"300\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@thesslstore\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to Install an ACME SSL Certificate on Apache or NGINX (Linux) - Knowledge Base","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.thesslstore.com\/knowledgebase\/acme-automation\/how-to-install-an-acme-ssl-certificate-on-apache-or-nginx-linux\/","og_locale":"en_US","og_type":"article","og_title":"How to Install an ACME SSL Certificate on Apache or NGINX (Linux) - Knowledge Base","og_description":"Step-by-step guide to install an ACME SSL certificate on Apache or NGINX using Certbot. Covers installation on Debian\/Ubuntu and Red Hat\/CentOS systems with automatic certificate configuration.","og_url":"https:\/\/www.thesslstore.com\/knowledgebase\/acme-automation\/how-to-install-an-acme-ssl-certificate-on-apache-or-nginx-linux\/","og_site_name":"Knowledge Base","article_publisher":"https:\/\/www.facebook.com\/thesslstoredotcom","article_modified_time":"2026-02-09T16:28:20+00:00","og_image":[{"width":300,"height":300,"url":"https:\/\/www.thesslstore.com\/knowledgebase\/wp-content\/uploads\/2017\/04\/thesslstore.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_site":"@thesslstore","twitter_misc":{"Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.thesslstore.com\/knowledgebase\/acme-automation\/how-to-install-an-acme-ssl-certificate-on-apache-or-nginx-linux\/","url":"https:\/\/www.thesslstore.com\/knowledgebase\/acme-automation\/how-to-install-an-acme-ssl-certificate-on-apache-or-nginx-linux\/","name":"How to Install an ACME SSL Certificate on Apache or NGINX (Linux) - Knowledge Base","isPartOf":{"@id":"https:\/\/www.thesslstore.com\/knowledgebase\/#website"},"datePublished":"2026-02-06T15:04:59+00:00","dateModified":"2026-02-09T16:28:20+00:00","breadcrumb":{"@id":"https:\/\/www.thesslstore.com\/knowledgebase\/acme-automation\/how-to-install-an-acme-ssl-certificate-on-apache-or-nginx-linux\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.thesslstore.com\/knowledgebase\/acme-automation\/how-to-install-an-acme-ssl-certificate-on-apache-or-nginx-linux\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.thesslstore.com\/knowledgebase\/acme-automation\/how-to-install-an-acme-ssl-certificate-on-apache-or-nginx-linux\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.thesslstore.com\/knowledgebase\/"},{"@type":"ListItem","position":2,"name":"How to Install an ACME SSL Certificate on Apache or NGINX (Linux)"}]},{"@type":"WebSite","@id":"https:\/\/www.thesslstore.com\/knowledgebase\/#website","url":"https:\/\/www.thesslstore.com\/knowledgebase\/","name":"Knowledge Base","description":"TheSSLstore","publisher":{"@id":"https:\/\/www.thesslstore.com\/knowledgebase\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.thesslstore.com\/knowledgebase\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.thesslstore.com\/knowledgebase\/#organization","name":"The SSL Store\u2122","url":"https:\/\/www.thesslstore.com\/knowledgebase\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.thesslstore.com\/knowledgebase\/#\/schema\/logo\/image\/","url":"https:\/\/www.thesslstore.com\/knowledgebase\/wp-content\/uploads\/2017\/04\/thesslstore.jpg","contentUrl":"https:\/\/www.thesslstore.com\/knowledgebase\/wp-content\/uploads\/2017\/04\/thesslstore.jpg","width":300,"height":300,"caption":"The SSL Store\u2122"},"image":{"@id":"https:\/\/www.thesslstore.com\/knowledgebase\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/thesslstoredotcom","https:\/\/x.com\/thesslstore","https:\/\/www.linkedin.com\/company\/the-ssl-store","https:\/\/www.youtube.com\/user\/thesslstore"]}]}},"_links":{"self":[{"href":"https:\/\/www.thesslstore.com\/knowledgebase\/wp-json\/wp\/v2\/ht-kb\/4225","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.thesslstore.com\/knowledgebase\/wp-json\/wp\/v2\/ht-kb"}],"about":[{"href":"https:\/\/www.thesslstore.com\/knowledgebase\/wp-json\/wp\/v2\/types\/ht_kb"}],"author":[{"embeddable":true,"href":"https:\/\/www.thesslstore.com\/knowledgebase\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.thesslstore.com\/knowledgebase\/wp-json\/wp\/v2\/comments?post=4225"}],"version-history":[{"count":0,"href":"https:\/\/www.thesslstore.com\/knowledgebase\/wp-json\/wp\/v2\/ht-kb\/4225\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.thesslstore.com\/knowledgebase\/wp-json\/wp\/v2\/media?parent=4225"}],"wp:term":[{"taxonomy":"ht_kb_category","embeddable":true,"href":"https:\/\/www.thesslstore.com\/knowledgebase\/wp-json\/wp\/v2\/ht-kb-category?post=4225"},{"taxonomy":"ht_kb_tag","embeddable":true,"href":"https:\/\/www.thesslstore.com\/knowledgebase\/wp-json\/wp\/v2\/ht-kb-tag?post=4225"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}