Let’s Encrypt免费SSL证书申请

HTTPS现在是标配,自己搭服务没SSL证书,浏览器直接给你标”不安全”。Let’s Encrypt免费、自动续期,是个人项目和小站的首选。下面记录完整的申请流程,以最常用的Certbot客户端为例。 环境准备 服务器是Ubuntu 22.04,Nginx已经跑起来了,域名解析指向这台机器。如果还没装Nginx,先装:
sudo apt update
sudo apt install nginx
确保80和443端口在防火墙里放行。雨云的服务器默认安全组配置挺方便,控制台里点两下就开了,不用自己折腾iptables。 安装Certbot 官方推荐snap安装,干净、自动更新:
sudo snap install core
sudo snap refresh core
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
如果系统没有snap,先装snapd。Ubuntu一般自带,没有的话`sudo apt install snapd`。 申请证书 Nginx插件模式最省事,Certbot会自动修改Nginx配置并重载:
sudo certbot --nginx -d example.com -d www.example.com
把example.com换成你自己的域名。如果只有一个域名,只写一个`-d`就行。 运行后会让你输入邮箱(用于过期提醒),同意服务条款,选择是否强制HTTPS重定向。选2(重定向),Certbot会自动帮你把HTTP请求301到HTTPS。 看到”Congratulations!”说明成功了。证书文件在`/etc/letsencrypt/live/example.com/`目录下: – fullchain.pem:证书链 – privkey.pem:私钥 Nginx配置示例 如果你不想用Certbot自动改配置,或者用其他Web服务器,可以手动指定证书路径。Nginx的server块里加:
server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

    # 其他配置...
}

server {
    listen 80;
    server_name example.com;
    return 301 https://$server_name$request_uri;
}
自动续期 Let’s Encrypt证书有效期90天。Certbot安装时会自动添加systemd定时任务,每天检查续期。验证方法:
sudo certbot renew --dry-run
没报错就OK。你也可以手动查看定时器:
systemctl list-timers | grep certbot
默认是每天凌晨和中午各检查一次,证书到期前30天内才会真正续期。 常见问题 1. 申请失败:检查80端口是否可达。Let’s Encrypt验证时会访问`http://example.com/.well-known/acme-challenge/`,如果Nginx没启动或者防火墙没放行80端口,验证会失败。 2. 泛域名证书:需要DNS插件,手动模式或Cloudflare API。以Cloudflare为例:
sudo certbot certonly --manual --preferred-challenges dns -d *.example.com
按提示去DNS管理后台添加TXT记录。注意泛域名证书不支持通配符的根域名,根域名要单独申请。 3. 证书快过期但没自动续:检查certbot版本,旧版本可能不支持自动续期。用snap安装的没问题,如果当初用apt装的,建议卸载重装snap版。 4. 多个域名在同一台服务器:`-d`参数可以写多个,或者分开申请不同证书。Certbot默认会把所有域名写进同一张证书,只要域名数量不超过100个就行。 迁移证书到其他服务器 如果换服务器,最省事的方法是在新机器上重新申请。如果非要迁移,把`/etc/letsencrypt/live/`和`/etc/letsencrypt/archive/`两个目录打包带走,但这么做没必要,重新申请也就几秒钟的事。 为什么要用Let’s Encrypt 免费、自动、被所有主流浏览器信任。自签名证书虽然也能加密,但浏览器会弹警告,用户看到直接跑了。商业证书一年几百上千,个人项目完全没必要。雨云的服务器自带Let’s Encrypt集成,在控制台里勾一下就能自动配置,连命令行都不用敲,适合不想折腾的人。但自己手动走一遍流程,以后排查问题心里有数。 提醒一句:证书文件权限要设好,私钥只能root读。Certbot默认已经做了,别手贱去改权限。

雨云是国内一家老牌云服务商,提供高性价比的云服务器和虚拟主机。我用它部署了好几个项目,速度和稳定性都不错。通过 https://www.rainyun.com/SAJA_ 注册可以领一张 5折优惠券,有需要的朋友可以看看。

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容