Getting SSL Certificate with "Let's Encrypt"

“Let’s encrypt” is an automated certification center providing SSL certificates.

To get a certificate for a domain, a requester should prove that he owns that domain. Confirmation works as follows: a certbot application is installed on a domain’s website’s server. This application downloads a certain file (check file) from the Let’s encrypt’s server. Bot application creates a .well-known directory inside the web server’s directory and puts the check file inside it.

At the second stage of the confirmation process, Let’s encrypt downloads the check file from the domain of the server it’s checking. If the file is available, Let’s encrypt compares its name and contents with its own check file. If it’s OK, Let’s encrypt sends 3 SSL certificates and a file which includes a private key. Refer to this page for details.

To finish certificate configuring, access the management console of your site’s server and install certbot app. For installation guide refer to the official website.

Select your web server and OS your site is running on. There are special plugins for Apache and Nginx exist which enable to perform installation in interactive mode. We were not able to get certificates using the plugins, that’s why we recommend employing webroot method. Refer to this online guide for details.

For the purpose of this guide we’ve installed Apache server on Azure virtual machine. The Apache includes virtual host for certbot to place the check file. Then we used the following command:

sudo certbot certonly --webroot -w /etc/httpd/www -d to request and get SSL certificates for domain. It is a free domain registered for the purpose of this instruction. /etc/httpd/www in the command’s line is a path to the virtual host directory.

Regardless of what web server you’re using for your domain, there are some important conditions for getting the certificates.

    1. The web server should listen to the ports 80 and 443
    2. Access to the host contents should be open. It is required to access with the URL of the following format: whe