SSL-TLS证书
1. 免费证书
对于个人来说,使用免费的证书就行了,目前常用的免费证书颁发机构有Let’Encrypt、ZeroSSl,当然申请证书的办法有很多,Let’Encrypt 官方也推荐了很多申请脚本,比如Certbot 和 ACME,
一天内通过 Letsencrypt.org 申请次数过多, 可选 BuyPass.com 或 ZeroSSL.com 来申请.
2. TLS/SSL 证书
TLS 证书是实现网站 https 加密的最新技术标准,是在传统 SSL 证书上作了各种安全增强,被当前主流浏览器和服务器普遍使用的,而 SSL 证书已经逐渐被淘汰了,但是一般用户对 SSL 这个概念更加熟悉,更容易让人理解,所以很多地方所说的 SSL 或者 TLS/SSL 证书其实就是 TLS 证书。
目前 Let’Encrypt、Zerossl 等知名 CA 机构颁发的也都是 x509 v3 版本的 TLS 证书。我们都知道 TLS 证书主要用在访问网站时进行数据加密,那么同样可以用于科学上网中进行数据加密。
3. 证书有效期和续期
Let’encrypt 证书有效期都是 90 天,通过自动化脚本申请,安装后它会自动帮我们创建定时任务,每隔 60 天帮我自动申请更新证书,一次配置好,彻底解放我们的双手。当然我们也可以自己强制更新证书。
4. 一键申请 TLS/SSL 证书脚本:
bash <(curl -Lso- https://raw.githubusercontent.com/yirenchengfeng1/linux/main/acme.sh)
5. VPS 一键管理助手脚本:
bash <(curl -Lso- https://raw.githubusercontent.com/yirenchengfeng1/linux/main/manage_vps.sh)
具体来说,证书相关的文件被安装到了以下路径:
- 证书文件:
/root/cert/x-ui.baoyu2023.top.cer - 证书密钥文件:
/root/cert/x-ui.baoyu2023.top.key - 中间 CA 证书文件:
/root/cert/ca.cer - 完整证书链文件:
/root/cert/fullchain.cer
最后,脚本的输出显示总共有 24KB 的文件,这可能是证书及其相关文件的总大小。
在处理 SSL 证书时,通常会涉及到几个不同的文件,每个文件都有其特定的用途和重要性。以下是您提到的证书文件及其区别和联系:
6. 证书文件(.cer 或.crt):
- 这是最重要的文件,它包含了服务器的公钥以及证书签发机构(CA)对该公钥的数字签名。
- 它证明了服务器的身份,并且被客户端(如浏览器)用来验证服务器的真实性。
- 在您的例子中,证书文件是
/root/cert/x-ui.baoyu2023.top.cer。
7. 证书密钥文件(.key):
- 这个文件包含了服务器的私钥,必须保密,不应该泄露给任何人。
- 私钥用于解密通过公钥加密的数据,以及在 SSL/TLS 握手过程中证明服务器的身份。
- 在您的例子中,密钥文件是
/root/cert/x-ui.baoyu2023.top.key。
8. 中间 CA 证书文件(.cer 或.crt):
- 中间 CA 证书是证书链的一部分,它连接了您的服务器证书和根 CA 证书。
- 它证明了您的服务器证书是由一个受信任的根 CA 签发的。
- 在您的例子中,中间 CA 证书文件是
/root/cert/ca.cer。
9. 完整证书链文件(.cer 或.crt):
- 完整证书链包含了服务器证书、所有必要的中间 CA 证书,以及根 CA 证书。
- 它可以一次性提供整个证书链,以便客户端验证证书的有效性。
- 在您的例子中,完整证书链文件是
/root/cert/fullchain.cer。
这些文件共同工作,确保客户端和服务器之间的通信是安全可靠的。
通常,您需要在 Web 服务器配置中指定证书文件和密钥文件,以便 SSL/TLS 能够正确地建立安全连接。而完整证书链文件则可以确保客户端能够验证服务器证书的有效性,即使客户端没有中间 CA 证书的本地副本。
以下是每个选项的简要解释:
- 获取 SSL:这个选项可能允许您获取新的 SSL 证书。这个过程可能包括生成证书签名请求(CSR),提交给证书颁发机构(CA),然后在您的服务器上安装颁发的证书。
- 撤销:这个选项用于撤销 SSL 证书。如果您需要取消证书,因为它已经被泄露、私钥丢失或者域名不再使用,撤销证书是确保它不会被恶意使用的安全方式。
- 强制续签:这个选项强制续签 SSL 证书。通常,证书在过期前会自动续签,但如果您需要立即续签,比如出于安全考虑或配置更改,这个选项将允许您这样做。
在签发证书的过程中,Let’s Encrypt 需要通过 HTTP 或 HTTPS 验证您对域名的控制,这通常是通过在您的服务器上创建一个临时 Web 服务器来完成的,该服务器监听端口 80 或 443。
由于端口 80 已经被占用,Let’s Encrypt 的脚本无法启动自己的 Web 服务器来进行域名验证。