CentOS 7 下 Nginx 配置 HTTPS 教程
一、安装 Nginx
更新系统:在终端中执行以下命令,确保系统是最新的。
sudo yum update
安装 Nginx:使用 yum 命令安装 Nginx。
sudo yum install nginx
启动 Nginx:安装完成后,启动 Nginx 服务。
sudo systemctl start nginx
设置开机自启:为了让 Nginx 在系统重启后自动启动,执行以下命令。
sudo systemctl enable nginx
二、获取 SSL 证书
1. 购买阿里云、腾讯云、ssl证书 去相对于平台获取 这种平台需要付费购买才可以使用
缺点:价格昂贵 每次过期还需要申请续费才可以使用
2. 打开httpsok 一行命令,轻松搞定SSL证书 还可以自动续签。
支持:nginx、通配符证书、七牛云、腾讯云、阿里云、CDN、OSS、LB(负载均衡)一行指令获取httpshttps://httpsok.com/p/4P55
三:部署证书
-
执行以下命令,在Nginx的conf目录下创建一个用于存放证书的目录。
cd /usr/local/nginx/conf #进入Nginx默认配置文件目录。该目录为手动编译安装Nginx时的默认目录,如果您修改过默认安装目录或使用其他方式安装,请根据实际配置调整。 mkdir cert #创建证书目录,命名为cert。
-
将证书文件和私钥文件上传到Nginx服务器的证书目录(/usr/local/nginx/conf/cert)。
编辑Nginx配置文件nginx.conf,修改与证书相关的配置。
-
执行以下命令,打开配置文件。
vim /usr/local/nginx/conf/nginx.conf
重要
nginx.conf默认保存在/usr/local/nginx/conf目录下。如果您修改过nginx.conf的位置,可以执行
nginx -t
,查看nginx的配置文件路径,并将/usr/local/nginx/conf/nginx.conf
进行替换。 -
在nginx.conf中定位到HTTPS server属性配置。
server { #HTTPS的默认访问端口443。 #如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。 listen 443 ssl; #填写证书绑定的域名 server_name <YOURDOMAIN>; #填写证书文件绝对路径 ssl_certificate cert/<cert-file-name>.pem; #填写证书私钥文件绝对路径 ssl_certificate_key cert/<cert-file-name>.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; #自定义设置使用的TLS协议的类型以及加密套件(以下为配置示例,请您自行评估是否需要配置) #TLS协议版本越高,HTTPS通信的安全性越高,但是相较于低版本TLS协议,高版本TLS协议对浏览器的兼容性较差。 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; #表示优先使用服务端加密套件。默认开启 ssl_prefer_server_ciphers on; location / { root html; index index.html index.htm; } }
可选:设置HTTP请求自动跳转到HTTPS。
如果您希望所有的HTTP访问自动跳转到HTTPS页面,可通过rewrite指令重定向到HTTPS。
重要
请在nginx.conf文件中定位到http server的配置代码块,新增配置重定向的代码;
如果找不到上述代码段,可以将以下代码片段放置在nginx.conf文件中server {}
代码段后面,即设置HTTP请求自动跳转到HTTPS后,nginx.conf文件中会存在两个server {}
代码段。
server {
listen 80;
#填写证书绑定的域名
server_name <YOURDOMAIN>;
#将所有HTTP请求通过rewrite指令重定向到HTTPS。
rewrite ^(.*)$ https://$host$1;
location / {
index index.html index.htm;
}
}
5. 执行以下命令,重启Nginx服务。
#进入Nginx服务的可执行目录。
cd /usr/local/nginx/sbin
#重新载入配置文件。
./nginx -s reload
6. 验证域名是否https 有时候会卡顿 需要多次刷新才能成功 成功后会显示
这样即可