如何将网站升级为HTTPS协议(整理)

news/2024/5/15 20:16:07/文章来源:https://blog.csdn.net/weixin_33869377/article/details/93573052

如何将网站升级为HTTPS协议(整理)

一、总结

一句话总结:

获取证书(有免费有付费):证书是一个二进制文件,里面包含经过认证的网站公钥和一些元数据,要从经销商购买。

安装证书:证书可以放在/etc/ssl目录(Linux 系统),然后根据你使用的Web服务器进行配置。

修改链接:网页加载的 HTTP 资源,要全部改成 HTTPS 链接。因为加密网页内如果有非加密的资源,浏览器是不会加载那些资源的。

301重定向:修改 Web 服务器的配置文件,使用 301 重定向,将 HTTP 协议的访问导向 HTTPS 协议。

 

1、ssl证书有哪三种认证级别?

  • 域名认证(Domain Validation):最低级别认证,可以确认申请人拥有这个域名。对于这种证书,浏览器会在地址栏显示一把锁。
  • 公司认证(Company Validation):确认域名所有人是哪一家公司,证书里面会包含公司信息。
  • 扩展认证(Extended Validation):最高级别的认证,浏览器地址栏会显示公司名。

 

2、http和https的区别是什么?

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

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

 

3、HTTPS的优缺点如何?

网站升级HTTPS有利有弊,利当然是安全系数提升,降低劫持风险,弊端主要体现在速度上,由于证书验证、多次握手、CPU消耗等原因,https页面速度会被拖慢一点。

谷歌、火狐等浏览器厂商也已经扛起HTTPS大旗,对于HTTP站点会提示不安全警告。而且像谷歌、百度等搜索引擎也早已相应HTTPS号召,都声称对HTTPS站点页面友好甚至优先抓取,排名靠前,当然具体实际实施情况就另当别论了,目前来看,谷歌做的要比百度更成熟一些。

要让互联网站点都升级到HTTPS协议还需一段时间,但不可否认HTTPS是大势所趋。

 

4、如何确保浏览器只在使用 HTTPS 时,才发送Cookie?

网站响应头里面,Set-Cookie字段加上Secure标志即可。


Set-Cookie: LSID=DQAAAK...Eaem_vYg; Secure

 

5、什么是HTTP严格传输安全?

“HTTP严格传输安全”(简称 HSTS)的作用,就是强制浏览器只能发出HTTPS请求,并阻止用户接受不安全的证书。

它在网站的响应头里面,加入一个强制性声明。以下例子摘自维基百科。


Strict-Transport-Security: max-age=31536000; includeSubDomains

上面这段头信息有两个作用。

(1)在接下来的一年(即31536000秒)中,浏览器只要向example.com或其子域名发送HTTP请求时,必须采用HTTPS来发起连接。用户点击超链接或在地址栏输入http://www.example.com/,浏览器应当自动将http转写成https,然后直接向https://www.example.com/发送请求。

(2)在接下来的一年中,如果example.com服务器发送的证书无效,用户不能忽略浏览器警告,将无法继续访问该网站。

HSTS 很大程度上解决了 SSL 剥离攻击。只要浏览器曾经与服务器建立过一次安全连接,之后浏览器会强制使用HTTPS,即使链接被换成了HTTP

该方法的主要不足是,用户首次访问网站发出HTTP请求时,是不受HSTS保护的。

如果想要全面分析网站的安全程度,可以使用 Mozilla 的 Observatory。

 

 

 

二、HTTP 网站升级到 HTTPS 。

为了升级到 HTTP/2 协议,必须先启用 HTTPS。如果你不了解 HTTPS 协议(学名 TLS 协议),可以参考我以前的文章。

  • 《HTTPS 协议概述》
  • 《图解 HTTPS 协议》
  • 《HTTPS 协议的七个误解》
  • 《HTTPS 协议的延迟有多大?》

本文介绍如何将一个 HTTP 网站升级到 HTTPS 。

一、获取证书

升级到 HTTPS 协议的第一步,就是要获得一张证书。

