必须为域名安装ssl/tls证书以启用https,let’s encrypt提供免费证书,支持certbot自动配置(nginx/apache)、webroot模式、standalone模式、dns api验证(含通配符)及宝塔面板图形化申请五种方法。

如果您已在Linux云服务器上部署Web服务,但网站仍通过HTTP明文传输,需启用HTTPS加密连接,则必须为域名安装有效的SSL/TLS证书。Let’s Encrypt提供免费、自动化、开放的数字证书,适用于Nginx、Apache等主流Web服务器。以下是针对不同场景的多种安装方法:
一、使用Certbot自动配置(推荐:Nginx/Apache)
此方法适用于已运行Nginx或Apache且具备标准虚拟主机配置的环境。Certbot可自动检测服务器类型、修改配置文件、申请并部署证书,全程无需手动编辑证书路径。
1、安装Certbot及对应插件:
Ubuntu/Debian系统执行:sudo apt update && sudo apt install certbot python3-certbot-nginx -y;
CentOS/RHEL/Alibaba Cloud Linux系统执行:sudo dnf install epel-release -y && sudo dnf install certbot python3-certbot-nginx -y。
2、确保域名A记录已解析至服务器公网IP,并开放80和443端口。
3、运行命令申请并自动配置:sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com(Nginx)或sudo certbot --apache -d yourdomain.com -d www.yourdomain.com(Apache)。
4、按提示输入邮箱、同意条款,并选择是否启用HTTP强制跳转HTTPS。
二、Webroot模式手动验证(兼容性最强)
当无法直接修改Web服务器配置(如受限于面板权限),或需在非标准目录结构下部署时,Webroot模式通过在网站根目录写入验证文件完成域名所有权校验,不依赖端口监听或服务重启。
1、确认Web服务正在运行,且能通过HTTP访问您的域名,例如http://yourdomain.com返回有效页面。
2、创建ACME验证目录并授权:sudo mkdir -p /var/www/yourdomain.com/.well-known/acme-challenge;
sudo chown -R $USER:www-data /var/www/yourdomain.com/.well-known/acme-challenge(Ubuntu)或sudo chown -R $USER:nginx /var/www/yourdomain.com/.well-known/acme-challenge(CentOS)。
3、在Nginx或Apache中添加ACME验证路径映射规则,确保/.well-known/acme-challenge/可被公开访问。
4、执行申请命令:sudo certbot certonly --webroot -w /var/www/yourdomain.com -d yourdomain.com -d www.yourdomain.com。
三、Standalone模式独立验证(无需Web服务配合)
该模式由Certbot自身启动临时HTTP服务器监听80端口,用于响应Let’s Encrypt的域名验证请求。适用于未运行Web服务、或80端口空闲的纯净环境,但需确保防火墙允许入站80端口连接。
1、停止当前占用80端口的服务(如Nginx/Apache):sudo systemctl stop nginx。
2、执行命令:sudo certbot certonly --standalone -d yourdomain.com -d www.yourdomain.com。
3、Certbot将自动绑定80端口并完成验证,成功后证书保存至/etc/letsencrypt/live/yourdomain.com/。
4、重新启动原Web服务:sudo systemctl start nginx,再手动配置其SSL参数指向上述路径。
四、DNS API自动验证(支持通配符证书)
当需要申请*.yourdomain.com通配符证书,或Webroot/Standalone均不可用(如端口被屏蔽、无文件写入权限)时,DNS API验证方式通过调用域名DNS服务商API自动添加并删除TXT记录完成验证,全程无需暴露服务器端口或文件系统。
1、确认Certbot支持您的DNS服务商(如Cloudflare、Aliyun、DNSPod),并获取对应API密钥。
2、安装DNS插件,例如Cloudflare:sudo pip3 install certbot-dns-cloudflare;Aliyun:sudo pip3 install certbot-dns-aliyun。
3、创建认证凭据文件(如/root/cloudflare.ini),设置API密钥并限制权限:chmod 600 /root/cloudflare.ini。
4、执行命令:sudo certbot certonly --dns-cloudflare --dns-cloudflare-credentials /root/cloudflare.ini -d yourdomain.com -d *.yourdomain.com。
五、宝塔面板图形化申请(面向可视化操作用户)
对于使用宝塔Linux面板管理服务器的用户,可通过内置SSL模块一键申请Let’s Encrypt证书,无需命令行操作,适合新手快速启用HTTPS。
1、登录宝塔面板,在左侧菜单进入网站,找到目标站点,点击设置。
2、切换到SSL选项卡,选择Let's Encrypt,勾选需要保护的域名(含主域与子域)。
3、点击申请按钮,面板将自动完成验证、证书下载与Nginx配置更新。
4、若提示DNS验证失败,检查域名NS服务器是否为阿里云DNS(部分版本存在兼容问题),建议临时切换至DNSPod或Cloudflare。










