网站通信协议升级到HTTPS&HTTP2
为何要升级到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’ 字样即可)
二、操作步骤
- 登录阿里云购买免费SSL证书并申请
- 下载证书,上传至服务器
- Nginx配置HTTPS服务
- 重定向
- 重启Nginx服务
- 将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的更多相关文章
- 网站HTTP升级HTTPS完全配置手册
本文由葡萄城技术团队于博客园原创并首发 转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 今天,所有使用Google Chrome稳定版的用户迎来了v68正式 ...
- 网站 HTTP 升级 HTTPS 完全配置手册
网站 HTTP 升级 HTTPS 完全配置手册 今天,所有使用Google Chrome稳定版的用户迎来了v68正式版首个版本的发布,详细版本号为v68.0.3440.75,上一个正式版v67.0.3 ...
- 网站如何从http升级成https
基本概念: HTTP: 是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准,用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少. HT ...
- 使用react全家桶制作博客后台管理系统 网站PWA升级 移动端常见问题处理 循序渐进学.Net Core Web Api开发系列【4】:前端访问WebApi [Abp 源码分析]四、模块配置 [Abp 源码分析]三、依赖注入
使用react全家桶制作博客后台管理系统 前面的话 笔者在做一个完整的博客上线项目,包括前台.后台.后端接口和服务器配置.本文将详细介绍使用react全家桶制作的博客后台管理系统 概述 该项目是基 ...
- 从 http 升级到 https 过程中遇到的一些问题
Apple 2017年1月1号起要求Appstore 上线的应用都必须使用 https 加密请求协议,在二月份又改为建议 从 http 升级为 https 协议,此为背景. 公司做的APP同时在App ...
- 给你的网站免费配置上 HTTPS 证书
现在越来越多的网站或服务增加了 HTTPS 证书,苹果 AppStore.微信小程序等也已强制要求开发者需提供 HTTPS 的后端接口.在阿里云 / 腾讯云上有一年期的免费赛门铁克 SSL 证书可供尝 ...
- nodejs从http升级到https(阿里云证书的使用)
升级原因 1.各大搜索引擎中,https的网页的权重比一般的http的网页权重要高. 2.从用户体验的角度,一个老是被浏览器提醒该网页不可信的网页,总不会让用户感到安心 所以将网站从http升级为ht ...
- 全站从http升级到https(WordPress博客)
最近几年HTTPS取代HTTP已经成为大趋势,HTTP是超文本传输协议,信息是明文传输的,而HTTPS是安全超文本传输协议,需要证书和提供安全连接,换句话说,HTTPS是嵌套了SSL加密的HTTP连接 ...
- 什么是https?http升级为https需要什么?
一.什么是https? https是一种加密传输协议,网站使用https后可以避免敏感信息被第三方获取.https加密协议=SSL / TLS+http协议,也就是说,在传统的http协议上加上SSL ...
随机推荐
- ASP.NET Core 快速入门(实战篇)
上篇讲了<asp.net core在linux上的环境部署>.今天我们将做几个小玩意实战一下.用到的技术和工具有mysql.websocket.AngleSharp(爬虫html解析).n ...
- mysql性能优化之数据库级别优化--优化sql语句
一 优化SELECT语句 1.1 WHERE子句优化 本文暂时只讨论可以处理WHERE子句的优化,下面的一些实例使用SELECT语句,但是相同的优化同样适用DELETE和UPDATE语句中的WHER ...
- php原生代码实现explode函数功能
在开始代码前要先介绍几个PHP函数: explode() 把字符串打散成数组 strpos() 返回字符串在另一个字符串第一次出现的位置(对大小写敏感) strstr() 查找 ...
- 初试PySnooper
Pysooper是什么? 我们写代码会经常出现bug,有的人会使用断点调试器,但是设置这样的断点调试器是花时间的. 所以很多人会在可能出现错误的地方print打印来输出语句. Pysooper的作用有 ...
- JavaScript 执行机制
一.宏任务与微任务 macro-task(宏任务):包括整体代码script,setTimeout,setInterval micro-task(微任务):Promise,process.nextTi ...
- 【Spark篇】---Spark中Shuffle文件的寻址
一.前述 Spark中Shuffle文件的寻址是一个文件底层的管理机制,所以还是有必要了解一下的. 二.架构图 三.基本概念: 1) MapOutputTracker MapOutputTracker ...
- Xcode 10 iOS12 "A valid provisioning profile for this executable was not found
问题:Xcode10 build 没问题,跑虚拟机也没问题,数据线连上run到真机上出现 Xcode 10 iOS12 "A valid provisioning profile for t ...
- Devexpress常见问题
1.DevExpress控件组中的GridControl控件不能使横向滚动条有效. 现象:控件中的好多列都挤在一起,列宽都变的很小,根本无法正常浏览控件单元格中的内容. 解决:gridView1.Op ...
- [开源]WinForm 控件使用总结
背景 都2019年了,还在用WinForm吗?哈哈,其实我也没在用,都是很多年前一些项目积累,所以代码写的有些屎,之所以开源出来,希望能给大家有所帮助,喜欢的话给 一个Star以资鼓励~: 具体代码: ...
- JVM上的响应式流 — Reactor简介
强烈建议先阅读下JVM平台上的响应式流(Reactive Streams)规范,如果没读过的话. 官方文档:https://projectreactor.io/. 响应式编程 作为响应式编程方向上的第 ...