证书是一个二进制文件,里面包含经过认证的网站公钥和一些元数据,要从经销商购买。

  • GoGetSSL
  • SSLs.com
  • SSLmate.com

证书有很多类型,首先分为三种认证级别。

  • 域名认证(Domain Validation):最低级别认证,可以确认申请人拥有这个域名。对于这种证书,浏览器会在地址栏显示一把锁。
  • 公司认证(Company Validation):确认域名所有人是哪一家公司,证书里面会包含公司信息。
  • 扩展认证(Extended Validation):最高级别的认证,浏览器地址栏会显示公司名。

还分为三种覆盖范围。

  • 单域名证书:只能用于单一域名,foo.com的证书不能用于www.foo.com
  • 通配符证书:可以用于某个域名及其所有一级子域名,比如*.foo.com的证书可以用于foo.com,也可以用于www.foo.com
  • 多域名证书:可以用于多个域名,比如foo.combar.com

认证级别越高、覆盖范围越广的证书,价格越贵。

还有一个免费证书的选择。为了推广HTTPS协议,电子前哨基金会EFF成立了 Let’s Encrypt,提供免费证书(教程和工具)。

拿到证书以后,可以用 SSL Certificate Check 检查一下,信息是否正确。

二、安装证书

证书可以放在/etc/ssl目录(Linux 系统),然后根据你使用的Web服务器进行配置。

  • 证书配置文件生成器,by Mozilla
  • 配置文件模板,by SSLMate

如果使用 Let’s Encrypt 证书,请使用自动安装工具 Certbot。

安装成功后,使用 SSL Labs Server Test 检查一下证书是否生效。

三、修改链接

下一步,网页加载的 HTTP 资源,要全部改成 HTTPS 链接。因为加密网页内如果有非加密的资源,浏览器是不会加载那些资源的。

<script src="http://foo.com/jquery.js"></script>

上面这行加载命令,有两种改法。

<!-- 改法一 -->
<script src="https://foo.com/jquery.js"></script><!-- 改法二 -->
<script src="//foo.com/jquery.js"></script>

其中,改法二会根据当前网页的协议,加载相同协议的外部资源,更灵活一些。

另外,如果页面头部用到了rel="canonical",也要改成HTTPS网址。

<link rel="canonical" href="https://foo.com/bar.html" />

四、301重定向

下一步,修改 Web 服务器的配置文件,使用 301 重定向,将 HTTP 协议的访问导向 HTTPS 协议。

Nginx 的写法。


server {listen 80;server_name domain.com www.domain.com;return 301 https://domain.com$request_uri;
}

Apache 的写法(.htaccess文件)。

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

五、安全措施

以下措施可以进一步保证通信安全。

5.1 HTTP Strict Transport Security (HSTS)

访问网站时,用户很少直接在地址栏输入https://,总是通过点击链接,或者3xx重定向,从HTTP页面进入HTTPS页面。攻击者完全可以在用户发出HTTP请求时,劫持并篡改该请求。

另一种情况是恶意网站使用自签名证书,冒充另一个网站,这时浏览器会给出警告,但是许多用户会忽略警告继续访问。

“HTTP严格传输安全”(简称 HSTS)的作用,就是强制浏览器只能发出HTTPS请求,并阻止用户接受不安全的证书。

它在网站的响应头里面,加入一个强制性声明。以下例子摘自维基百科。


Strict-Transport-Security: max-age=31536000; includeSubDomains

上面这段头信息有两个作用。

(1)在接下来的一年(即31536000秒)中,浏览器只要向example.com或其子域名发送HTTP请求时,必须采用HTTPS来发起连接。用户点击超链接或在地址栏输入http://www.example.com/,浏览器应当自动将http转写成https,然后直接向https://www.example.com/发送请求。

(2)在接下来的一年中,如果example.com服务器发送的证书无效,用户不能忽略浏览器警告,将无法继续访问该网站。

HSTS 很大程度上解决了 SSL 剥离攻击。只要浏览器曾经与服务器建立过一次安全连接,之后浏览器会强制使用HTTPS,即使链接被换成了HTTP

