为何要升级到HTTPS和HTTP2?

http://baijiahao.baidu.com/s?id=1602041305989767011&wfr=spider&for=pc

https://www.jianshu.com/p/67c541a421f9

https://segmentfault.com/a/1190000019891825

HTTPS

一、所需条件

  • 域名
  • Web服务器(Nginx,Apache,IIS都行)
  • SSL证书(可通过腾讯云、阿里云等申请)
  • 需要Nginx支持SSL(命令nginx -V中,如果出现 ‘-with-http_ssl_module’ 字样即可)

二、操作步骤

  1. 登录阿里云购买免费SSL证书并申请
  2. 下载证书,上传至服务器
  3. Nginx配置HTTPS服务
  4. 重定向
  5. 重启Nginx服务
  6. 将html中所有的外链资源(如img,css,js,媒体标签等)url置为https

三、具体操作

 1.登录阿里云购买免费SSL证书(https://www.aliyun.com/product/cas?utm_content=se_1001656059

  阿里云免费型DV SSL有效期1年,购买后填写一些信息,提交申请,即可等待签发。在这里表扬一下阿里云,秒速签发。

  在这里讲一下,域名验证类型可选择自动DNS、手动DNS和文件验证,在这里我选择的是自动的;CSR生成方式选择系统生成。

  验证阶段,根据提示,要将域名添加一条DNS解析记录,这里要注意,要去申请域名的网站去操作。比如我的服务器买的阿里云,域名在新网买的,所以要去新网去设置,而不是在阿里云。 

 2.下载SSL证书并上传至服务器

  选择Nginx版本证书,在nginx安装目录(一般在/etc/nginx)中新建文件夹(cert),放置证书

 3.Nginx配置HTTPS服务

server { # 这个server标识我要配置了
listen 80 default_server; # 我要监听那个端口
listen [::]:80 default_server;
server_name xxx.cn ; # 你访问的路径前面的url名称
access_log /var/log/nginx/access.log main; # Nginx日志配置
charset utf-8; # Nginx编码
gzip_types text/plain application/x-javascript text/css text/javascript application/x-httpd-php application/json text/json image/jpeg image/gif image/png application/octet-stream; # 支持压缩的类型 # 注意添加下面这行代码,用于重定向
return 301 https://$server_name$request_uri; error_page 404 /404.html; # 错误页面
error_page 500 502 503 504 /50x.html; # 错误页面 # 指定项目路径uwsgi
location / { # 这个location就和咱们Django的url(r'^admin/', admin.site.urls),
include uwsgi_params; # 导入一个Nginx模块他是用来和uWSGI进行通讯的
uwsgi_connect_timeout 30; # 设置连接uWSGI超时时间
uwsgi_pass unix:/data/wwwroot/script/uwsgi.sock; # 指定uwsgi的sock>文件所有动态请求就会直接丢给他
}
# 指定静态文件路径
location /static/ {
alias /data/wwwroot/maci_proj/static/;
#index index.html index.htm;
}
} server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
server_name www.xxxxx.cn ;
access_log /var/log/nginx/access.log main; # Nginx日志配置
charset utf-8; # Nginx编码
gzip_types text/plain application/x-javascript text/css text/javascript application/x-httpd-php application/json text/json image/jpeg image/gif image/png application/octet-stream; # 支持压缩的类型 ssl_certificate /etc/nginx/cert/2050124_xxx.pem; # pem文件
ssl_certificate_key /etc/nginx/cert/2050124_xxx.key; # key文件
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on; error_page 404 /404.html; # 错误页面
error_page 500 502 503 504 /50x.html; # 错误页面 # 指定项目路径uwsgi
location / { # 这个location就和咱们Django的url(r'^admin/', admin.site.urls),
include uwsgi_params; # 导入一个Nginx模块他是用来和uWSGI进行通讯的
uwsgi_connect_timeout 30; # 设置连接uWSGI超时时间
uwsgi_pass unix:/data/wwwroot/script/uwsgi.sock; # 指定uwsgi的sock>文件所有动态请求就会直接丢给他
}
# 指定静态文件路径
location /static/ {
alias /data/wwwroot/maci_proj/static/;
#index index.html index.htm;
}
}

 4.重定向

   将所有http请求重定向为https,如上面配置所述。

   有三种重定向方式:

  • rewrite ^/(.*)$ https://example.com/$1;
  • rewrite ^ https://example.com$request_uri? permanent;
  • return 301 https://example.com$request_uri;

   唯一的区别:正则匹配的性能。第三种性能最优,第一种差一些。然而对于业余的我,完全体会不到。

 5.重启Nginx服务

nginx -t
nginx -s reload

 6.前端页面外链资源url全部改成https协议

  否则浏览器仍会提示不安全的连接

  

   对于这些资源,能够使用https的则使用,如果不能使用可以将其下载到自己的服务器上。

HTTP2

一、所需条件

 1、openssl 1.0.2+

openssl version  //查看版本的命令

 2、升级HTTPS

· 3.Nginx 1.9.5+ 且 支持

nginx -V  # 查看版本

二、修改Nginx配置文件

 原本的https的listen为

