使用let's encrypt申请免费的SSL证书
想增加网站安全性,购买商业版本的SSL证书又太贵? 本篇文章手把手教你使用let's encrypt申请免费的SSL证书。
本文所依赖的环境为:
前置条件
若你想使用let's encrypt
申请免费的SSL
证书,必须要满足以下几点:
-
必须有一个域名。
-
必须有一台拥有公网IP的服务器。
在创建证书的过程中,需要证明你对该域名的所有权,所以需要一个域名,而拥有一台有公网IP的服务器则是需要运行certbot
客户端工具来协助生成证书,在此过程中,需要用到外网。
安装客户端工具certbot
let's encrypt
无需注册登录,也能生成SSL
证书,需要用到客户端工具为certbot
,该工具是使用python
来写的,在centos 7
系统下,该工具安装如下:
安装python3和pip3
yum install python3 python3-devel
升级pip3,版本要大于20
pip3 install "pip>=20"
安装必要依赖
pip3 install setuptools-rust
setuptools-rust
是python
为rust
扩展所开发的插件,目的为用 rust
编写的 python
扩展就像用 C 编写一样容易。
安装certbot
pip3 install certbot
检验客户端
使用certbot --version
可以校验安装是否正常,例如:
如果正常输出了版本,就证明安装完毕。
若直接安装网络太卡的话,可以考虑加一个源信息,例如: 升级
pip
使用清华源命令为:
pip3 install "pip>=20" -i https://pypi.tuna.tsinghua.edu.cn/simple
设置域名解析
若想使用let's encrypt
签发证书,就必须将涉及的域名,先解析到服务器才行。
例如我们将预申请SSL证书域名 和 服务器IP地址的信息整理如下:
预申请SSL证书域名 | 服务器IP地址 |
---|---|
pdudo.***.com | 1...4 |
我们在申请证书之前,就必须将该域名pdudo.***.com
的A
记录解析到1.*.*.4
才行。
在申请SSL
证书的时候,我们需要在1.*.*.4
服务器上操作certbot
才行。
申请SSL
证书
在安装客户端工具和设置域名解析后,我们就可以来申请SSL
证书了,但是在申请前,需要先保证我们服务器1.*.*.4
的80端口没有被占用,且外网防火墙也是开放的。这样做的目的是let's encrypt
来访问我们的服务器进行校验和下发证书。
做完上述操作后,执行下列命令,来申请SSL
证书:
certbot certonly --standalone -d pdudo.***.com
上述命令的意思是,启动独立的web
服务进行身份验证,为pdudo.***.com
申请/续订SSL
证书,但是不需要安装。
在此过程中,会弹出很多的选项,让我们输入,大概流程为:
- 会让我们输入邮件地址,将用于续订和安全通知。
- 会让我们确定是否向
ACME server
注册。 - 是否分享你的邮件让
EFF
共享。
如果申请成功后,会在/etc/letsencrypt/live/
下,以域名为目录,里面存储的证书信息,并且会告知过期时间是多久。
运行截图:
总结
本篇文章,我们使用let's encrypt
为网站申请免费的证书,无需登录、注册,简单使用命令,几分钟内就可以生成证书了,超级简单吧,快来试试吧。注意,let's encrypt
申请的证书,有效期只有3个月,所以,使用该方法生成的证书,每2个月几乎就要停止web
后更新一下证书才行。