Categories
How To

How to Enable SSL with Let’s Encrypt on Linux: Configuring Apache and Nginx

Secure Sockets Layer (SSL), now largely superseded by Transport Layer Security (TLS), is used to secure connections between web servers and browsers. This ensures that all data passed between the two systems remains private and secure. Let’s Encrypt is a free, automated, and open Certificate Authority that provides SSL/TLS certificates. This guide will illustrate how to enable SSL with Let’s Encrypt on Linux and configure Apache and Nginx web servers.

Before we start, you should have:

A Linux server running Ubuntu or Debian.
Root or sudo access to the server.
Either Apache or Nginx installed.
A Fully Qualified Domain Name (FQDN) pointed at your server.

Step 1: Installing Certbot

Certbot is the software client used to install Let’s Encrypt SSL certificates. Install it using the package manager. For Ubuntu or Debian-based systems:

sudo apt-get update & sudo apt-get install certbot

Step 2: Obtaining an SSL Certificate

Once Certbot is installed, you can obtain an SSL certificate. This differs slightly depending on whether you’re using Apache or Nginx.

For Apache:
sudo certbot --apache -d yourdomain.com -d www.yourdomain.com

For Nginx:
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com

Replace yourdomain.com with your actual domain name. The -d flag is used to specify the domain names you want the certificate to be valid for. Certbot will take care of the rest, obtaining a certificate and configuring your web server to use it.

Step 3: Verifying the SSL Certificate

To verify that the SSL certificate is working correctly, navigate to your domain in a web browser, using https:// at the start of the URL. You should see a lock icon next to the URL, indicating that the site is secure.
Step 4: Setting up Auto-Renewal

Let’s Encrypt certificates expire after 90 days, but Certbot includes a script to auto-renew certificates. To test that auto-renewal works, you can use:

sudo certbot renew --dry-run

If the test is successful, you can set up auto-renewal by adding a cron job. Open the cron tab file:

sudo crontab -e

Add the following line to the file:

0 2 * * * /usr/bin/certbot renew --quiet

This will attempt to renew the certificate at 2 am, every day. If the certificate is due for renewal (less than 30 days to expiry), it will be renewed.

Congratulations! You have now enabled SSL with Let’s Encrypt on your Linux server and configured either Apache or Nginx to use the SSL certificate. Remember to verify the SSL certificate and setup auto-renewal to ensure continuous secure connections.

Categories
shellinfo tips

WGET with examples

The wget command is a free utility in the Linux command-line interface for non-interactive download of files from the web. It supports HTTP, HTTPS, and FTP protocols, and can retrieve files through HTTP proxies. In this blog post, we’ll delve into the wget command, providing a comprehensive understanding with practical examples.
Understanding the ‘wget’ Command

The wget command is primarily used to download files from the internet. The basic syntax of the wget command is as follows:

wget [option]... [URL]...

Downloading Files with ‘wget’

To download a file from a URL, you simply provide the URL as an argument:

wget https://example.com/file.txt

This command will download the file file.txt from https://example.com.
Downloading in the Background with ‘wget’

If you’re downloading a large file, you may want to run wget in the background. You can do this with the -b (background) option:

wget -b https://example.com/large-file.zip

This command will download large-file.zip in the background.
Limiting the Download Rate with ‘wget’

To prevent wget from using all available bandwidth, you can limit the download rate with the –limit-rate option:

wget --limit-rate=200k https://example.com/large-file.zip

This command will limit the download rate to 200 KB/s.
Downloading Multiple Files with ‘wget’

To download multiple files, you can provide multiple URLs:

wget https://example.com/file1.txt https://example.com/file2.txt

This command will download file1.txt and file2.txt.
Conclusion

The wget command is a powerful tool for downloading files in Linux. Whether you’re downloading a single file, running in the background, limiting the download rate, or downloading multiple files, wget provides a flexible way to download files directly from the command line. With the examples provided in this guide, you’re well on your way to mastering the wget command.

Categories
shellinfo tips

Using the Linux ‘curl’ Command

The curl command is a versatile tool in the Linux command-line interface, used for transferring data to or from a server. It supports a multitude of protocols, including HTTP, HTTPS, FTP, and more. In this blog post, we’ll delve into the curl command, providing a comprehensive understanding with practical examples.
Understanding the ‘curl’ Command

The curl command is primarily used to download or upload data. The basic syntax of the curl command is as follows:

curl [options] [URL...]

Downloading Data with ‘curl’

To download data from a URL, you simply provide the URL as an argument:

curl https://example.com

This command will send a GET request to https://example.com and print the response to the standard output.

If you want to save the response to a file, you can use the -o (output) option followed by the filename:

curl -o example.html https://example.com

This command will save the response to example.html.
Sending POST Requests with ‘curl’

The curl command can also send POST requests. To do this, you can use the -d (data) option followed by the data you want to send:

curl -d "param1=value1¶m2=value2" https://example.com

This command will send a POST request to https://example.com with the data param1=value1&param2=value2.
Sending Headers with ‘curl’

To send headers with your request, you can use the -H (header) option:

curl -H "Content-Type: application/json" -d '{"param1":"value1","param2":"value2"}' https://example.com

This command will send a POST request to https://example.com with a JSON payload and the Content-Type: application/json header.
Conclusion

The curl command is a powerful tool for data transfer in Linux. Whether you’re downloading a webpage, sending a POST request, or setting headers, curl provides a flexible way to interact with servers directly from the command line. With the examples provided in this guide, you’re well on your way to mastering the curl command.