聊聊全站HTTPS帶來的技術挑戰

日前寫的文章里了討論了數據傳輸的安全性的問題,最后一部分提到了通過HTTPS解決數據傳輸安全性的方案。那么一個新問題又來了,實施全站HTTPS的過程中,我們可能會遇到哪些技術問題?所以我今天和大家一起來算一下這個賬,將技術成本理清楚。

聊聊全站HTTPS帶來的技術挑戰

準備工作

  1. 購買證書 ,網站使用HTTPS需要申請安全證書,目前來說還是比較繁瑣的,而且對小公司來說是有一些成本在。另外,一定要選正規的機構,否則你的網站以后使用主流瀏覽器,如chrome訪問,會被提示大大的警告,告訴用戶該證書有問題。
  2. 頁面里所有資源都要改成走https ,包括:圖片、js、form表單等等,否則瀏覽器就會報警。
  3. 確保用到的CDN節點都支持HTTPS ,如果是自建IDC, 必須要保證全國甚至世界范圍的 idc 和 cdn 節點,都得覆蓋到。

CDN 使用 https 常見的方案有:

  1. 網站主提供私鑰給 cdn,回源使用 http。
  2. cdn 使用公共域名,公共的證書,這樣資源的域名就不能自定義了。回源使用 http。
  3. 僅提供動態加速,cdn 進行 tcp 代理,不緩存內容。
  4. 所有的開發、測試環境都要做https的升級 ,確保各級環境保持同一套網絡協議。

性能方面的挑戰

做好以上的技術準備后,我們還必須意識到實施HTTPS后帶來的性能問題:

1.網絡耗時增加,簡單來說需要多幾次握手,網絡耗時變長,用戶從http跳轉到https還要一點時間。

對于這一塊的優化,有Session ticket或者Session Cache等優化方案,不過也是各有優缺點。

2.計算耗時增加,需要更好機器性能,https要多做一次RSA校驗。

對于這一塊的優化,主要的方式是采用最新的openssl協議,使用硬件加速,優先使用ECC密鑰等等。

安全方面的挑戰

關于這一塊,常見的安全隱患包含:降級攻擊和重新協商攻擊。

對于前者,攻擊者偽造或者修改"client hello "消息,使得客戶端和服務器之間使用比較弱的加密套件或者協議完成通信。對于重新協商攻擊,是攻擊者利用協商后安全算法偏弱,試圖竊取傳輸內容,并且可以 不斷發起完全握手請求,觸發服務端進行高強度計算并引發服務拒絕。

當然,這一塊,在基礎廠商或者云產商的努力下,對于我們一般的業務用戶,幾乎不用關心協議層上面安全的問題。我在這里提出的目的,還是想說明一點,安全問題一直都不能放松。

最后一點總結

切換成HTTPS是必然趨勢,相信會有越來越多的站點加入進來,而且完成后,它能給我們帶來的收益是巨大的。對于我們技術團隊而言,在實行之前,一定要考慮清楚它背后的技術成本,并做好對應的技術儲備,做好HTTP切換為HTTPS的上線流程,確保萬無一失。 ?


原文發布時間為:2017-10-09?

本文作者:佚名

本文來自云棲社區合作伙伴“51CTO”,了解相關信息可以關注。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/540397.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/540397.shtml
英文地址,請注明出處:http://en.pswp.cn/news/540397.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

[轉載] spring mvc自定義int枚舉轉換器

參考鏈接&#xff1a; Java中具有自定義值的枚舉 2019獨角獸企業重金招聘Python工程師標準>>> public class MyIntegerEnumConverters { WritingConverter public static class EnumToIntegerConverter implements Converter<IntEnumConvertable, String> {…

使用BufferedImage進行漸變色操作

