91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用openssl怎么生成一個免費證書

發布時間:2021-03-24 17:38:03 來源:億速云 閱讀:233 作者:Leah 欄目:服務器

這篇文章將為大家詳細講解有關使用openssl怎么生成一個免費證書,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

一:什么是openssl? 它的作用是?應用場景是什么?

openssl是一個開放源代碼的軟件庫包,應用程序可以使用這個包來進行安全通信,它可以避免信息被竊聽到。

SSL是Secure Sockets Layer(安全套接層協議)的縮寫,可以在Internet上提供秘密性傳輸。Netscape(網景)公司在推出第一個Web瀏覽器的同時,提出了SSL協議標準。其目標是保證兩個應用間通信的保密性和可靠性,可在服務器端和用戶端同時實現支持。

因為在網絡傳輸的過程中,網絡的數據肯定要經過wifi路由器對吧,那么我們通過路由器做些手腳我們就可以拿到數據,因此openssl的作用就是避免信息被竊聽到。

那么openssl是如何保證信息不被竊聽到呢?因此我們需要了解 非對稱加密、數字簽名、數字證書等一些基本概念的。

1.1 什么是非對稱加密?

非對稱加密是用密鑰對數據進行加密,然后我們可以使用另一個不同的密鑰對數據進行解密。這兩個密鑰就是公鑰和私鑰。

我們根據私鑰可以計算出公鑰,但是我們根據公鑰計算不出來私鑰的。私鑰一般是有服務器掌握的,公鑰則是在客戶端使用的。

注意:非對稱加密的具體算法我們這邊不做研究。

1.2 什么是數字簽名?

根據百度百科說:數字簽名(又可以叫公鑰數字簽名)是一種類似寫在紙上的普通的物理簽名,但是使用了公鑰加密領域的技術實現,它是用于鑒別數字信息的方法。數字簽名有兩種互補的運算,一個是用于簽名,另一個是用于驗證。

作用是:它會將報文使用一定的HASH算法算出一個固定位數的摘要信息,然后使用私鑰將摘要加密,然后會將剛才的報文一起發送給接收者,接收者會通過公鑰將摘要解出來。也通過hash算法算出報文摘要,如果兩個摘要一致,說明數據未被篡改,說明數據是完整的。

1.3 什么是數字證書?

根據百度百科說:數字證書是互聯網通訊中標志通訊各方身份信息一串數字。提供了一種在Internet上驗證通信實體身份的方式。
它是由CA頒發給網站的一種身份的方式。它里面包含了該網站的公鑰、有效時間、網站的地址、及 CA的數字簽名等。

作用是:它是使用CA的私鑰將網站的公鑰等信息進行了簽名,當客戶端請求服務器端的時候,網站會把證書發給客戶端,客戶端先通過CA的數字簽名校驗CA的身份,來證明證書的真實完整性。

了解到上面的非對稱加密、數字簽名、數字證書的概念之后,我們來看看它是如何來保證數據沒有被偽造的:

SSL 實現認證用戶和服務器

現在我們來想一個問題,如果我們現在訪問我們的博客園網站,我們怎么知道訪問的是真博客園還是假博客園呢?為了確定我們的博客園網站的服務器有沒有被偽造,在SSL中有這么一個規則:假如我們向服務器發出請求后,服務器必須返回它的數字證書給接收者,當我們拿到數字證書之后,我們可以根據里面的ca數字簽名,來檢驗數字證書的合法性。假如我們現在能夠證明數字證書是博客園的,但是不代表發送給我們證書的服務器就是博客園的呢?為了解決這個問題,其實在我們拿到的證書里面會帶有博客園的公鑰,在之后的通信中,客戶端會使用該公鑰加密數據給博客園服務器,博客園服務器必須使用私鑰才能夠解出里面的數據。只要他能夠解出數據出來,說明他是合法的,否則的話,是偽造的。如果是偽造的,那么就不能通訊。因此SSL就解決了服務器認證的問題了。

加密數據在通訊過程中如何防止數據不被竊取呢?

客戶端第一次給服務器發送請求的時候(拿到證書之前的那個請求),會在請求里面放一個隨機數(比如叫A),服務器的返回證書的響應里也會帶一個隨機數(比如叫B), 客戶端拿到證書后,會使用公鑰加密一個隨機數(比如叫C)發送給服務器,因此客戶端,服務器就有三個隨機數:A、B、C。雙方使用這些隨機數和一個相同的算法會生成一個密鑰,以后所有的通信都使用這個對稱密鑰來進行的。

