Https基礎以及如何配置Https

2021-06-28 13:51:39 字數 2993 閱讀 4177

一、什麼是 ssl 證書,什麼是 https

ssl 證書是一種數字證書,它使用 secure socket layer 協議在瀏覽器和 web 伺服器之間建立一條安全通道,從而實現:

1、資料資訊在客戶端和伺服器之間的加密傳輸,保證雙方傳遞資訊的安全性,不可被第三方竊聽;

2、使用者可以通過伺服器證書驗證他所訪問的**是否真實可靠。

https 是以安全為目標的 http 通道,即 http 下加入 ssl 加密層。https 不同於 http 的埠,http預設埠為80,https預設埠為443。

二、什麼**需要使用ssl證書

1、購物交易類**

不用多說,網上銀行、支付寶、paypal等肯定會全程加密以保護你的資訊保安。

2、註冊與登陸

一些大的**,比如電子郵箱,註冊會員或者登陸的時候,會專門通過ssl通道,保證密碼安全不被竊取。

4、裝b

比如我……

三、自行頒發不受瀏覽器信任的ssl證書

為曬曬iq網頒發證書。ssh登陸到伺服器上,終端輸入以下命令,使用openssl生成rsa金鑰及證書。

# 生成乙個rsa金鑰 

$ openssl genrsa -des3

-out 33iq.key 1024

# 拷貝乙個不需要輸入密碼的金鑰檔案

$ openssl rsa -in 33iq.key -out 33iq_nopass.key

# 生成乙個證書請求

$ openssl req -new

-key 33iq.key -out 33iq.csr

# 自己簽發證書

$ openssl x509 -req

-days

365-in 33iq.csr -signkey 33iq.key -out 33iq.crt

第3個命令是生成證書請求,會提示輸入省份、城市、網域名稱資訊等,重要的是,email一定要是你的網域名稱字尾的。這樣就有乙個 csr 檔案了,提交給 ssl 提供商的時候就是這個 csr 檔案。當然我這裡並沒有向證書提供商申請,而是在第4步自己簽發了證書。

編輯配置檔案nginx.conf,給站點加上https協議

server
重啟nginx後即可通過https訪問**了。

自行頒發的ssl證書能夠實現加密傳輸功能,但瀏覽器並不信任,會出現警告資訊,比如「此**不受信任」等。

四、受瀏覽器信任的證書

要獲取受瀏覽器信任的證書,則需要到證書提供商處申請。證書授證中心,又叫做ca機構,為每個使用公開金鑰的使用者發放乙個數字證書。瀏覽器在預設情況下內建了一些ca機構的證書,使得這些機構頒發的證書受到信任。verisign即是乙個著名的國外ca機構,工行、建行、招行、支付寶、財付通等**均使用verisign的證書,而網易郵箱等非金融**採用的是中國網際網路資訊中心 cnnic頒發的ssl證書。一般來說,乙個證書的**不菲,以verisign的證書為例,**在每年8000元人民幣左右。

據說也有免費的證書可以申請。和verisign一樣,startssl也 是一家ca機構,它的根證書很久之前就被一些具有開源背景的瀏覽器支援(firefox瀏覽器、谷歌chrome瀏覽器、蘋果safari瀏覽器等)。後 來startssl竟然搞定了微軟:在公升級補丁中,微軟更新了通過windows根證書認證(windows root certificate program)的廠商清單,並首次將startcom公司列入了該認證清單。現在,在windows 7或安裝了公升級補丁的windows vista或windows xp作業系統中,系統會完全信任由startcom這類免費數字認證機構認證的數字證書,從而使startssl也得到了ie瀏覽器的支援。(**及申請步驟)

五、只針對註冊、登陸進行https加密處理

既然https能保證安全,為什麼全世界大部分**都仍舊在使用http呢?使用https協議,對伺服器來說是很大的負載開銷。從效能上考慮,我 們無法做到對於每個使用者的每個訪問請求都進行安全加密(當然,google這種大神除外)。作為乙個普通**,我們所追求的只是在進行交易、密碼登陸等操 作時的安全。通過配置nginx伺服器,可以使用rewrite來做到這一點。

在https server下加入如下配置:

if($uri

!~*"/logging.php$"

)

在http server下加入如下配置:

if($uri ~*"/logging.php$"

)

這樣一來,使用者會且只會在訪問logging.php的情況下,才會通過https訪問。

更新:有一些開發框架會根據 $_server['https'] 這個 php 變數是否為 on 來判斷當前的訪問請求是否是使用 https。為此我們需要在 nginx 配置檔案中新增一句來設定這個變數。遇到 https 鏈結重定向後會自動跳到 http 問題的同學可以參考一下。

server

}server }

nginx下只針對logging.php進行https處理的重寫規則 

全球可信並且唯一免費的https(ssl)證書頒發機構:startssl  

推薦閱讀:

基於openssl實現c/s架構中的https會話 

rhel6.3下配置簡單apache https  

nginx搭建https伺服器 

linux實現https方式訪問站點 

nginx 的詳細介紹:請點這裡

:請點這裡

https單向認證及tomcat配置https方法

在tomcat的bin目錄或jdk的bin目錄下面執行 第一步 為伺服器生成證書 keytool genkey v alias tomcat keyalg rsa validity 3650 keystore e tomcat.keystore dname cn localhost,ou cn,o ...

什麼是HTTPS以及如何實施HTTPS?

我在 讓我們擁抱2021年seo新趨勢吧 文章中的第6點講述了seo優化的重要性,今天就來聊聊什麼是https以及如何實施https,讓您有更深層次的認識,以及掌握實施的重點。超文字傳輸 安全協議 英語 hypertext transfer protocol secure,縮寫 https 常稱為h...

https 以及內網如何使用

https 區別於 http,它多了加密 encryption 認證 verification 鑑定 identification 它的安全源自非對稱加密以及第三方的 ca 認證。https 運作流程的加密 1.客戶端生成乙個隨機數 random client,傳到伺服器端 say hello 2....