在Ubuntu上使用Nginx安装SSL证书,通常需要以下几个步骤:
安装Certbot: Certbot是一个自动化的工具,用于获取、安装和更新Let’s Encrypt SSL证书。首先,你需要安装Certbot及其Nginx插件。
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并重启服务以应用新的SSL设置。
验证自动配置: Certbot会创建一个临时服务器块来测试SSL配置。如果一切正常,它会自动将这个临时配置替换为正式的配置,并重新加载Nginx。
手动配置(可选):
如果你需要手动配置SSL,可以编辑Nginx的配置文件。通常,Certbot会在/etc/letsencrypt/options-ssl-nginx.conf中生成推荐的SSL设置。你可以将这些设置复制到你的主Nginx配置文件中,通常是/etc/nginx/sites-available/yourdomain.com。
sudo nano /etc/nginx/sites-available/yourdomain.com
在server块中添加或修改以下内容:
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
location /.well-known/acme-challenge/ {
root /var/www/certbot;
}
location / {
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;
# 其他配置...
}
确保将yourdomain.com替换为你的实际域名,并保存文件。
测试Nginx配置: 在重新加载Nginx之前,使用以下命令测试配置文件是否有语法错误:
sudo nginx -t
重新加载Nginx: 如果配置文件没有问题,重新加载Nginx以应用更改:
sudo systemctl reload nginx
设置自动续期: Let’s Encrypt证书通常有效期为90天。Certbot可以自动续期证书。你可以设置一个cron作业或systemd定时器来自动执行续期操作。
sudo systemctl enable certbot.service
sudo systemctl start certbot.service
Certbot会自动尝试续期,并在证书即将到期时发送通知。
完成以上步骤后,你的Ubuntu服务器上的Nginx应该已经成功配置了SSL证书,并且可以通过HTTPS访问你的网站。