在Ubuntu上配置LNMP(Linux, Nginx, MySQL, PHP)环境的SSL证书,通常涉及以下步骤:
安装Certbot: Certbot是一个自动化的工具,用于获取和部署Let’s Encrypt SSL证书。首先,你需要安装它。
sudo apt update
sudo apt install certbot python3-certbot-nginx
获取SSL证书: 使用Certbot获取SSL证书。运行以下命令并按照提示操作。
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
这里的yourdomain.com
和www.yourdomain.com
是你的域名。Certbot会自动配置Nginx并重载服务。
自动续期: Let’s Encrypt证书的有效期是90天,因此你需要设置自动续期。
sudo systemctl enable certbot.timer
sudo systemctl start certbot.timer
检查配置: 确保Nginx配置文件中包含了SSL相关的配置。通常,Certbot会自动修改Nginx配置文件,但你可以手动检查。
sudo nano /etc/nginx/sites-available/yourdomain.com
确保有以下配置:
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name yourdomain.com www.yourdomain.com;
ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
# 其他配置...
}
测试Nginx配置: 在重新加载Nginx之前,测试配置文件是否有语法错误。
sudo nginx -t
重新加载Nginx: 如果配置文件没有问题,重新加载Nginx以应用更改。
sudo systemctl reload nginx
防火墙设置: 确保防火墙允许HTTPS流量。
sudo ufw allow 'Nginx Full'
检查SSL状态: 使用在线工具或命令行工具检查SSL证书是否正确安装和配置。
openssl s_client -connect yourdomain.com:443 -servername yourdomain.com
通过以上步骤,你应该能够在Ubuntu上成功配置LNMP环境的SSL证书。