Let’s Encrypt 是一个被所有浏览器信任的免费 CA;
所以如果你的服务对外提供访问(公网网站),必须使用 Let’s Encrypt 或其他受信任的 CA才能避免浏览器警告,让访客看到绿色小锁 🔒。
HTTPS 背后的核心思想:信任链
当你在浏览器里访问:https://example.com
浏览器要验证三件事:
- 这个网站的证书是否有效?
- 证书中的域名是不是和你访问的域名一致?
- 这个证书是不是被“可信的机构(CA)”签发的?
👉 浏览器默认只信任一批“根证书”(Root CA),
比如:
- DigiCert
- GlobalSign
- Sectigo
- Let’s Encrypt
- Google Trust Services
- … 等等
这些“根证书”都被内置在操作系统和浏览器中。
所以,当 Let’s Encrypt 给你的网站签发证书时,它相当于在说:
“我(Let’s Encrypt)已经验证过,这个域名确实归这台服务器所有,浏览器你可以放心和它建立加密连接。”
自己能当 CA 吗?
可以,但浏览器不会信任你。
你完全可以自己生成一套“自签名证书”(Self-Signed Certificate):
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365
这样你的服务器也能用 HTTPS,数据也能加密。
但问题是:
浏览器看到后会警告:
❌ “此网站的连接不安全”
⚠️ “证书不是受信任的机构签发的”
因为浏览器不认识你这个“自建 CA”。