轻松使用ACME脚本申请证书

教程4周前发布 mjjboom
32 0

申请 SSL 证书的原因主要有以下几点:

1. 数据加密
– SSL(安全套接字层)证书可以加密客户端与服务器之间传输的数据,防止数据在传输过程中被截获或篡改。

2. 身份验证
– SSL 证书帮助验证网站的身份,确保用户连接到的是合法的网站,而不是伪造的钓鱼网站。这有助于建立用户信任。

3. 提高 SEO 排名
– 搜索引擎(如 Google)倾向于优先展示使用 HTTPS 的网站,因此拥有 SSL 证书可能会提高网站的搜索引擎排名。

4. 增强用户信任
– 当用户看到浏览器地址栏中的锁定图标或“HTTPS”前缀时,他们更有可能信任该网站,尤其是在输入敏感信息(如信用卡信息)时。

5. 满足合规要求
– 某些行业(如金融、医疗等)有法律或行业标准要求使用 SSL 加密,以保护客户数据。

6. 防止中间人攻击
– SSL 证书可以有效防止中间人攻击(MITM),确保数据在传输过程中不被未经授权的第三方访问。

7. 提升网站性能
– 现代 SSL/TLS 协议(如 HTTP/2)可以提高网站的加载速度和性能,提供更好的用户体验。

总之,申请 SSL 证书不仅是保护用户数据和隐私的必要措施,也是在现代互联网环境中建立信任和合规的重要步骤。

其实常说的证书,全名是数字证书。涉及三部分内容:证书颁发机构,公钥,私钥。

下面内容比较枯燥,请自行选择是否跳过:

证书颁发机构
Wiki原话:每个使用公开密钥的用户发放一个数字证书,数字证书的作用是证明证书中列出的用户合法拥有证书中列出的公开密钥。CA机构的数字签名使得攻击者不能伪造和篡改证书。它负责产生、分配并管理所有参与网上交易的个体所需的数字证书,因此是安全电子交易的核心环节。在SET交易中,CA不仅对持卡人、商户发放证书,还要对获款的银行、网关发放证书。

简而言之:确保公钥的安全性有效。

公钥和私钥
公钥:公开的密钥

私钥:私有的密钥

公钥和私钥成对出现,为非对称加密的形式。公钥加密的信息,只有用私钥才能打开,私钥加密的信息只有公钥才能打开。

数字证书
包含内容:由证书颁发机构认可的公钥,颁发机构信息,公司信息,域名,有效期….

证书加密信息传输的过程
以网络上最常见的ssl/tls加密过程为例,证书加密的过程是充分运用了非对称加密的安全性和对称加密的高效:

1. 同步tls版本和加密方式
a. 客户端—”客户端支持TLS版本和加密算法+随机字符串A”—>服务端

b. 客户端<—”服务器选择的TLS版本和加密算法+数字证书(含公钥)+随机字符串B”—服务端

2. 生成对称加密的KEY
c. 客户端(验证数字证书,获取公钥)—”公钥加密的随机字符串C”—>服务端(私钥解密获得随机字符串C)

d. 服务端和客户端生成相同的对称加密的KEY,生成方法:随机字符串A+随机字符串B+随机字符串C+相同加密算法

3. 建立安全通道
e. 客户端—”KEY加密的完成信号”—>服务端

f. 客户端<—”KEY加密的完成信号”—服务端

g. 客户端<—使用密钥KEY对称加密方式进行安全通信—>服务端

申请证书的方法
我了解的证书申请方法有几种:

在域名托管商处申请下载,这个一般有效期为1年,为增值服务。
自己充当证书颁发机构,颁发证书。
使用脚本,申请证书,可以实现自动续期。
此文将演示使用ACME申请letsencrypt证书

使用ACME手动申请证书
安装并启用acme.sh脚本

apt install -y curl && curl https://get.acme.sh | sh && source .bashrc

切换证书签发机构

acme.sh --set-default-ca --server letsencrypt

签发证书

acme.sh --issue -d 域名 --standalone

查看是否签发成功

ls -al ~/.acme.sh

 

安装证书

acme.sh --install-cert -d 域名 \
#--key-file 密钥存放路径和名字 \
#--fullchain-file 证书存放路径就和名字

 

根据每个应用程序不同,需要的证书类型也不一定相同

证书类型说明:
–cert-file <file>
cert.pem 服务端证书
–key-file <file>
privkey.pem 证书的私钥
–ca-file <file>
ca.pem 数字证书
–fullchain-file <file>
fullchain.pem 包括了 cert.pem 和 chain.pem 的内容
chain.pem 浏览器需要的所有证书,比如根证书和中间证书,但不包括服务端证书

开启acme.sh自动升级
避免lets encrypt ca更新后,导致自己证书无法更新尴尬局面

acme.sh --upgrade --auto-upgrade

 

嗯,现在已经有了证书,该怎么用在应用程序中,可以自己慢慢探索了
设置证书自动更新
设置定时任务

crontab -e

 

填入自动执行的命令:每月1日凌晨1点重新安装证书

 

0 1 1 * * acme.sh --install-cert -d 域名 --key-file 密钥存放路径和名字 --fullchain-file 证书存放路径就和名字

 

 

© 版权声明

相关文章

没有相关内容!

暂无评论

none
暂无评论...