该方法的主要不足是,用户首次访问网站发出HTTP请求时,是不受HSTS保护的。

如果想要全面分析网站的安全程度,可以使用 Mozilla 的 Observatory。

5.2 Cookie

另一个需要注意的地方是,确保浏览器只在使用 HTTPS 时,才发送Cookie。

网站响应头里面,Set-Cookie字段加上Secure标志即可。


Set-Cookie: LSID=DQAAAK...Eaem_vYg; Secure
参考:HTTP 网站升级到 HTTPS 。 - CSDN博客
https://blog.csdn.net/liulangdeshusheng/article/details/52609958

 

三、如何将网站升级为HTTPS协议?

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chanzhi2016/article/details/71706197

基本概念:

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

 

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

 

 

很多用户目前对HTTPS持观望态度,当然网站升级HTTPS有利有弊,利当然是安全系数提升,降低劫持风险,弊端主要体现在速度上,由于证书验证、多次握手、CPU消耗等原因,https页面速度会被拖慢一点。

 

谷歌、火狐等浏览器厂商也已经扛起HTTPS大旗,对于HTTP站点会提示不安全警告。而且像谷歌、百度等搜索引擎也早已相应HTTPS号召,都声称对HTTPS站点页面友好甚至优先抓取,排名靠前,当然具体实际实施情况就另当别论了,目前来看,谷歌做的要比百度更成熟一些。

 

 

 

要让互联网站点都升级到HTTPS协议还需一段时间,但不可否认HTTPS是大势所趋。所以本文我们一起来了解下如何将网站升级到HTTPS协议。

 

1.购买、下载SSL证书

