在Debian系统上为LNMP(Linux+Nginx+MySQL+PHP)环境安装SSL证书,推荐使用Certbot工具(Let’s Encrypt官方客户端),可实现自动化获取、配置及续订证书。以下是详细流程:
确保已安装并配置好LNMP环境(Nginx、MySQL、PHP),且域名已解析至服务器IP。可通过ping yourdomain.com
验证解析是否生效。
Certbot是Let’s Encrypt的官方客户端,其Nginx插件可自动修改Nginx配置文件。运行以下命令安装:
sudo apt update
sudo apt install certbot python3-certbot-nginx
安装完成后,Certbot会自动集成Nginx配置功能。
使用Certbot为域名申请证书,命令格式如下(替换yourdomain.com
和www.yourdomain.com
为你的域名):
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
执行过程中,Certbot会提示:
Certbot会自动完成以下操作:
fullchain.pem
和privkey.pem
);若未使用Certbot的自动测试,可手动验证Nginx配置是否正确:
sudo nginx -t
若输出Syntax OK
,说明配置无误。
应用配置变更,重启Nginx:
sudo systemctl restart nginx
重启后,通过浏览器访问https://yourdomain.com
,应能看到锁图标(HTTPS加密)。
Let’s Encrypt证书有效期为90天,Certbot会自动创建定时任务(cron或systemd)续订证书。可通过以下命令测试续订流程:
sudo certbot renew --dry-run
若输出Congratulations, all renewals succeeded
,说明自动续订配置正常。建议每3个月手动测试一次,避免证书过期。
若从其他CA购买证书,需手动上传证书文件至服务器(如/etc/nginx/ssl/
目录),并修改Nginx配置文件:
server {
listen 443 ssl;
server_name yourdomain.com www.yourdomain.com;
ssl_certificate /etc/nginx/ssl/fullchain.pem; # 证书链文件
ssl_certificate_key /etc/nginx/ssl/privkey.pem; # 私钥文件
include /etc/nginx/options-ssl-nginx.conf; # Let’s Encrypt提供的优化配置
ssl_dhparam /etc/nginx/ssl-dhparams.pem; # Diffie-Hellman参数(增强安全性)
# 其他配置(如root目录、PHP处理等)
}
修改后执行sudo nginx -t
和sudo systemctl restart nginx
即可。
通过以上步骤,即可在Debian系统的LNMP环境中成功安装并配置SSL证书,实现网站HTTPS加密访问。