序 本文主要簡述一下如何使用BufferedImage進行漸變色操作。 GradientPaint java/awt/GradientPaint.java public class GradientPaint implements Paint {Point2D.Float p1;Point2D.Float p2;Color color1;Color color2;boolean cyclic;//...... } 這個是生成漸變色的關…

[轉載] Java中的字符串處理

參考鏈接&#xff1a; Java中的StringBuffer appendCodePoint()方法以及示例 JDK8在線Api中文手冊 JDK8在線Api英文手冊 Java中的字符串處理 1.1 String類的構造函數1.2 字符串的長度1.3 特殊的字符串操作1.3.1 字符串字面值1.3.2 字符串連接1.3.3 字符串和其他數據類型的連…

MySQL循環語句之while循環測試

轉自&#xff1a;http://www.nuoweb.com/database/7614.htmlMySQL有循環語句操作&#xff0c;while 循環、loop循環和repeat循環&#xff0c;目前我只測試了 while 循環&#xff0c;下面與大家分享下mysql 操作同樣有循環語句操作&#xff0c;網上說有3中標準的循環方式&#x…

[轉載] JAVA環境變量配置

參考鏈接&#xff1a; Java中的變量 安裝JDK(1.8) Oracle官網 下載jdk 百度網盤window版本 提取碼&#xff1a;o99i win 10環境變量配置 在電腦桌面 右鍵點擊 此電腦 的 屬性 選項 選擇 高級系統設置 > 然后點擊 環境變量 選項 點擊 系統變量 下的 新建 按鈕&#xf…

[轉載] Java中的變量和常量

參考鏈接&#xff1a; Java中的變量范圍 在程序中存在大量的數據來代表程序的狀態&#xff0c;其中有些數據在程序的運行過程中值會發生改變&#xff0c;有些數據在程序運行過程中值不能發生改變&#xff0c;這些數據在程序中分別被叫做變量和常量。 在實際的程序中&#xf…

4.3/4.4 磁盤分區

2019獨角獸企業重金招聘Python工程師標準>>> 添加虛擬磁盤 第一步&#xff0c;選擇虛擬機中的“設置” 第二步&#xff0c;選擇“添加硬盤” 第三步&#xff0c;選擇_SCSI &#xff08;推薦&#xff09; # 保持默認 第四步&#xff0c;選擇“創建新的虛擬磁盤…

[轉載] java(三)對象的序列化與static、final關鍵字

參考鏈接&#xff1a; Java中的final最終變量 java對象的序列化 Java序列化是指把Java對象轉換為字節序列的過程&#xff1b;而Java反序列化是指把字節序列恢復為Java對象的過程。java中存有Cloneable接口&#xff0c;實現此接口的類都具有被拷貝能力&#xff0c;比new一個對象…

RoboMaster 2017:機器人版的「王者農藥」,工程師們的競技時代

8月6日晚&#xff0c;第十六屆全國大學生機器人大賽 RoboMaster 2017機甲大師賽在華潤深圳灣體育中心“春繭”體育館舉行&#xff0c;關于這個比賽的盛況已經無需贅述&#xff0c;去年雷鋒網參加上屆比賽時&#xff0c;報道的是「像看了一場演唱會」&#xff0c;如果用演唱會來…

[轉載] 詳解Java中的泛型

參考鏈接&#xff1a; Java中具有泛型的有界類型 1、什么是泛型 泛型&#xff0c;即“參數化類型”。一提到參數&#xff0c;最熟悉的就是定義方法時有形參&#xff0c;然后調用此方法時傳遞實參。那么參數化類型怎么理解呢&#xff1f;顧名思義&#xff0c;就是將類型由原來…

【初學者必讀】:前端工程師的知識體系

下圖是前端工程師圖解&#xff1a; 前端開發的核心是HTML CSS JavaScript。本質上它們構成一個MVC框架&#xff0c;即HTML作為信息模型&#xff08;Model&#xff09;&#xff0c;CSS控制樣式&#xff08;View&#xff09;&#xff0c;JavaScript負責調度數據和實現某種展現邏…

[轉載] Java面試題大全(2020版)

參考鏈接&#xff1a; Java中的循環 發現網上很多Java面試題都沒有答案&#xff0c;所以花了很長時間搜集整理出來了這套Java面試題大全&#xff0c;希望對大家有幫助哈~ 本套Java面試題大全&#xff0c;全的不能再全&#xff0c;哈哈~ 博主已將以下這些面試題整理成了一個…

使用Prometheus監控Cloudflare的全球網絡

Matt Bostock在SRECON 2017歐洲大會的演講中&#xff0c;介紹了如何使用Prometheus實現對CloudFlare分布于全球的架構和網絡的監控。Prometheus是一種基于度量進行監控的工具&#xff0c;CloudFlare是一家CDN、DNS和DDoS防御&#xff08;Mitigation&#xff09;服務提供商。\\基…

[轉載] Java-forEach增強for循環是值傳遞規則詳解

參考鏈接&#xff1a; Java中的for-each循環 1. 引入 正如Java語法意義&#xff0c;變量的傳遞只有值傳遞&#xff0c;雖然變量分為引用變量和基本類型變量&#xff0c;前者更像C中的地址概念。 在學習Lambda表達式的時候&#xff0c;遇到了試圖在增強for循環中對原鏈表元素重…

開始吧

2019獨角獸企業重金招聘Python工程師標準>>> 寫C三年有余&#xff0c;在技術方面也算小有所成。準備在這里分享一些C進階、Python、Golang技術文章。 CSDN博客地址&#xff1a; http://blog.csdn.net/godmaycry 以后博客同步更新。 轉載于:https://my.oschina.net/u…

[轉載] 常用應屆生Java開發筆試面試題(更新中)

參考鏈接&#xff1a; Java中的循環的重要事項 Java開發面試題 Java基礎篇Java8大基本數據類型Java的三大特性面向對象如果讓你推銷一款Java產品&#xff0c;你會怎么推銷呢&#xff1f;&#xff08;java的特點&#xff09;JVM與字節碼JDK與JREStringBuilder和StringBuffer的區…

java/javascript 時間操作工具類

一、java 時間操作工具類 import org.springframework.util.StringUtils;import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.List;/*** 時間操作工具類** author zwq**/ public …

[轉載] java語言程序設計-基礎篇

參考鏈接&#xff1a; Java中的決策制定(if&#xff0c;if-else&#xff0c;switch&#xff0c;break&#xff0c;continue&#xff0c;jump) 第1章&#xff0c;計算機、程序和Java概述 包括【每個java初學者都應該搞懂的問題】 http://blog.csdn.net/haobo920/article/detai…

Exchange server 2013(十四)WSUS部署及組策略設置(2)

我們繼續上一節未完的博客&#xff0c;繼續我們的WSUS設置。[上一章節標題&#xff1a;Exchange server 2013(十四)WSUS部署及組策略設置(1) 網址&#xff1a;http://1183839.blog.51cto.com/blog/1173839/1182366] 首先單擊自動審批,來修改審批規則,也就是說當wsus偵測到新的更…

[轉載] Python中的switch語句的替代品

參考鏈接&#xff1a; Java中的switch語句 Python 中沒有 switch語句。 一般用if-else 語句可以替代switch語句&#xff0c;今天學習了使用字典的映射來代替switch語句。Mark一下 day 8; def get_sunday(): return sunday def get_monday(): return monday def get_tues…