下面我将详细讲解“基于Nginx实现HTTPS网站设置的步骤”的完整攻略。
1. 前置条件
在进行 HTTPS 网站设置之前,需要具备如下前置条件:
- 已经安装了 Nginx;
- 已经获得了 SSL 证书;
- DNS 服务已经将域名解析到 Nginx 的 IP 地址上;
- 已经将 443 端口添加到 Nginx 的防火墙规则中。
2. 步骤
2.1 安装 SSL 证书
将你获得的 SSL 证书上传至服务器上。对于不同的 SSL 证书提供商,证书的具体文件格式可能有所不同,但大体上都会包含一个证书文件(以 .crt
或 .pem
为后缀名)和一个私钥文件(以 .key
或 .pem
为后缀名)。为了方便管理,我们建议将这些文件放入一个名为 ssl
的目录中。
2.2 配置 Nginx
在进行 HTTPS 网站设置之前,我们需要先对 Nginx 进行如下配置:
将 Nginx 配置文件备份:
sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
打开 Nginx 配置文件 /etc/nginx/nginx.conf
,找到默认的 server 配置段,并将其修改如下:
server {
listen 80;
server_name example.com;
return 301 https://$server_name$request_uri;
}
以上配置实现将 HTTP 请求重定向到 HTTPS,其中 example.com
换成你自己的域名即可。
保存并关闭 Nginx 配置文件。
2.3 配置 HTTPS
在 Nginx 的默认 server 配置段下添加如下配置:
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/nginx/ssl/example.com.crt;
ssl_certificate_key /etc/nginx/ssl/example.com.key;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
location / {
root /var/www/example.com;
index index.html;
}
}
以上配置的作用是:
- 启用 HTTPS,并监听 443 端口;
- 指定 SSL 证书文件和私钥文件的路径;
- 配置 SSL 会话缓存和超时时间;
- 指定支持的 TLS 协议版本;
- 指定使用的加密算法;
- 配置网站根目录和默认主页。
其中,/var/www/example.com
是网站的根目录,index.html
是默认主页。这里我们假设网站根目录下有一个 index.html
文件。
保存并关闭 Nginx 配置文件。
2.4 重启 Nginx
重启 Nginx 服务以使配置生效:
sudo systemctl restart nginx
2.5 测试 HTTPS
在浏览器中访问 https://example.com
是否可以正常访问。如果能够正常访问,则说明 HTTPS 设置成功。
3. 示例说明
示例1
假设你的域名是 myexample.com
,你已经安装了 Nginx,并且已经获得了一份名为 myexample.com.crt
的 SSL 证书,那么你可以按照如下步骤进行 HTTPS 网站设置:
-
将
myexample.com.crt
和对应的私钥文件myexample.com.key
上传至服务器上,并将它们放置在/etc/nginx/ssl/
目录下。 -
打开 Nginx 配置文件
/etc/nginx/nginx.conf
,找到默认的 server 配置段,并将其修改为以下内容:
nginx
server {
listen 80;
server_name myexample.com;
return 301 https://$server_name$request_uri;
}
- 在 Nginx 配置文件的默认 server 配置段下面添加如下内容:
```nginx
server {
listen 443 ssl;
server_name myexample.com;
ssl_certificate /etc/nginx/ssl/myexample.com.crt;
ssl_certificate_key /etc/nginx/ssl/myexample.com.key;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
location / {
root /var/www/myexample.com;
index index.html;
}
}
```
-
保存并关闭 Nginx 配置文件。
-
重启 Nginx 服务:
sudo systemctl restart nginx
。 -
在浏览器中访问
https://myexample.com
是否可以正常访问。如果能够正常访问,则说明 HTTPS 设置成功。
示例2
假设你的域名是 mytest.com
,你已经安装了 Nginx,并且已经获得了一份名为 mytest.com.pem
的 SSL 证书,那么你可以按照如下步骤进行 HTTPS 网站设置:
-
将
mytest.com.pem
和对应的私钥文件mytest.com.key
上传至服务器上,并将它们放置在/usr/local/nginx/ssl/
目录下。 -
打开 Nginx 配置文件
/usr/local/nginx/conf/nginx.conf
,找到默认的 server 配置段,并将其修改为以下内容:
nginx
server {
listen 80;
server_name mytest.com;
return 301 https://$server_name$request_uri;
}
- 在 Nginx 配置文件的默认 server 配置段下面添加如下内容:
```nginx
server {
listen 443 ssl;
server_name mytest.com;
ssl_certificate /usr/local/nginx/ssl/mytest.com.pem;
ssl_certificate_key /usr/local/nginx/ssl/mytest.com.key;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
location / {
root /usr/local/nginx/html/mytest.com;
index index.html;
}
}
```
-
保存并关闭 Nginx 配置文件。
-
重启 Nginx 服务:
sudo nginx -s reload
。 -
在浏览器中访问
https://mytest.com
是否可以正常访问。如果能够正常访问,则说明 HTTPS 设置成功。
以上就是基于 Nginx 实现 HTTPS 网站设置的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:基于Nginx实现HTTPS网站设置的步骤 - Python技术站