# How to setup cron job for automatic Let's Encrypt renewal?

[Cron](https://betterstack.com/community/guides/linux/cron-jobs-getting-started/) is a command-line job scheduler on Unix-like systems. It allows you to run
automated tasks in the background and it's especially useful for repetitive
jobs.

[info]
## 🔭 Want to get alerted when your Cron doesn’t run correctly?
Go to [Better Stack](https://betterstack.com/uptime/) and start monitoring in 5 minutes.
[/info]

That means it's a great tool for automatic renewal of the Let's Encrypt
certificate.

In this quick tutorial, we will take a look at how to use cron to automatically
renew let's encrypt certificate.

## How to renew Let's Encrypt using cron?

Let's Encrypt needs to be renewed at least weekly preferably daily. Longer time
periods may cause the certificate to be already expired when renewing. Official
documentation recommends running the script twice a day.

The program used for renewing Let's Encrypt is called certbot. You can install
certbot using the following command:

```bash
sudo apt install certbot
```

Then open your crontab as shown below:

```bash
crontab -e
```

In the crontab file, add the following line:

```bash
0  0,12 *  *  * certbot renew --post-hook "systemctl reload nginx"
```

This will renew Let's encrypt twice a day at midnight and midday. The second
part of the command which is highlighted is used to restart the Nginx web server
after renewal. If you are using Apache, change the highlighted part to
`service apache2 reload`.

[ad-uptime]