5分钟搞定HTTPS!Certbot免费SSL证书配置全指南
有没有遇到过这样的情况:自己搭建的网站打开后,浏览器地址栏显示“不安全”,访客一看就不敢继续浏览;或者做小程序开发时,要求后端接口必须是HTTPS协议,卡在这里迟迟推进不了?
其实解决这个问题很简单,只需要一个SSL证书就行。今天就给大家分享一个免费又好用的工具——Certbot,手把手教你从安装到配置,5分钟搞定HTTPS,让你的网站安全又专业!
一、先搞懂:Certbot是什么?
Certbot 是一款由电子前哨基金会(EFF)开发的免费开源工具,专门用于自动获取、安装和续期 Let’s Encrypt 提供的免费SSL证书。
重点划一下:
免费:全程零成本,不用花一分钱买证书
自动:证书申请、安装、续期全自动化,不用手动操作
通用:支持Nginx、Apache等主流服务器,兼容性拉满
小知识:Let’s Encrypt 是一个公益性质的证书颁发机构(CA),目的是推动整个互联网都使用HTTPS,让网络更安全~
二、准备工作:3个前提要满足
在开始之前,先确认你已经做好了这些准备,避免中途卡壳:
拥有一台云服务器(比如阿里云、腾讯云、华为云等),系统推荐CentOS、Ubuntu(本文以Ubuntu为例)
已经购买了域名,并且将域名解析到了你的服务器IP(解析后可以用ping命令测试是否生效)
服务器上已经安装了Web服务器(Nginx或Apache,本文以Nginx为例)
如果还没安装Nginx,参考往期:Linux系统安装Nginx超详细教程!
三、实操步骤:从安装到配置,一步到位
步骤1:安装Certbot
Ubuntu系统直接执行以下命令安装Certbot和Nginx插件(插件用于自动配置Nginx):
#更新软件源sudoaptupdate#安装certbotsudoaptinstall-y certbot#安装 Certbot 及 Nginx 插件sudoaptinstall-y python3-certbot-nginx安装完成后,输入certbot --version,如果能显示版本号,说明安装成功啦!
步骤2:申请并自动配置SSL证书
这是最核心的一步,只需要一条命令就能搞定,跟着做就行:
sudocertbot --nginx -d 你的域名比如你的域名是example.com,就输入:
sudocertbot --nginx -d example.com如果想给www和非www版本都配置证书,可以这样写:
sudocertbot --nginx -d example.com -d www.example.com执行命令后,会出现几个交互步骤,一步步选就行:
输入邮箱:用于接收证书到期提醒(一定要填正确,避免证书过期忘记续期)
同意服务条款:输入
A并回车是否共享邮箱:输入
N并回车(不想接收EFF的邮件就选N)确认域名:如果显示的域名正确,直接回车即可
选择HTTP跳转HTTPS:输入
2并回车(这样访问HTTP会自动跳转到HTTPS,更安全)
当屏幕显示“Successfully obtained certificate”时,就说明证书申请成功,并且已经自动配置到Nginx里了!
步骤3:验证是否生效
打开浏览器,在地址栏输入你的域名(注意要加https://),比如https://example.com。
如果地址栏出现小绿锁,就说明HTTPS配置成功啦!🎉
如果没出现绿锁,大概率是服务器防火墙没开放443端口(HTTPS默认端口),去你的云服务器控制台,在安全组里放行443端口即可。
步骤4:设置自动续期(关键!避免证书过期)
Let’s Encrypt的证书有效期只有90天,不过Certbot可以自动续期,我们只需要设置一个定时任务就行。
执行以下命令,添加定时任务:
sudocrontab-e如果是第一次打开,会让你选择编辑器,输入2(用nano编辑器)并回车。
在文件末尾添加一行内容:
001* *sudocertbot renew --quiet添加完成后,按Ctrl+O保存,再按Ctrl+X退出。
这个定时任务的意思是:每月1号的0点0分,自动执行续期命令,–quiet参数表示静默执行,不会输出多余信息。
可以执行sudo certbot renew --dry-run测试一下续期是否正常,如果显示“Congratulations, all simulated renewals succeeded.”,说明定时任务没问题~
四、常见问题:遇到这些问题不用慌
1. “E: 无法定位软件包 python3-certbot-nginx” 无法安装插件问题
原因:说明你的系统软件源里没有 Certbot Nginx 插件的包,需要先配置正确的软件源。
解决:执行以下命令一步步配置正确的源(适用于 Debian 10+/Ubuntu 18.04+)
# 安装必要的依赖包sudoaptupdatesudoaptinstall-y software-properties-common# 添加 Certbot 官方 PPA 源(Ubuntu 系统)sudoadd-apt-repository ppa:certbot/certbot -y# 如果是 Debian 系统(非 Ubuntu),执行以下命令替代上面的 add-apt-repository:# wget https://dl.eff.org/certbot-auto# chmod a+x certbot-auto# sudo mv certbot-auto /usr/local/bin/# 更新软件源(添加 PPA 后必须执行)sudoaptupdate# 安装 Certbot 及 Nginx 插件sudoaptinstall-y certbot python3-certbot-nginx# 检查已安装的插件certbot plugins如果输出中能看到 nginx 插件(如下),说明安装成功:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * nginx Description: Nginx Web Server plugin Interfaces: Installer, Authenticator, Plugin Entry point: nginx=certbot_nginx.configurator:NginxConfigurator2. 执行申请命令时,提示“Could not find a virtual host listening on port 80”
原因:Nginx没有配置对应域名的虚拟主机。
解决:先在Nginx的sites-available目录下创建虚拟主机配置文件,比如:
sudonano/etc/nginx/sites-available/example.com添加以下内容(替换成你的域名):
server { listen 80; server_name example.com; location /{ root /var/www/html; index index.html index.htm; } }然后创建软链接并重启Nginx:
sudoln-s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/sudonginx -t# 测试配置是否正确sudosystemctl restart nginx3. 浏览器显示“证书无效”
原因:域名解析没生效,或者证书申请时域名填错了。
解决:先确认域名解析是否正确(ping域名看是否指向服务器IP),再检查申请命令里的域名是否和解析的一致。
4. 续期失败
原因:定时任务没设置对,或者服务器时间不对。
解决:重新检查定时任务配置,或者手动执行sudo certbot renew续期。如果是时间问题,执行sudo timedatectl set-ntp true同步时间。
五、总结
用Certbot配置HTTPS其实很简单,核心就3步:安装Certbot → 一条命令申请配置证书 → 设置自动续期。全程不用懂复杂的SSL原理,新手也能轻松搞定。
有了HTTPS,你的网站不仅更安全,还能提升访客信任度,做小程序、公众号开发也不会被HTTPS协议卡住啦!
如果操作过程中遇到问题,欢迎在评论区留言,我会尽力帮大家解答~
最后,别忘了关注、收藏、点赞、转发四连,给我一点创作动力呀!❤️