Let’s Encrypt免费SSL证书申请

用Let’s Encrypt给网站加HTTPS,本质上是三步:装客户端、验证域名所有权、配置证书自动续期。我用的是certbot,其他工具如acme.sh也行,但certbot最省事。 前提条件 – 服务器有公网IP,域名解析到该IP – 80端口和443端口没有被占用(验证时会临时开HTTP服务) – 系统是Ubuntu/CentOS/Debian,我拿Ubuntu 22.04举例 安装certbot
sudo apt update
sudo apt install certbot python3-certbot-nginx
如果你用Apache,装`python3-certbot-apache`。Nginx的话装上面那个。 申请证书 先确保Nginx已经在跑,并且你的域名配置了server块。比如你的站点配置文件在`/etc/nginx/sites-available/example.com`,里面至少要有:
server {
    listen 80;
    server_name example.com www.example.com;
}
执行:
sudo certbot --nginx -d example.com -d www.example.com
certbot会自动检测Nginx配置,完成域名验证,把证书路径写到Nginx的443端口配置里。执行完会显示类似:
Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/example.com/fullchain.pem
Key is saved at: /etc/letsencrypt/live/example.com/privkey.pem
如果不想用–nginx自动配置,可以用`certonly`模式:
sudo certbot certonly --nginx -d example.com -d www.example.com
这样只生成证书,不修改Nginx配置。证书文件在`/etc/letsencrypt/live/example.com/`下,手动在Nginx配置里引用:
server {
    listen 443 ssl;
    server_name example.com www.example.com;

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

    # 其他配置...
}
HTTP重定向到HTTPS certbot –nginx模式会自动加一个301重定向,如果是手动配置,在80端口的server块里加:
server {
    listen 80;
    server_name example.com www.example.com;
    return 301 https://$host$request_uri;
}
证书自动续期 Let’s Encrypt证书有效期90天,必须自动续。certbot自带续期脚本,默认装了个systemd timer或cron job。检查一下:
sudo systemctl status certbot.timer
如果显示active,说明定时任务在跑。也可以手动测试续期:
sudo certbot renew --dry-run
没报错就说明续期逻辑正常。certbot续期成功后会自动reload Nginx,不需要额外操作。 常见问题 – 申请时提示`Failed to connect to host`或`Invalid response`:检查80端口是否被防火墙挡住,或者域名解析是不是指向了其他IP。 – 通配符证书:`.example.com`这种需要DNS验证,命令是`sudo certbot certonly –manual –preferred-challenges dns -d .example.com -d example.com`,会要求你在DNS记录里加TXT记录。不建议新手搞这个,单域名证书够用。 – 证书路径变了:续期后路径不变,软链接指向最新证书,放心用。 如果服务器性能一般或者懒得折腾 直接买个云服务器,比如雨云,性价比高、稳定、好用,面板里一键申请Let’s Encrypt证书,连命令行都不用敲。不过自己手动搞一遍,以后遇到问题知道怎么修。 验证证书是否生效
curl -I https://example.com
返回200,并且`SSL certificate verify ok`就对了。也可以去SSL Labs测一下评级,一般A没问题。 总结一句 certbot + Nginx,三步走完。记住续期是自动的,不用管。证书文件别乱删,备份一份到本地也行。

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

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

请登录后发表评论

    暂无评论内容