以下是详解nginx如何配置HTTPS的完整攻略。
第一步:准备工作
在配置HTTPS前,需要先准备好以下内容:
- 一张签名过的SSL证书。
- 一份支持SSL的nginx安装文件。
第二步:安装SSL证书
将得到的SSL证书的两个文件:.crt和.key文件上传到服务器的指定目录下,我们这里用/etc/nginx/cert/
目录作为例子。
第三步:修改nginx配置文件
在nginx的配置文件中添加支持HTTPS的配置:
server {
listen 80;
server_name your_domain.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2 default_server;
server_name your_domain.com;
ssl_certificate /etc/nginx/cert/your_domain.com.crt;
ssl_certificate_key /etc/nginx/cert/your_domain.com.key;
location / {
# 配置后端接口
…
}
}
其中,server
表示服务器块,用于定义本虚拟主机的相关参数。listen
表示监听端口,server_name
表示服务的域名。ssl_certificate
和ssl_certificate_key
表示SSL证书和密钥的文件位置。
需要注意的地方有:http2
表示启用HTTP/2协议,default_server
表示默认服务器。
第四步:重启nginx服务
修改完nginx配置文件后,需要重启nginx服务才能使配置生效。使用以下命令来重启nginx:
sudo service nginx restart
第五步:检验配置
在完成以上步骤后,可以使用浏览器访问https://your_domain.com
,如果能正常访问,那么HTTPS的配置就已经完成了。
示例说明
下面给出两个示例说明:
示例一:通过Certbot自动签发证书
- 安装Certbot命令行工具。
- 在命令行运行以下命令生成证书:
sudo certbot certonly --webroot -w /path/to/your/web/root -d your_domain.com
这里的/path/to/your/web/root
是你的网站根目录。
- 证书生成完成后,将得到的
.pem
证书文件上传到服务器上。 - 在nginx配置文件中添加以下配置:
```
server {
listen 443 ssl http2 default_server;
server_name your_domain.com;
ssl_certificate /etc/letsencrypt/live/your_domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/your_domain.com/privkey.pem;
location / {
# 配置后端接口
…
}
}
```
需要注意的是,这里的证书文件路径应该指向证书上传到服务器后的路径。
示例二:使用Cloudflare提供的SSL证书
- 在Cloudflare中启用Universal SSL,生成证书。
- 在nginx配置文件中添加以下配置:
```
server {
listen 443 ssl http2 default_server;
server_name your_domain.com;
ssl_certificate /etc/nginx/cert/cloudflare.crt;
ssl_certificate_key /etc/nginx/cert/cloudflare.key;
location / {
# 配置后端接口
…
}
}
```
这里的/etc/nginx/cert/
是证书文件上传到服务器的路径,需要将Cloudflare给你的证书文件命名为cloudflare.crt
和cloudflare.key
。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解nginx如何配置HTTPS - Python技术站