如果尚未安装Nginx,使用以下命令安装:
sudo apt update
sudo apt install nginx
安装完成后,启动Nginx并设置开机自启:
sudo systemctl start nginx
sudo systemctl enable nginx
SSL证书是HTTPS的核心,推荐使用Let’s Encrypt(免费)或购买商业证书。以下以Let’s Encrypt为例:
sudo apt install certbot python3-certbot-nginx
yourdomain.com为你的域名(需提前解析到服务器IP):sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
Certbot会自动检测Nginx配置,完成证书生成并修改Nginx配置(无需手动编辑)。若手动管理证书(非Certbot自动配置),需编辑Nginx的站点配置文件(通常位于/etc/nginx/sites-available/):
yourdomain.com为例):sudo nano /etc/nginx/sites-available/yourdomain.com
# HTTP监听(强制跳转HTTPS)
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
return 301 https://$host$request_uri;
}
# HTTPS监听(核心配置)
server {
listen 443 ssl;
server_name yourdomain.com www.yourdomain.com;
# 证书路径(Certbot自动放置证书时,路径为以下格式)
ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
# 推荐安全配置(调整加密协议和算法)
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384';
ssl_prefer_server_ciphers on;
# 网站根目录(根据实际情况调整)
root /var/www/yourdomain.com;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
注:若使用Certbot自动配置,上述内容会被自动生成,无需手动添加。
修改配置文件后,务必测试语法是否正确:
sudo nginx -t
若输出nginx: configuration file /etc/nginx/nginx.conf test is successful,说明配置无误。
测试通过后,重新加载Nginx使配置生效:
sudo systemctl reload nginx
https://yourdomain.com,检查地址栏是否显示安全锁图标(表示SSL生效)。Let’s Encrypt证书有效期为90天,Certbot会自动设置定时任务(每天检查)。可手动测试续期:
sudo certbot renew --dry-run
若无报错,说明续期功能正常,无需额外操作。
以上步骤覆盖了Ubuntu上Nginx配置SSL的全流程,涵盖证书获取、配置修改、测试验证及自动续期,确保网站实现安全的HTTPS访问。