ubuntu nginx https
时间: 2025-05-09 13:18:20 浏览: 18
### 配置 Nginx 在 Ubuntu 上支持 HTTPS
要在 Ubuntu 系统中配置 Nginx 以支持 HTTPS,需完成以下几个方面的操作:
#### 1. 安装必要的软件包
确保已安装 OpenSSL 和其他依赖项。如果尚未安装 Nginx,则可以通过以下命令安装:
```bash
sudo apt update && sudo apt install nginx openssl -y
```
#### 2. 启用 SSL 模块
在编译 Nginx 时需要启用 `--with-http_ssl_module` 参数[^2]。大多数情况下,默认的 Nginx 软件包已经包含了此模块。可通过以下命令验证是否启用了该模块:
```bash
nginx -V 2>&1 | grep -- '--with-http_ssl_module'
```
如果没有找到相关内容,则可能需要重新编译 Nginx 或者通过官方源安装。
#### 3. 获取 SSL/TLS 证书
获取有效的 SSL/TLS 证书对于 HTTPS 至关重要。可以选择 Let's Encrypt 提供的免费证书或其他商业 CA 的证书。以下是使用 Certbot 自动化工具申请 Let's Encrypt 证书的方法:
```bash
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install python-certbot-nginx
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
```
这会自动创建并部署所需的证书文件到 `/etc/letsencrypt/live/yourdomain.com/` 下[^4]。
#### 4. 创建 Diffie-Hellman 参数文件
为了增强加密强度,推荐生成一个自定义的 Diffie-Hellman 参数文件:
```bash
sudo openssl dhparam -out /etc/nginx/dhparam.pem 2048
```
注意:上述过程可能会花费几分钟时间来计算[^1]。
#### 5. 修改 Nginx 配置文件
编辑站点对应的虚拟主机配置文件(通常位于 `/etc/nginx/sites-available/default`),添加如下内容以便加载新证书以及优化安全设置:
```nginx
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
# Redirect all HTTP requests to HTTPS with a permanent redirect (status code 301).
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
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;
ssl_dhparam /etc/nginx/dhparam.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256';
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
error_page 497 https://$host:$server_port$request_uri;
}
```
以上代码片段设置了强制重定向至 HTTPS 并指定了具体的 SSL 设置参数。
#### 6. 测试配置并重启服务
保存更改后的配置文件后,测试语法正确性再启动服务:
```bash
sudo nginx -t
sudo systemctl restart nginx
```
最后确认防火墙允许端口 443 访问即可正常工作。
---
阅读全文
相关推荐



