一般情況下,這三個密鑰不可能同時被泄露的,因為它是由三個隨機數隨機生成的。并且其中一個隨機數使用了公鑰加密的。因此是通過這種方式來保證數據不被竊取的。

上面都是在網上看到的一些概念性問題,簡單的理解下就好了,知道是這么個概念就行了,而我們的openssl是SSL的實現版。因此openssl的作用避免信息被竊取到,它是通過上面的知識點來做到的。

openssl的應用場景:

在使用http網站中,我們經常看到網站會有一些廣告什么的,這些廣告其實不是網站自己放上去的,而是中間的運營商在中間篡改了內容導致的。現在我們可以使用https技術(基于openssl)來對數據進行加密的。它能保證數據不被篡改。

二:使用openssl生成免費證書

1 使用openssl工具生成一個RSA私鑰

使用命令:

openssl genrsa -des3 -out server.key 2048

如上:des3 是算法,2048位強度(為了保密性)。 server.key 是密鑰文件名 -out的含義是:指生成文件的路徑和名稱。

如下所示:

使用openssl怎么生成一個免費證書

我們查看剛剛生成的私鑰。使用命令如下:

openssl rsa -text -in server.key

如下圖所示:

使用openssl怎么生成一個免費證書

繼續查看 server.key 使用命令:cat server.key, 如下圖所示:

使用openssl怎么生成一個免費證書

2. 創建證書簽名請求CSR文件

使用命令如下:

openssl req -new -key server.key -out server.csr

-key的含義是:指定ca私鑰
-out的含義是: server.csr 生成證書文件

如下所示:

使用openssl怎么生成一個免費證書

運行如上命令后,生成CSR時會要求填入以下信息:

Country Name (2 letter code) []:CN            // 輸入國家代碼,中國填寫 CN
State or Province Name (full name) []:HangZhou      // 輸入省份,這里填寫 HangZhou
Locality Name (eg, city) []:HangZhou           // 輸入城市,我們這里也填寫 HangZhou
Organization Name (eg, company) []:tbj          // 輸入組織機構(或公司名,我這里隨便寫個tbj)
Organizational Unit Name (eg, section) []:tbj       // 輸入機構部門
Common Name (eg, fully qualified host name) []:*.abc.com // 輸入域名,我這邊是 (*.abc.com) 
Email Address []:tugenhua0707@qq.com           // 你的郵箱地址

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:123456              // 你的證書密碼,如果不想設置密碼,可以直接回車

如上操作后,會在當前目錄下生成以下兩個文件:

server.key server.csr

如下圖所示:

使用openssl怎么生成一個免費證書

查看csr文件如下命令:

openssl req -text -in server.csr -noout

如下圖所示:

使用openssl怎么生成一個免費證書

3. 生成CA證書

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

x509的含義: 指定格式
-in的含義: 指定請求文件
-signkey的含義: 自簽名

如下圖所示:

使用openssl怎么生成一個免費證書

注意:如上server.crt 是證書持有人的信息,持有人的公鑰,以及簽署者的簽名等信息。

4. 生成客戶端證書

生成客戶端證書與生成CA證書相似。

4.1. 先要生成私鑰

使用命令:

openssl genrsa -out client.key 2048

如下圖所示:

使用openssl怎么生成一個免費證書

4.2 生成請求文件

使用命令:

openssl req -new -key client.key -out client.csr

如下圖所示:

使用openssl怎么生成一個免費證書

4.3 發給ca簽名

使用命令:

openssl x509 -req -days 365 -in client.csr -signkey client.key -out client.crt

如下圖所示:

使用openssl怎么生成一個免費證書

關于使用openssl怎么生成一個免費證書就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

噶尔县| 阿拉善左旗| 仪陇县| 武川县| 济阳县| 郁南县| 库伦旗| 苗栗县| 伊川县| 南部县| 扶余县| 乌拉特前旗| 澄江县| 高尔夫| 五大连池市| 酒泉市| 呼图壁县| 利川市| 曲松县| 榆树市| 通山县| 饶平县| 信宜市| 茂名市| 济阳县| 灌云县| 库伦旗| 介休市| 柯坪县| 乐昌市| 寿宁县| 客服| 大方县| 肇东市| 顺义区| 万源市| 柘荣县| 莫力| 遂川县| 鲁甸县| 怀安县|