下面我将详细讲解“基于Nginx实现HTTPS网站设置的步骤”的完整攻略。
下面我将详细讲解“基于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网站设置的步骤
基础教程推荐
- Nginx负载均衡之upstream模块简介与使用详解 2022-11-26
- https协议详解 2022-12-12
- Target runtime Apache Tomcat v8.0 is not defined 2023-09-08
- Apache用户认证、域名跳转、Apache访问日志 2023-09-29
- http请求报错:SSL Certificate Chain Error的原因和解决办法 2023-12-04
- Nginx geoip模块实现地区性负载均衡 2024-03-15
- CentOS 7下的KVM网卡配置为千兆网卡 2023-09-24
- 备份和恢复Windows IIS服务器设置的方法 2022-09-01
- LVS+DR+apache+keepalived负载均衡 2023-09-08
- http请求报错:Too Many Requests Error的原因和解决办法 2023-12-03
