Running CentOS 8 machine with shell access Follow initial server setup steps for newly installed machine A domain/sub domain pointed to server IP address via public DNS server. For this tutorial, we use

Step 1 – Install Apache

First of all, Install the Apache server on your CentOS 8 machine. The Apache packages are available under the default repositories.

How to Install Apache on CentOS 8 How to Install Apache/PHP-FPM on CentOS 8

Step 2 – Create VirtualHost with Port 80

For this tutorial, I have created a index.html file under the default document root. Similarly, you can place your application under the document root of your domain. After that, create a VirtualHost configuration file binding with port 80.

Save and close the file. Restart Apache service to reload the configuration.

Step 3 – Setup Let’s Encrypt (Certbot) Client

The Certbot ACME is a client application recommended by the Let’s Encrypt for systems with shell access. It provides hassle-free automation of the certificate issuance, installation, and renewal. You can download the certbot-auto script from the official download page and put it under /usr/sbin directory. Use the following command to do it. You also need to installed all dependency for the certbot to make it work. The below command will install it dependencies on your system.

Step 4 – Create Let’s Encrypt Certificate

Now, you can request Lets encrypt to issue a SSL certificate for you domain. You need to run the certbot-auto command for Apache server as following: This will list all the virtual hosts configured with Apache on current server. Select the appropriate number with the comma separated. See below screenshot:

The Let’s encrypt will start the verification process for your domain. Make sure the domain you selected is pointed to this server via the public DNS server. On successful verification, SSL will be issued for your domain. A separate SSL VirtualHost configuration file will be created for your domain. Please choose whether or not to redirect HTTP traffic to HTTPS:

1: No redirect – Make no further changes to the webserver configuration. 2: Redirect – Make all requests redirect to secure HTTPS access.

Enter a number of your choice and press enter. You can also change it latest by directly editing configuration files. Once the SSL configuration completed successfully, you will see a congratulations message on your screen.

Step 5 – Verify Certificate

The Let’s Encrypt SSL has been successfully configured for your domain. This certificate is issued for 3 months only, You can renew it before expiration. Let’s check the certificate by accessing your site in a web browser.


You have successfully secured your website with free Let’s Encrypt SSL certificate. Follow our next tutorial to setup Let’s Encrypt Auto SSL renewal with crontab. The CentOS 8 systems will have default TLS 1.2 and TLS 1.3 enabled.

How to Setup Let s Encrypt SSL with Apache on CentOS 8 - 35How to Setup Let s Encrypt SSL with Apache on CentOS 8 - 85How to Setup Let s Encrypt SSL with Apache on CentOS 8 - 84How to Setup Let s Encrypt SSL with Apache on CentOS 8 - 47