listen 443 ssl;

 现在在后面加上http2:

listen 443 ssl http2 default_server;

 重启Nginx

nginx -t
nginx -s reload

 在浏览器中可以查看到协议

 FireFox

 chrome

网站通信协议升级到HTTPS&HTTP2的更多相关文章

  1. 网站HTTP升级HTTPS完全配置手册

    本文由葡萄城技术团队于博客园原创并首发 转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 今天,所有使用Google Chrome稳定版的用户迎来了v68正式 ...

  2. 网站 HTTP 升级 HTTPS 完全配置手册

    网站 HTTP 升级 HTTPS 完全配置手册 今天,所有使用Google Chrome稳定版的用户迎来了v68正式版首个版本的发布,详细版本号为v68.0.3440.75,上一个正式版v67.0.3 ...

  3. 网站如何从http升级成https

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

  4. 使用react全家桶制作博客后台管理系统 网站PWA升级 移动端常见问题处理 循序渐进学.Net Core Web Api开发系列【4】:前端访问WebApi [Abp 源码分析]四、模块配置 [Abp 源码分析]三、依赖注入

    使用react全家桶制作博客后台管理系统   前面的话 笔者在做一个完整的博客上线项目,包括前台.后台.后端接口和服务器配置.本文将详细介绍使用react全家桶制作的博客后台管理系统 概述 该项目是基 ...

  5. 从 http 升级到 https 过程中遇到的一些问题

    Apple 2017年1月1号起要求Appstore 上线的应用都必须使用 https 加密请求协议,在二月份又改为建议 从 http 升级为 https 协议,此为背景. 公司做的APP同时在App ...

  6. 给你的网站免费配置上 HTTPS 证书

    现在越来越多的网站或服务增加了 HTTPS 证书,苹果 AppStore.微信小程序等也已强制要求开发者需提供 HTTPS 的后端接口.在阿里云 / 腾讯云上有一年期的免费赛门铁克 SSL 证书可供尝 ...

  7. nodejs从http升级到https(阿里云证书的使用)

    升级原因 1.各大搜索引擎中,https的网页的权重比一般的http的网页权重要高. 2.从用户体验的角度,一个老是被浏览器提醒该网页不可信的网页,总不会让用户感到安心 所以将网站从http升级为ht ...

  8. 全站从http升级到https(WordPress博客)

    最近几年HTTPS取代HTTP已经成为大趋势,HTTP是超文本传输协议,信息是明文传输的,而HTTPS是安全超文本传输协议,需要证书和提供安全连接,换句话说,HTTPS是嵌套了SSL加密的HTTP连接 ...

  9. 什么是https?http升级为https需要什么?

    一.什么是https? https是一种加密传输协议,网站使用https后可以避免敏感信息被第三方获取.https加密协议=SSL / TLS+http协议,也就是说,在传统的http协议上加上SSL ...

随机推荐

  1. CMake安装grpc生成gRPCTargets.cmake文件

    以下是安装语句: cd grpc_folder git submodule update --init cmake .. make -j 4 sudo make install 然而编写依赖gRPC的 ...

  2. python将字符串类型list转换成list

    python读取了一个list是字符串形式的'[11.23,23.34]',想转换成list类型: 方式一: import ast str_list = "[11.23,23.34]&quo ...

  3. Dubbo简介

    1. Dubbo是什么? Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案.简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需 ...

  4. 【重学计算机】计组D1章:计算机系统概论

    1.冯诺依曼计算机组成 主机(cpu+内存),外设(输入设备+输出设备+外存),总线(地址总线+数据总线+控制总线) 2.计算机层次结构 应用程序-高级语言-汇编语言-操作系统-指令集架构层-微代码层 ...

  5. OAuth2实现单点登录SSO

    1.  前言 技术这东西吧,看别人写的好像很简单似的,到自己去写的时候就各种问题,“一看就会,一做就错”.网上关于实现SSO的文章一大堆,但是当你真的照着写的时候就会发现根本不是那么回事儿,简直让人抓 ...

  6. AutoStartUtil【打开自启动设置界面】

    参考资料 Android6.0 打开自启动管理页面(华为.小米) Android打开自启动设置页面 Android 机型设置自启动的跳转界面 代码 注意:需要搭配<RomUtil[Android ...

  7. FastDFS分布式文件系统&Nginx负载均衡最小环境安装配置[超级详解]

    1.背景 FastDFS 是一款开源的.分布式文件系统(Distributed File System),由淘宝开发平台部资深架构师余庆开发.该开源项目的主页是 http://code.google. ...

  8. python学习第四讲,python基础语法之判断语句,循环语句

    目录 python学习第四讲,python基础语法之判断语句,选择语句,循环语句 一丶判断语句 if 1.if 语法 2. if else 语法 3. if 进阶 if elif else 二丶运算符 ...

  9. ASP.NET Core 基于JWT的认证(一)

    ASP.NET Core 基于JWT的认证(一) Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计 ...

  10. .net MVC +EF+VUE做回合制游戏(二)

    Emmm,游戏中的属性购买页面 话不多说先上代码 <form id="vue" action="/ltgdGame.Web/Main/Index" met ...