ocsp伺服器搭建
1. 玉龍HTTPS對網站性能SEO有哪些影響
1前言
HTTPS在保談肆純護用戶隱私,防止流量劫持方面發揮著非常關鍵的作用,但與此同時,HTTPS也會降低用戶訪問速度,增加網站伺服器的計算資源消耗。
本文主要介紹https對用戶體驗的影響。
本文最早發表於網路運維部官方博客
2HTTPS對訪問速度的影響
在介紹速度優化策略之前,先來看下HTTPS對速度有什麼影響。影響主要來自兩方面:
1.協議交互所增加的網路RTT(roundtriptime)。
2.加解密相關的計算耗時。
下面分別介紹一下。
2.1網路耗時增加
由於HTTP和HTTPS都需要DNS解析,並且大部分情況下使用了DNS緩存,為了突出對比效果,忽略主域名的DNS解析時間。
用戶使用HTTP協議訪問(或者)時會有如下網路上的交互耗時:
可見,用戶只需要完成TCP三次握手建立TCP連接就能夠直接發送HTTP請求獲取應用層數據,此外在整個訪問過程中也沒有需要消耗計算資源的地方。
接下來看HTTPS的訪問過程,相比HTTP要復雜很多,在部分場景下,使用HTTPS訪問有可能增加7個RTT。:
HTTPS首次請求需要的網路耗時解釋如下:
1.三次握手建立TCP連接。耗時一個RTT。
2.使用HTTP發起GET請求,服務端返回302跳轉到。需要一個RTT以及302跳轉延時。
a)大部分情況下用戶不會手動輸入來訪問HTTPS,服務端只能返回302強制瀏覽器跳轉到https。
b)瀏覽器處理302跳轉也需要耗時。
3.三次握手重新建立TCP連接。耗時一個RTT。
a)302跳轉到HTTPS伺服器之後,由於埠和伺服器不同,需要重新完成三次握手,建立TCP連接。
4.TLS完全握手階段一。耗時至少一個RTT。
a)這個階段主要是完成加密套件的協商和證書的身份認證。
b)服務端和瀏覽器會協商出相同的密鑰交換演算法、對稱加密演算法、內容一致性含咐校驗演算法、證書簽名演算法、橢圓曲線(非ECC演算法不需要)等。
c)瀏覽器獲取到證書後需要校驗證書的有效性,雹磨比如是否過期,是否撤銷。
5.解析CA站點的DNS。耗時一個RTT。
a)瀏覽器獲取到證書後,有可能需要發起OCSP或者CRL請求,查詢證書狀態。
b)瀏覽器首先獲取證書里的CA域名。
c)如果沒有命中緩存,瀏覽器需要解析CA域名的DNS。
6.三次握手建立CA站點的TCP連接。耗時一個RTT。
a)DNS解析到IP後,需要完成三次握手建立TCP連接。
7.發起OCSP請求,獲取響應。耗時一個RTT。
8.完全握手階段二,耗時一個RTT及計算時間。
a)完全握手階段二主要是密鑰協商。
9.完全握手結束後,瀏覽器和伺服器之間進行應用層(也就是HTTP)數據傳輸。
當然不是每個請求都需要增加7個RTT才能完成HTTPS首次請求交互。大概只有不到0.01%的請求才有可能需要經歷上述步驟,它們需要滿足如下條件:
1.必須是首次請求。即建立TCP連接後發起的第一個請求,該連接上的後續請求都不需要再發生上述行為。
2.必須要發生完全握手,而正常情況下80%的請求能實現簡化握手。
3.瀏覽器需要開啟OCSP或者CRL功能。Chrome默認關閉了ocsp功能,firefox和IE都默認開啟。
4.瀏覽器沒有命中OCSP緩存。Ocsp一般的更新周期是7天,firefox的查詢周期也是7天,也就說是7天中才會發生一次ocsp的查詢。
5.瀏覽器沒有命中CA站點的DNS緩存。只有沒命中DNS緩存的情況下才會解析CA的DNS。
2.2計算耗時增加
上節還只是簡單描述了HTTPS關鍵路徑上必須消耗的純網路耗時,沒有包括非常消耗CPU資源的計算耗時,事實上計算耗時也不小(30ms以上),從瀏覽器和伺服器的角度分別介紹一下:
1,瀏覽器計算耗時
a)RSA證書簽名校驗,瀏覽器需要解密簽名,計算證書哈希值。如果有多個證書鏈,瀏覽器需要校驗多個證書。
b)RSA密鑰交換時,需要使用證書公鑰加密premaster。耗時比較小,但如果手機性能比較差,可能也需要1ms的時間。
c)ECC密鑰交換時,需要計算橢圓曲線的公私鑰。
d)ECC密鑰交換時,需要使用證書公鑰解密獲取服務端發過來的ECC公鑰。
e)ECC密鑰交換時,需要根據服務端公鑰計算masterkey。
f)應用層數據對稱加解密。
g)應用層數據一致性校驗。
2,服務端計算耗時
a)RSA密鑰交換時需要使用證書私鑰解密premaster。這個過程非常消耗性能。
b)ECC密鑰交換時,需要計算橢圓曲線的公私鑰。
c)ECC密鑰交換時,需要使用證書私鑰加密ECC的公鑰。
d)ECC密鑰交換時,需要根據瀏覽器公鑰計算共享的masterkey。
e)應用層數據對稱加解密。
f)應用層數據一致性校驗。
由於客戶端的CPU和操作系統種類比較多,所以計算耗時不能一概而論。手機端的HTTPS計算會比較消耗性能,單純計算增加的延遲至少在50ms以上。PC端也會增加至少10ms以上的計算延遲。
伺服器的性能一般比較強,但由於RSA證書私鑰長度遠大於客戶端,所以服務端的計算延遲也會在5ms以上。
2. HTTPS--握手,證書及秘鑰協商
一、學習思路
二、HTTPS 協議層次
SSL和TLS為數據安全通信提供支持。
三、HTTPS設計思路
1、伺服器生成公鑰對A,把公鑰和其他信息info發送給CA機構,申請證書;
2、CA機構,有一套自己的公鑰對S,CA機構將info生成數字摘要,並使用S私鑰對摘要進行加密,CA機構在操作系統系統有有一套證書,保存的是S公鑰;
3、CA機構將info和加密後的數字摘要生成證書發送給伺服器;
4、伺服器進行https通信時,先發送證書;
5.6.7、客戶端收到證書後,首先驗證證書合法性,獲取OS內部受信任的CA證書,使用OS公鑰對證書摘要進行解密出hash值,再使用相同的hash演算法對證書內容進行搜蘆hash計算,比較兩個hash值是否一致,一致則認為證書合法;
8、客戶端驗證證書合法後,client生成對稱秘鑰對,並使用公鑰A將秘鑰對加密,陵慶發送給伺服器,之後的交互數據,則使用對稱秘鑰加密。(實際過程並未如此)
由此可見,整個HTTPS過程涉及到兩對公鑰對,一是用戶加密數據通信的對稱秘鑰,放在數字證書中;二是CA機構的公鑰對,放在OS內,用於驗證證書是否合法
四、TLS握手
整個交互過程可以分為三個階段:tcp握手,tls握手(明文或者密文),tls數據交互(密文)
tls握手用於驗證雙方及協商通信的尺漏握加密秘鑰。
一般的,tls握手過程是明文交互的,也可以使用RSA對稱加密,雙方協商一致就可以。
有三種情況的握手:
a、只驗證伺服器的SSL握手過程
b、驗證伺服器和客戶端的SSL握手過程
c、恢復原有會話的SSL握手過程
下圖展示了「a、只驗證伺服器的SSL握手過程」
注意,第4階段,server key exchange是可選的,作為證書的補充
下列場景才會有server key exchange
協商採用了RSA加密,但伺服器端的證書沒有提供RSA公鑰
協商採用了DH加密,但伺服器端的證書沒有提供DH參數
協商採用了fortezza_kea加密,但是服務端的證書沒有提供參數
4.1、TLS會話緩存機制
為了加快建立握手的速度,減少協議帶來的性能降低和資源消耗,TLS協議有兩類會話緩存機制:
會話標識session ID和會話記錄session ticket.
client -> server: clienthello(session id)
server -> client: serverhello, change cipher spec, encrypted handshake message
client -> server: change cipherspec, encrypted handshake message
客戶端再次和伺服器建立連接,則在client中session
ID中攜帶記錄的信息,發送給伺服器。
伺服器根據session ID檢索緩存記錄,如果沒有檢索到,則按正常的握手進行;
如果檢索到,則返回change_cipher_spec與encrypted_handshake_message;
如果客戶端能夠驗證通過伺服器加密數據,則客戶端同樣發送change_cipher_spec與encrypted_handshake_message信息;
伺服器驗證數據通過,則握手建立成功,開始進行正常的加密數據通信;
4.2、客戶端重連
客服端和伺服器之間建立了有效TLS連接並通信;
客戶端需要更新秘鑰,主動發出client_hello信息;
伺服器識別重建連接請求後,發送server_hello信息;
客戶端和伺服器開始新的重建連接過程;
4.3、伺服器重連
客服端和伺服器之間建立了有效TLS連接並通信;
客戶端訪問受保護的信息;
服務端返回hello_request信息;
客戶端收到hello_request信息之後發送client_hello信息,開始重新建立連接;
五、證書
5.1、證書結構
版本:標識證書的版本(1,2和3)
序列號:標識證書的唯一標識符
簽名演算法:本證書所用簽名演算法
頒發者:證書頒發者的可識別名
使用者:證書擁有者的可識別名
公鑰:證書發布的公鑰
CRL:證書吊銷列表,包含CA已經吊銷的證書序列號及其吊銷日期
證書策略:
使用者秘鑰標識符
頒發機構秘鑰標識符:用於證書鏈的驗證
證書吊銷列表(CRL)與證書狀態在線查詢協議(OCSP)
一般CA都只是每隔一定時間(幾天或者幾個月)才發布新的吊銷列表,所以CRL不能及時反映證書狀態。
而OCSP就能滿足實時在線查詢證書狀態的要求。OCSP伺服器會返回證書的三個狀態:正常、吊銷和未知。
在頒發機構信息訪問提供了OCSP伺服器地址 http://ocsp.wsign.com
瀏覽器在訪問https網站是,先檢查此證書是否已經被吊銷,如果證書已經被吊銷,則會顯示警告信息: 「此組織的證書已被吊銷。安全證書問題可能顯示試圖欺騙您或截獲您向伺服器發送的數據。建議關閉此網頁,並且不要繼續瀏覽該網站。 」
5.2、信任鏈
CA組織結構是一個樹結構,一個root CA下面有多個mid CA,而mid CA又可以包含多個mid CA。
root CA和mid CA都可以頒發證書給用戶,頒發的分別是root證書和中間證書,最終用戶用來認證公鑰的證書被稱為end-user證書。
如果end-user證書是mid CA頒發的,那麼握手階段,需要把中間證書也一並發給客戶端。
證書鏈驗證過程:
六、秘鑰協商過程
在TLS握手階段確定了雙方使用的密碼學套件。
(秘鑰協商、證書驗證、數據加密是三個獨立的過程)
舉例:
TLS_ DHE_RSA _WITH_ AES_256_CBC_SHA
DHE_RSA :表示握手過程中使用的非對稱加密演算法(秘鑰交換用的是DHE, 證書用的RSA),如果WITH只有一個,那麼表示交換信息和證書用的是同一個演算法
(可選的主要的密鑰交換演算法包括:RSA, DH, ECDH, ECDHE。可選的主要的證書演算法包括:RSA, DSA, ECDSA。兩者可以獨立選擇,並不沖突)
AES_256_CBC_SHA :表示加密信道的對稱加密演算法和hash演算法
七、秘鑰交換演算法
雙方在握手過程中,通過秘鑰交換演算法,確定後續通信的秘鑰
常用的秘鑰交換演算法:RSA、DH類秘鑰交換演算法
7.1、RSA秘鑰交換過程:
A->B
B:把公鑰放在證書中
A:使用隨機數演算法,生成一個秘鑰key,用公鑰加密,發送給B。
RSA面臨的問題:一旦私鑰外泄(私鑰參與了協商過程),那麼key就能解密之前監聽的所有的密文(向前不安全),安全性取決於私鑰是否保存完好。
7.2、更安全的DH類秘鑰交換演算法
DH類秘鑰演算法有:DH, DHE, ECDH, ECDHE
DH(靜態DH演算法,秘鑰交換始終選擇相同的私鑰,因此,每次的共享私鑰都相同)
DHE(臨時DH演算法,每個連接生成一個臨時的DH秘鑰,因此同一秘鑰永遠不會被使用兩次。向前保密)
7.3、DHE秘鑰交換演算法(基於離散對數難題)簡單說明:
A->B
A:生成一個隨機數X(作為自己的私鑰),a= g^x mod p (g的x次方對p取模),p 是個大素數,g是生成數,將a發送給B
B:生成一個隨機數Y(作為自己的私鑰),b= g^y mod p,將b發送給A。
A: 計算 key1 = b^x mod p
B:計算 key2 = a^y mod p
根據數學邏輯,key1=key2,所以秘鑰交換成功
DHE安全性體現在:傳輸的只是a、b、p、g,中間沒有傳輸私鑰x和y,在已知這四個數很難得出x和y(依賴於離散),保證了安全。
DH秘鑰計算舉例:
假設 g =10, p = 7,x = 3, a = 6,y = 11 , b = 5
key1 = ((g^x)mod p)^y mod p = ((10^3)mod 7)^11 mod 7 =6
key2 = ((g^y)mod p)^x mod p = ((10^11)mod 7)^3 mod 7 =6
7.4、基於ECDHE的秘鑰交換演算法(基於橢圓離散對數難題)
ECDHE的運算是把DHE中模冪運算替換成了點乘運算,速度更快,可逆更難
A->B
A:生成一個隨機數Ra,計算Pa(x,y) = Ra * Q(x, y),Q(x, y)為全世界公認的某個橢圓曲線演算法的基點。將Pa(x, y)發送至伺服器。
B:生成隨機值Rb,計算Pb(x,y)= Rb * Q(x, y)。將Pb(x, y)發送至客戶端。
A:計算Sa(x,y) = Ra * Pb(x, y)
B:計算Sb(x,y) = Rb * Pa(x, y)
演算法保證了Sa =Sb = S,提取其中的S的x向量作為密鑰(預主密鑰)
3. IOS系統 H5 Https請求後端很慢
如果最近發現iOS APP打開h5非常慢,達到告兄5秒以上,而安卓是正常,如果剛好你又是使用了Let's Encrypt 的免費SSL服務,恭喜你,你可能是一位運營商干擾的受害者。
正常的域名dig信息
錯誤的dig信息
SSL服務,如果新版系統的ios web瀏覽器來瀏覽,會在加密通信的某個階段,對CA證書的有效性進行驗證,如果驗證不了,一般也會允許訪問,但會提示錯誤,這個驗證,如果域名訪問不了,你造成了等待超時才返回,這就是慢的原因。而非webview或安卓webview訪問,因為沒有實現ocsp驗證的流程,故訪問速度是正常的,沒有區別。
因為Let's Encrypt的OCSP驗證階段,需要使用域名ocsp.int-x3.letsencrypt.org(x後面的數字可能是1-4中之一)進行驗證,而這個域名對應的伺服器是託管在 a771.dscq.akamai.net ,不知何故,最近牆把它攔截了,就導致襪虧襲所以h5的訪問卡在這了,當然,如果你不用ssl是沒有問題的。
1、不用ssl
2、等牆解封
3、在webserer配置 OCSP Stapling功能
如果你採用第3個方法,這里詳細解釋一下。
ocsp stapling是什麼,簡單的講,就是將原來由各個用戶去發起驗證證書有效性的請求,由webserver代勞了,這樣就不用每個用戶都去連CA的驗證伺服器了,相對來說訪問速度就會加快不了。如果你使用的是nginx,可以這樣配置開啟ocsp stapling:
*將配置里的your.domain.com替換成你自己的域名。
修改完配置重啟webserver。
還有為了避免域名污染,導致解析失敗,還需要修改/etc/resolve.conf(假設是CentOS),添加以下記錄:
等等,即使由伺服器代勞,你伺服器不也一樣訪問不了CA的驗證伺服器,如上述 a771.dscq.akamai.net 域名,你抓到關鍵點了,確實也訪問不了,空攔你如果通過網上的教程去配置,也會發現ocsp response請求會失敗,錯誤提示如:
並且在webserver的error.log里有會有以下信息
嗯,驗證仍然有問題的,但是經過測試,實際訪問速度是正常的。第一次請求可能會慢,因為前幾次請求,伺服器會去請求驗證,後面請求就會快了,即使沒驗證成功,它也會緩存這個結果。
4. oscp 是什麼證書
在線證書狀態協議(OCSP,Online Certificate Status Protocol)是維護伺服器和其它網路資源安全性的兩種普遍模式之一。
在線證書狀態協議(OCSP,Online Certificate Status Protocol)是維護伺服器和其它網路資源安全性的兩種普遍模式之一。另一種更老的方法是證書注銷列表(CRL)已經被在線證書狀態協議取代了很多年了。
(4)ocsp伺服器搭建擴展閱讀
在線證書狀態協議(ocsp)克服了證書撤銷列表(crl)的主旦橘要缺點:必須在客戶端頻繁下載以確保吵羨列表更新。當用戶嘗試訪問伺服器時,聯機證書狀態協議發送證書狀態信息請求。
伺服器以「有效」、「過期」或「未知」響應響應。協議指定模碰團伺服器和客戶端應用程序之間的通信語法。在線證書狀態協議為用戶提供了過期證書的寬限期,以便他們可以在更新之前繼續訪問伺服器一段時間。
5. 什麼是SSL證書SSL證書哪個廠商的最好
SSL證書是數字證書(數字證書包括:SSL證書、客戶端證書、代碼簽名證書等)的一種,因為配置在伺服器上也稱為伺服器SSL證書。SSL證書就是遵守SSL協議,由受信任的數字證書頒發機構CA(如:沃通CA)在驗證伺服器身份後頒發的一種數字證書。
價格最便宜的SSL證書—睜旅耐—Positive SSL證書
Positive SSL證書是原Comodo旗下一款入門級域名型證書,現在屬於Sectigo旗下品牌,信任度高,互聯網上大量的網站都在使用該SSL證書,兼容99.9%以上的主瀏覽器。簽發速度也很快,最快能在30分鍾就能簽發,價格低至百元,性價比極高,適合個人網站和小型企業。
方案靈活且帶有本地化OCSP的SSL證書——DigiCert SSL證書
DigiCert是美國老牌CA ,具有中國本地化的OCSP,響應速度比國際版一般的CA快很多倍。而且DigiCert OCSP和CRL在中國對應的域名有ICP備案,不會被中國地區的網路攔截,比其他證書的穩定性要高。
除此以外,購買DigiCert SSL證書的用戶們可以指定有效期,三個月、六個月都可以悉春。購買後網站可以中途更名,如果因私鑰丟失重新簽發DigiCert SSL證書時可以免費等,靈活度較強。
純國產SSL證書——Wotrus國密ssl證書
Wotrus國密SSL證書是國密合規的國產SSL證書,支持SM2/SM3/SM4國產密碼演算法和國密SSL安全協議,採用自主可控的密碼技術實現通信傳輸加密,保護傳輸數據的機密性和完整性、驗證伺服器身份真實性,滿足政務、金融、教育等重要領域網站的國密改造、國密合規、等保合規等應用需求。
驗證企業真實性方面靈活性最強的SSL證書——GlobalSign SSL證書
如果您的企業郵箱和電話號碼都不方便提供或是因其他原因丟失了,在申請SSL證書鎮陵驗證企業真實性上出了問題,可以申請GlobalSign SSL證書,因為GlobalSign還可以通過郵寄掛號信來驗證。
6. 安全連接失敗連接 addons.mozilla.org 時發生錯誤。
國外有些網址國內的DNS伺服器解析不出來,可以手動更改DNS伺服器為谷歌的DNS伺服器地址為8.8.8.8,更改後瀏覽器重啟就可以下載了,下載完成後把DNS還設置為自動獲取,畢竟訪問國內網站較多,國內DNS解析速度更快些。前段時間我重新安裝火狐瀏覽器也遇到了無法下載插件的問題,修改了dns後就可以了。
7. ocps是什麼意思醫學
ocps是什麼意思醫學:ocsp伺服器 ocsp在陸渣姿醫學中是早絕什麼意思 toast分型梁和標准 toast分型全稱 急性腦血管病的分類 急性腦血管分類
8. SSL工作原理是什麼
TLS/SSL的功能實現主要依賴於三類基本演算法:散列函數 Hash、對稱加密和非對稱燃碰加密,其利用非對稱加密實現身份認證和密鑰協商,對稱加密演算法採用協商的密鑰對數據加密,基於散列函數驗證信息的完整性。
9. http ocsp 是干什麼用的
OCSP(Online Certificate Status Protocol,在線證書狀態協議)是維護伺服器和其它網路資源安全性的兩種普遍模式之一。OCSP克服了證書注銷列表(CRL)的主要缺陷:必須經常在客戶端下載以確保列表的更新。當用戶試圖訪問一個伺服器時,在線證書狀態協議發送一個對於證書狀態信息的請求。伺服器回復一個「有效」、「過期」或「未知」的響應。協議規定了伺服器和客戶端應用程序的通訊語法。在線證書狀態協議給了用戶的到期的證書一個寬限期,這樣他們就可以在更新以前的一段時間內繼續訪問伺服器。
10. ocsp.apple.com為什麼屏蔽不成功
ocsp.apple.com屏蔽不成功原因:而是對方把你拉黑了你就發送不成功。如果說屏蔽的話應該可以解釋為你發了他接受不到。
在瀏覽器端,OCSP裝訂在開始實施的Firefox26,在Internet Explorer中,因為Windows Vista中,和谷歌Chrome在Linux中,Chrome操作系統和Windows Vista的以來。
部署:
OCSP裝訂支持正在逐步實施。該OpenSSL的項目列入其0.9.8g發布從贈款的援助支持Mozilla基金會。
Apache HTTP伺服器支持OCSP裝訂自2.3.3版本,的nginx的,因為1.3.7版本的Web伺服器,的Litespeed Web伺服器自版本4.2.4,微軟的IIS,因為Windows Server 2008中,HAProxy從版本1.5.0開始。