SSL证书有付费也有免费的,当然价格其实并不很高。之前我有整理过国内外几家知名的SSL商家,可供大家参考(http://blog.cnezsoft.com/blog/ssl-80138.html)。

 

2.备份,备份,备份

这是极其重要且必须的一步。即便你自认为技术深厚,对服务器熟悉也不要忽视升级前做好网站备份。

 

3.安装证书

不同厂家或都提供了相应的安装证书的解决方案,流程大同小异。这里我以免费SSL证书为例,在LAMP环境下给大家介绍如何安装证书。

 

打开apache的配置文件httpd.conf,找到

#LoadModule ssl_module modules/mod_ssl.so

#Include conf/extra/httpd-ssl.conf

删除行首的配置语句注释符号“#”

保存退出。

 

 

打开apache安装目录下conf/extra目录中的httpd-ssl.conf文件

在配置文件中查找以下配置语句

SSLCertificateFile conf/ssl.crt/server.crt 将服务器证书配置到该路径下

SSLCertificateKeyFile conf/ssl.key/server.key 将服务器证书私钥配置到该路径下

#SSLCertificateChainFile conf/ssl.crt/ca.crt 删除行首的“#”号注释符,并将中级CA证书 ca.crt配置到该路径下。

 

 

添加SSL 协议支持语句,关闭不安全的协议和加密套件:

SSLProtocol all -SSLv2 -SSLv3

 

 

修改加密套件如下:

SSLCipherSuite AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL;

保存退出,并重启Apache。检查HTTPS页面能否成功访问。

 

4.301重定向

考虑到SEO影响,须将之前的HTTP页面转为HTTPS。我们修改配置文件即可,这里我还是以LAMP环境为例,在.htaccess文件中加下面代码即可:

 

RewriteEngine OnRewriteCond %{HTTPS} offRewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

 

 

总结:

本文向大家介绍了网站升级HTTPS时必要流程,具体细节或因服务器环境不同和SSL证书商家不同而存在一些差异,但总体大同小异。如过大家在网站升级HTTPS过程中遇到疑难困惑或有成功经验,欢迎一起分享交流。


参考:如何将网站升级为HTTPS协议? - CSDN博客
https://blog.csdn.net/chanzhi2016/article/details/71706197

转载于:https://www.cnblogs.com/Renyi-Fan/p/9641942.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_746341.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大型网站系统架构分析

大型网站系统架构分析 千万级的注册用户&#xff0c;千万级的帖子&#xff0c;nTB级的附件&#xff0c;还有巨大的日访问量&#xff0c;大型网站采用什么系统架构保证性能和稳定性&#xff1f; 首先讨论一下大型网站需要注意和考虑的问题。 数据库海量数据处理&#xff1a;负载…

【网站开发】搭建一个属入自己的网站

概述 搭建一个属入自己的网站 1.购买域名 主机屋http://www.zhujiwu.com/ 购买的域名&#xff1a;TechShare.xyz 2.购买虚拟主机&#xff08;空间&#xff09; http://www.zhujiwu.com/vhost/ 4.控制面板&#xff0c;配置虚拟主机 设置FTP密码 5.文件管理 管理方法&#xff1a;…

说说大型高并发高负载网站的系统架构(转)

转载请保留出处&#xff1a;俊麟 Michael’s blog (http://www.toplee.com/blog/?p71) Trackback Url : http://www.toplee.com/blog/wp-trackback.php?p71 鄙人先后在CERNET做过拨号接入&#xff0c;在Yahoo&3721搞过搜索前端&#xff0c;在猫扑处理过mop.com的架构升级…

网站上线之前,基于SEO,该做哪些测试?

对于任何一个网站而言&#xff0c;在新站上线之初&#xff0c;每个SEO人员&#xff0c;都需要进行缜密的测试&#xff0c;用于辅助网站正式上线后&#xff0c;可以在搜索引擎中&#xff0c;有一个不错的排名。那么&#xff0c;新网站测试&#xff0c;都需要注意什么&#xff1f…

Java爬虫实战(一):抓取一个网站上的全部链接

Java爬虫实战&#xff08;一&#xff09;&#xff1a;抓取一个网站上的全部链接前言&#xff1a;写这篇文章之前&#xff0c;主要是我看了几篇类似的爬虫写法&#xff0c;有的是用的队列来写&#xff0c;感觉不是很直观&#xff0c;还有的只有一个请求然后进行页面解析&#xf…

为网站加入Drupal星球制作RSS订阅源

目前中文 Drupal 星球的版块还未成立&#xff0c;但大家的积极性挺高&#xff0c;不少站长都已经调整好自己的网站&#xff0c;生成了可供Drupal Planet 使用的RSS订阅源。如果你也想让网站做好准备&#xff0c;可以不必再花上不少的时间去了解要求和流程&#xff0c;只需要跟着…

网站地图

ASP.NET提供了网站地图提供器XmlSiteMapProvider&#xff0c;使用XmlSiteMapProvider可以从XML文件中获取网站地图信息。 XmlSiteMapProvider会从根目录中寻找名为Web.sitemap的文件来读取信息&#xff0c;在解析Web.sitemap文件中的网站地图数据后创建一个网站地图对象&#x…

简单建立个人WEB网站

文介绍一些简单的方法是普通用户可以建设一个自己的个人WEB小网站。建站条件嘛只要有一台可以连接网络的电脑就足够了。由于我是用的是WIN7系统&#xff0c;以下操作均指是在WIN7环境下的&#xff0c;其他WIN操作系统大概都是类似的。开讲&#xff1a;第一步&#xff1a;首先我…

数十万网站被利用发起CC攻击

近日&#xff0c;阿里云云盾安全团队协助处理了多例金融证券直播行业的客户的网站攻击事件。有专业的攻击团伙&#xff0c;针对网上的金融证券直播类网站业务发起集中的网络攻击、意在破坏网站的正常运营&#xff0c;进而勒索钱财。云盾安全专家经过分析攻击、采用对应安全策略…

手机网站Mobile Web

原文链接地址有一个词"手机网站"&#xff08;mobile web&#xff09;&#xff0c;指供手机浏览的网站&#xff0c;但它是不存在的。人们提到"移动互联网"的时候&#xff0c;其实专指另外一样东西&#xff1a;手机App。一、Web App VS Native App比起手机Ap…

怎样将优酷网站下载的视频KUX转MP4格式

在休息之余&#xff0c;相信大多数人都会拿手机看电视剧听音乐之类的&#xff0c;最近拍了很多的新片子&#xff1a;《毒液&#xff1a;致命守护者》、《无名之辈》、《亡命救赎》《影》等等优质电影&#xff0c;但是很多的电影都只能在电影院观看的&#xff0c;如果不去电影院…

解析各大电子商务网站订单号的生成方式

2019独角兽企业重金招聘Python工程师标准>>> 订单是整个电子商务的核心。整个电子商务的流程也是围绕订单的状态执行的。这篇博客主要向大家介绍订单号的生成方式。 现在大型电商网站大多都有好几种下单途径。 比如&#xff1a;通过Web网站下单&#xff0c;通过打电…

window.open原页面跳转_百度转码后的手机网站页面是否有利于SEO优化

随着移动互联网的飞速增长&#xff0c;越来越多的移动端网站正在迅速掘起&#xff0c;据百度搜索统计表示&#xff1a;2013年移动端搜索发展迅猛&#xff0c;整体占比高达40%&#xff0c;预期在2014年内可能会出现超过PC端的搜索增长&#xff0c;从当前移动互联网的发展方向看来…

react登录页面_用 React 做一个人脸识别网站 - 前端篇

引言React 可以说是近些年最热门的前端框架啦&#xff0c; 并且非常非常的好用 ~很多的国外公司比如 Netflix、Feedly、Airbnb 都是用它来实现的网站主页。那么 React 到底是个什么呢&#xff1f;它其实是一个为数据提供渲染为HTML视图的开源JavaScript 库。传说最早起源于Face…

网站用户头像剪裁上传完整案例

做为网站前段开发人员来说&#xff0c;用户头像剪裁和上传是一个很常用的功能&#xff0c;一般这个功能涉及到图片的放大&#xff0c;缩小&#xff0c;移动&#xff0c;旋转&#xff0c;和剪裁。下面我们来做一个完整的demo&#xff0c;剪裁后的图片以base64的形式返回&#xf…

js记录用户在网站的浏览记录和停留时间(2)

问题&#xff1a;上次的代码确实解决了一部分用户访问记录的收集&#xff0c;但是还是存在一个问题就是 我们网站的注册 都是新页面打开的&#xff0c;如果用户刚进入网站就点击注册&#xff08;打开了新的页面&#xff09; &#xff0c;我代码里用到的 onbeforeunload 就无法将…

burpsuite只拦截特定网站数据包教程

一、背景说明 在配置burpsuite代理截包时经常会遇到这样的情况&#xff1a; 浏览器经常自己发一些包&#xff08;收集用户信息&#xff09;&#xff0c;干挠渗透测试人员对目标网站的检测&#xff1b; 如果是代理手机&#xff0c;那就是很多APP都时不时发一些包&#xff0c;干挠…

【转载】大型网站性能

参考这篇文章&#xff1a;http://www.csdn.net/article/2014-09-30/2821940 把整个过程&#xff0c;分为三段路径&#xff1a; 第一段在用户和浏览器端&#xff0c;主要负责发出用户请求&#xff0c;以及接受响应数据进行计算渲染显示给用户&#xff1b;第二段在网络上&#xf…

用户域名注册后 需要在租服务器吗,搭建论坛需要租用什么样的网站服务器

搭建论坛可能对于普通的站长还是比较遥远的事情&#xff0c;但是对IT行业有比较深刻了解的站长&#xff0c;他们往往喜欢选择搭建一个论坛&#xff0c;聚集一些属于自己的人气。那么搭建论坛需要租用什么样的网站服务器呢&#xff1f;我们知道&#xff0c;论坛它比普通网站需要…

40个新鲜的 jQuery 插件,使您的网站用户友好

作为最流行的 JavaScript 开发框架&#xff0c;jQuery 在现在的 Web 开发项目中扮演着重要角色&#xff0c;它简化了 HTML 文档遍历&#xff0c;事件处理&#xff0c;动画以及 Ajax 交互&#xff0c;这篇文章特别收集了40个新鲜的 jQuery 插件&#xff0c;使您的网站对用户更友…