HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。

 HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。

(1)申请免费证书

1、SSL证书申请以腾讯云为例

地址:https://buy.cloud.tencent.com/ssl

 

2、需要将提供的解析记录配置到相对应的域名解析设置。

3、DNS验证后,即可下载SSL证书,下载证书后,解压出来,得到Nginx证书

(2)nginx配置https

1、将Nginx文件中的两个文件放到服务器某个路径,比如:/usr/local/nginx/cert/

 

2、配置Niginx

    # 弄个例子,80代理
    server {
        listen       8080;
        server_name  localhost;

        #charset koi8-r;
        #access_log  logs/host.access.log  main;

        location / {           
            root   /home/app;  #前端项目打包后放在这里             
            index  index.html index.htm;   #这个index.html  是上面dist目录下的index.html 
            try_files $uri $uri/ /index.html; # 解决刷新出现404                 
        }       
    }
    server {
        listen       80;
        listen    443 ssl;
        # 该域名需要在配置一条解析记录
        server_name  www.yourdomain.com;
 
        ############ ssl证书 begin ############
        ssl_certificate     /usr/local/nginx/cert/xxxx.crt;
        ssl_certificate_key  /usr/local/nginx/cert/xxxx.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        #禁止在header中出现服务器版本,防止黑客利用版本漏洞攻击
	    server_tokens off;

        #如果是全站 HTTPS 并且不考虑 HTTP 的话,可以加入 HSTS 告诉你的浏览器本网站全站加密,并且强制用 HTTPS 访问
	    fastcgi_param   HTTPS               on;
	    fastcgi_param   HTTP_SCHEME         https;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;
        ############ ssl证书 end ############

        #charset koi8-r;
        #access_log  logs/host.access.log  main;
         
        location / {                 
            proxy_pass   http://localhost:8080/;            
        }
        
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }        
 
    }

3、进入Nginx目录的 sbin,重启Nginx

./nginx -s reload

4、需要有两条解析记录(1.DNS解析验证记录;2.域名解析记录)


 

(3)Nginx安装http_ssl_module模块

Nginx要安装该依赖模块,才能使用ssl

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
 
#可能需要的依赖包
yum -y install pcre-devel openssl openssl-devel

 

更多推荐