BM: Baca dalam Bahasa Melayu
World L3: Phone Lines
HTTPS and certificates
You will learn: what a certificate is, how to read its dates, and what its errors mean.
Checked with Linux (Debian 13) on 1 Nov 2026
The problem
Monday morning. Customers see a scary warning. The real error says certificate has expired. Plain words: the shop’s ID card ran out.
Watch
A certificate: A server's ID card: its names, who signed it and when it expires. is the server’s ID card: its name, who signed it, and its dates. curl -v shows it. Tap the end date.
Tap the line with the end date.
0 of 1 found
Watch
HTTPS: HTTP in a sealed envelope. The shop also shows an ID card: its certificate. is HTTP in a sealed envelope. A trusted office, the certificate authority, signs ID cards. Put the check in order.
First step at the top. Put these in order. Use the arrows, or drag.
- curl checks the signer, the name and the dates
- curl says hello and asks for the ID card
- The order travels sealed
- Both agree on a secret key
- The shop shows its certificate
Try it
kedai has no sealed line yet. Prove it: call https://localhost, then look at ss -tln.
You are you in /home/you. 0 things here. Services: cron running, ssh running, nginx running.
you@kedai:~$Folder ~
Empty folder
+ 3 hidden (ls -a)
Services
cronrunningstarts at bootsshrunningstarts at bootnginxrunningstarts at boot
Phone lines (network) Address 10.0.0.5
Listening ports
:22sshd:80nginx
Watch
openssl s_client fetches the ID card like a browser. x509 reads it. -checkend 2592000 asks: still good in 30 days?
Predict
curl https://203.0.113.10 says no alternative certificate subject name matches. Why?
Pick one answer.
Check
Real errors, plain fixes. Sort them.
Drag a card into a box. Or tap the card, then tap the box.
You did it!
You can now read a certificate’s dates and name its errors.
Go deeper (optional)
These outputs came from our own practice lab. It has a home-made CA, so we told the laptop to trust it. Real shops get free certificates from Let’s Encrypt and renew them automatically. curl -k skips every check: use it only to look, never in scripts.
Real mission
openssl s_client -connect example.com:443 < /dev/null 2>/dev/null | openssl x509 -noout -datescurl -sv -o /dev/null https://example.com
0 of 2 steps done · Your ticks are saved.
Bahasa Melayu
Pagi Isnin. Pelanggan nampak amaran yang menakutkan. Ralat sebenar kata certificate has expired. Maksudnya: kad pengenalan kedai sudah luput.
Sijil ialah kad pengenalan server: namanya, siapa yang tandatangan, dan tarikhnya. curl -v menunjukkannya. Tekan tarikh tamat.
HTTPS ialah HTTP dalam sampul bermeterai. Pejabat dipercayai, iaitu certificate authority (CA), tandatangan kad pengenalan. Susun semakan ini.
kedai belum ada talian bermeterai. Buktikan: hubungi https://localhost, kemudian tengok ss -tln.
openssl s_client ambil kad pengenalan seperti pelayar. x509 membacanya. -checkend 2592000 bertanya: masih sah dalam 30 hari?
curl https://203.0.113.10 kata no alternative certificate subject name matches. Kenapa?
Ralat sebenar, cara baiki yang mudah. Susun mereka.
Kini anda boleh baca tarikh sijil dan namakan ralatnya.
You finished this before. Practice is always welcome!
Official docs: OpenSSL: s_client · OpenSSL: x509 · curl: SSL certificate checks · Let's Encrypt: how it works
You've learned for 25 minutes. A short break helps your brain.
Sprint done! Great focus. Stretch for a minute?