Skip to content

Commit 53e9382

Browse files
committed
Doc: Show how to get started with digital certificates
1 parent 1335d39 commit 53e9382

File tree

5 files changed

+45
-4
lines changed

5 files changed

+45
-4
lines changed
23.4 MB
Loading

images/linode/ssl/lets_encrypt.png

694 KB
Loading
122 KB
Loading

linode/buy_domain.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -149,15 +149,15 @@ There are several questions you will be asked. The first page has two questions.
149149

150150
![Authenticate Your Domain Page 1](/images/linode/buy_domain/authenticate_domain_page_1.png)
151151

152-
Click on the "Next" button to continue. You will be required to update the domain name from which an email can be sent. A nice little preview of the email is shown as you key in your domain name.
152+
I will click on the "Next" button to continue. I am required to update the domain name from which an email can be sent. A nice little preview of the email is shown as I key in my domain name.
153153

154154
![Authenticate Your Domain Page 2](/images/linode/buy_domain/authenticate_domain_page_2.png)
155155

156156
Finally, I will need to manually add the records seen in page 3 to my domain in Linode. There are five records that I need to add. These records need to be added to the CNAME section within Linode.
157157

158158
![Authenticate Your Domain Page 3](/images/linode/buy_domain/authenticate_domain_page_3.png)
159159

160-
On my Linode domain, I will scroll down to the CNAME section, click on the "Add a CNAME Record" button, and add the above records.
160+
On my Linode Dashboard manager domain link, I will scroll down to the CNAME section, click on the "Add a CNAME Record" button, and add the above records.
161161

162162
![CNAME records section](/images/linode/buy_domain/cname_record_section.png)
163163

linode/secure_domain_with_ssl.md

Lines changed: 43 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,48 @@
11
# Secure Your Domain With SSL
22

3-
Now that you have your application deployed on Linode and you have a domain name, let us make all browsers accept to run your application without the rather scary warning that your site is not secure. For your reference, these are the topics in our discussion:
3+
With my application up and running on my server, and with a domain name, I will now secure my domain with SSL. For your reference, these are the topics in our discussion throughout this series:
44

55
1. [Deploy your flask app on Linode](/linode/deploy_on_linode.md)
66
2. [Buy a domain name for your deployed application](/linode/buy_domain.md)
7-
3. [Secure your domain with SSL](/linode/secure_domain_with_ssl.md)
7+
3. [Secure your domain with SSL](/linode/secure_domain_with_ssl.md)
8+
9+
## Table of Contents
10+
11+
This tutorial is divided into the following sections:
12+
13+
- [SSL Overview](#ssl-overview)
14+
- [Working With Let's Encrypt](#working-with-lets-encrypt)
15+
16+
I have noted that next to my domain name on a browser, there is "Not Secure" badge. Clicking on this badge reveals a message that says "Your connection to this site is not secure."
17+
18+
19+
![Not secure badge](/images/linode/ssl/not_secure_badge.png)
20+
21+
The URL of my application currently is http://www.bolderlearner.com/. What I would like to do is to make my site secure by enabling HTTPS with a free certificate using a service called [Let's Encrypt](https://letsencrypt.org/). To understand the difference between HTTP and HTTPS, let us go over some basics.
22+
23+
## SSL Overview
24+
25+
In full, SSL stands for Secure Sockets Layer. It is a standard technology used to keep an internet connection secure by safeguarding any sensitive data that is being sent between two systems, such as a server (Linode) and a client (brave browser). It uses encryption algorithms to scramble data in transit. An updated version of the SSL is called the TLS (Transport Layer Security).
26+
27+
HTTPS (Hypertext Transfer Protocol Secure) is a protocol that uses SSL to encrypt the data sent between the client and the server. It is a standard protocol that is used to securely transfer data between a client and a server. The principal motivations for using HTTPS are to protect the privacy of the data and to prevent eavesdropping. It protects against man-in-the-middle-attacks.
28+
29+
The authentication aspect of HTTPS typically requires a trusted third party to sign server-side digital certificates. We still refer to HTTPS using SSL rather than TLS because the term is more commonly used. The details of the certificate, including the issuing authority and the corporate name of the website owner, can be viewed by clicking on the lock symbol on the browser bar.
30+
31+
## Workign With Let's Encrypt
32+
33+
This is a non-profit organization that is authorized to issue digital certificates. To get started, paste the following URL into your browser to access their page: https://letsencrypt.org/
34+
35+
36+
37+
![Let's Encrypt](/images/linode/ssl/lets_encrypt.png)
38+
39+
Click the "Get Started" button to learn how you can get a free SSL certificate. Typically, you will need to SSH into your server to run the commands needed to get a certificate. Since I have shell access, I will use the [Certbot](https://certbot.eff.org/) ACME command line tool to get a free SSL certificate.
40+
41+
![Cerbot commands](/images/linode/ssl/certbot_commands.gif)
42+
43+
Once on https://certbot.eff.org/, I will identify that my HTTP website is running Nginx on Ubuntu 20. Filling this will provide me several commands that I need to run to get a free SSL certificate. To use certbot, I will need these things:
44+
45+
- Comfort with the command line interface
46+
- A HTTP website what is already online with an open port (80)
47+
- Application hosted on a server that can be accessed via SSH with the ability to run sudo commands
48+

0 commit comments

Comments
 (0)