Nginx配置https

Https简介

HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。这个系统的最初研发由网景公司(Netscape)进行,并内置于其浏览器Netscape Navigator中,提供了身份验证与加密通讯方法。

购买或申请证书

有免费1年的单域名证书 也有多域名的,自己去云服务商购买

把申请完的证书下载,然后传到对应服务器的任意位置,建议在nginx的安装目录下,新建一个文件夹 ,记录下文件路径。

Nginx https配置

找到对应的nginx 站点配置文件(我这里为单独的虚拟主机站点)

1
2
3
4
5
6
7
8
server{
listen 80;
server_name sswolf.cn;
root /www/sswolf;
index test.html index.php index.html index.htm;
charset utf-8;
access_log /data/logs/gwaccess.log main;
error_log /data/logs/gwerror.log error;

添加一段nginx配置https的文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
server{
listen 80;
server_name sswolf.cn;
charset utf-8;
access_log /data/logs/gwaccess.log main;
error_log /data/logs/gwerror.log error;
rewrite ^/(.*) https://heibai.site/$1 permanent;
} #80端口转发到443,访问网站直接跳转到https

server {
listen 443;#端口
server_name sswolf.cn;#域名
ssl on;#开启ssl
root /www/mx_admin;#站点根目录
index test.html index.php index.html index.htm;
ssl_certificate /data/ssl/215009961500297.pem;
ssl_certificate_key /data/ssl/215009961500297.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;

修改完成,检查nginx语法是否有问题用

/usr/local/nginx/sbin/nginx -t

注意:

1.防火墙443端口和80端口一定要打开

2.配置443端口 要把80端口的网站根目录注释掉,不然配置好了就是nginx默认页面

3.Nginx需要开启ssl模块