前言

当网站完成部署,成功上线后,很多小伙伴就以为 Jobs done 了,事实上,我们还有许多“善后”功夫要做呢。其中一个也是很重要的一点便是在浏览网站时,浏览器输入框左侧无时无刻不在提醒我们的小红点警示:

http 或 https 是一项网络协议,是计算机之间实现网络通信的一种“规则”。具体区别和定义可自行查找。

二者主要区别就是,http(超文本传输协议 HyperText Transfer Protocol)向服务器请求的信息是透过明文传输的,这就产生一个风险,就是一旦被人中途窃听,你的信息如登陆的用户名,密码都会直接被暴露。所以你还敢在http的网站输入你的密码吗?!

而相反的,https(HyperText Transfer Protocol over Secure Socket Layer)可以说是 http 的进阶版。其中的 s 是指 SSL 是处于网络协议中的应用层协议(具体可查询:网络协议)。简单点理解,这个 s 就是图上的那把锁,是把刚才提到的明文传输数据给加密了。从而令客户端和服务端的信息传输更加安全可靠。所以现在 https 才会称为目前的主流,被各大浏览器推崇!

参考:

十分钟搞懂HTTP和HTTPS协议?

网络通信协议简介(TCP/IP Networking)


如何申请SSL证书

事实上,现在有很多平台都可以申请,包括云服务提供商都会有相关入口服务提供。以下只讲我自己在部署时使用的方式。

首先,先去 freessl 平台注册账号,然后申请一张一年期的免费使用证书。

详情请参考:【部署HTTPS】免费SSL证书的申请与安装 


如何将证书部署到服务器上

如果是已经通过“宝塔面版“将网站映射到面板内的”网站“站点的话,那具体证书部署方法也可参考上面那个视频连接:【部署HTTPS】免费SSL证书的申请与安装 

但如果是没有将网站关联到”宝塔的网站“站点,那就需要在nginx服务器上自己手动部署,可参考:Nginx 安装 SSL 配置 HTTPS 超详细完整全过程 

 

1. 先通过命令行,查看 nginx 是否安装 http_ssl_module 模块。(一般会自带的)

Nginx -V

 

2. 然后在nginx的目录下创建cert文件夹

/etc/nginx/  mkdir cert 

 

3. 然后将刚才在freessl下载好的证书文件(2个:分别以.pem和.key结尾)上传到cert文件夹中。

    可通过scp命令复制上传,也可在宝塔面板内的”文件“下上传;或在Finalshell下上传!


4. 随后在编辑 /etc/nginx/nginx.conf 配置文件:

    找到http { server{} }:

http{
  server {
	    # 服务器端口使用443,开启ssl, 这里ssl就是上面安装的ssl模块
	    listen  443 ssl;
	    # 域名,多个以空格分开
	    server_name  kehong.ga www.kehong.ga;
	    
	    # ssl证书地址
	    ssl_certificate     /etc/nginx/cert/full_chain.pem;  # pem文件的路径
	    ssl_certificate_key  /etc/nginx/cert/private.key;    # key文件的路径
	    
	    # ssl验证相关配置
	    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;   #使用服务器端的首选算法


   #以下这些location下的内容都是之前在/etc/nginx/sites-enabled内的针对http,端口80的配置。
   #(将其copy于此是由于,希望nginx和uwsgi做同样的事:nginx处理静态资源,动态交给uwsgi)
   
		# 静态资源所在位置,nginx自己处理
	    location /static {
        		alias //www/wwwroot/RealBlog/blog/static_collected;
        }

      	location /media {
        		alias //www/wwwroot/RealBlog/media;		
        }

		# 动态请求(与后台交互的数据)nginx(只处理静态(页面写啥是啥的数据,不涉及后台交互))转发给uwsgi
	    location / {
#	        root   html;      			#返回的是nginx自己本身的首页,即“welcome to ngix!”
#	        index  index.html index.htm;  #返回的是nginx自己本身的首页,即“welcome to ngix!”
			
			# 转发端口必须和uwsgi配置文件中socket端口一致
			uwsgi_pass 127.0.0.1:8001;
        		include /etc/nginx/uwsgi_params;
        		
	    }
    	
	}

  #此server是为了监听http的80端口,将http的请求,转变为https的请求
  #将 http 重定向 https
	server{
		listen 80;
	    	server_name kehong.ga www.kehong.ga;
	    	return 301 https://$server_name$request_uri;
	}
}

 

5. 随后通过重启Nginx来完成部署。

service nginx restart

   

ps:之后证书一年期到期后,将服务器nginx/cert内的证书文件更新即可!


最后:贴上/etc/nginx/site-enabled/realblog.ini的http:端口80的原本配置文件

server {
      listen 80;
      server_name realblog;
      charset UTF-8;
      client_max_body_size 75M;


      location /static {
        alias //www/wwwroot/RealBlog/blog/static_collected;
        }

      location /media {
        alias //www/wwwroot/RealBlog/media;		
        }

      location / {
        uwsgi_pass 127.0.0.1:8001;
        include /etc/nginx/uwsgi_params;
        }
}

 

延伸阅读
  1. 上一篇: 关于gmail smtp设置自动发送失效的原因和解决方式
  2. 下一篇: 网站部署|如何将Django网站部署到服务器上

发表评论

您尚未登录,登录后方可评论~~
登陆 or 注册

评论列表

暂无评论哦~~