Yueteng | yh958@cornell.edu
Root domain is:
diaper.cf |
(Note: Do NOT use this root domain directly. Instead, use the subdomains under the Domains to use table below.
Registered as a free domain (renewable every 12 months) at https://www.freenom.com/
User account login info (email, password) are the same as gmail/github/etc
Current registration expires on 2021-12-05 (December 5th) (Must renew at the above website before expiration)
| Environment | Backend | Domain | Note | Sample URL |
|---|---|---|---|---|
| Production | On-line | on-prod.diaper.cf | This points to AWS under Cornell contract i.e. 35.168.248.57 | https://on-prod.diaper.cf:5001/api/version |
| Test | On-line | on-test.diaper.cf | This points to public AWS (under Tan's account) i.e. 3.232.82.82 | https://on-test.diaper.cf:5001/api/version |
| Production | Off-line | off-prod.diaper.cf | (Not set up yet) | |
| Test | Off-line | off-test.diaper.cf | (Not set up yet) This points to public AWS (under Tan's account) i.e. 3.232.82.82 |
For API callers (i.e. frontend web/app)
Choose the domain accordingly, prepend it with http or https, and append it with port number and path.
The free SSL cert from Let's Encrypt is used for this purpose.
Let's Encrypt website (no need to visit for this purpose, though): https://letsencrypt.org/
[Tutorial: Configure SSL/TLS on Amazon Linux 2 - Amazon Elastic Compute Cloud]
(https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/SSL-on-amazon-linux-2.html#letsencrypt)
On section "Certificate automation: Let’s Encrypt with Certbot on Amazon Linux 2", Use this to instal `certauto`, but not to create
Stop after done `sudo yum install -y certbot python2-certbot-apache`
Do the following steps
Command line to use
sudo certbot certonly --manual --preferred-challenges=dns --email diapertestemail@gmail.com --server https://acme-v02.api.letsencrypt.org/directory --agree-tos -d diaper.cf -d *.diaper.cf |
Cert information
Upon success, you'll see some information similar to below
IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/diaper.cf/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/diaper.cf/privkey.pem Your certificate will expire on 2021-06-03. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew" |
As shown above, current SSL cert expires on 2021-06-03 (June 3) (Must renew by the command given "certbot renew" before expiration; Might need to run with "sudo")
Note SSL cert is a separate thing to register besides domain. These two need to be renewed separately.
How to renew?
Redo the steps under "Do the following steps" above; And copy the new cert as in "Copy cert files to somewhere docker can access and give permission" below
Copy cert files to somewhere docker can access and give permission
Create a cert folder under project path, and copy both .pem files into the folder. Then change the permissions by:
sudo chown ec2-user:ec2user ./certs/* |
This will allow flask and docker to access the cert files.