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