最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用openssl 生成免費證書的方法步驟

 更新時間:2019年05月31日 10:16:37   作者:涂根華  
這篇文章主要介紹了使用openssl 生成免費證書的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

一:什么是openssl? 它的作用是?應(yīng)用場景是什么?

即百度百科說:openssl是一個開放源代碼的軟件庫包,應(yīng)用程序可以使用這個包來進(jìn)行安全通信,它可以避免信息被竊聽到。

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

因為在網(wǎng)絡(luò)傳輸?shù)倪^程中,網(wǎng)絡(luò)的數(shù)據(jù)肯定要經(jīng)過wifi路由器對吧,那么我們通過路由器做些手腳我們就可以拿到數(shù)據(jù),因此openssl的作用就是避免信息被竊聽到。

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

1.1 什么是非對稱加密?

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

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

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

1.2 什么是數(shù)字簽名?

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

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

1.3 什么是數(shù)字證書?

根據(jù)百度百科說:數(shù)字證書是互聯(lián)網(wǎng)通訊中標(biāo)志通訊各方身份信息一串?dāng)?shù)字。提供了一種在Internet上驗證通信實體身份的方式。
它是由CA頒發(fā)給網(wǎng)站的一種身份的方式。它里面包含了該網(wǎng)站的公鑰、有效時間、網(wǎng)站的地址、及 CA的數(shù)字簽名等。

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

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

SSL 實現(xiàn)認(rèn)證用戶和服務(wù)器

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

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

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

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

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

openssl的應(yīng)用場景:

在使用http網(wǎng)站中,我們經(jīng)??吹骄W(wǎng)站會有一些廣告什么的,這些廣告其實不是網(wǎng)站自己放上去的,而是中間的運營商在中間篡改了內(nèi)容導(dǎo)致的?,F(xiàn)在我們可以使用https技術(shù)(基于openssl)來對數(shù)據(jù)進(jìn)行加密的。它能保證數(shù)據(jù)不被篡改。

二:使用openssl生成免費證書

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

使用命令:

openssl genrsa -des3 -out server.key 2048

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

如下所示:

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

openssl rsa -text -in server.key

如下圖所示:

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

2. 創(chuàng)建證書簽名請求CSR文件

使用命令如下:

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

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

如下所示:

運行如上命令后,生成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          // 輸入組織機構(gòu)(或公司名,我這里隨便寫個tbj)
Organizational Unit Name (eg, section) []:tbj       // 輸入機構(gòu)部門
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              // 你的證書密碼,如果不想設(shè)置密碼,可以直接回車

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

server.key server.csr

如下圖所示:

查看csr文件如下命令:

openssl req -text -in server.csr -noout

如下圖所示:

3. 生成CA證書

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

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

如下圖所示:

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

4. 生成客戶端證書

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

4.1. 先要生成私鑰

使用命令:

openssl genrsa -out client.key 2048

如下圖所示:

4.2 生成請求文件

使用命令:

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

如下圖所示:

4.3 發(fā)給ca簽名

使用命令:

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

如下圖所示:

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • htaccess 將所有請求重定向到某個URL地址的規(guī)則

    htaccess 將所有請求重定向到某個URL地址的規(guī)則

    htaccess 將所有請求重定向到某個URL地址的規(guī)則,需要的朋友可以參考下。
    2011-04-04
  • 詳解linux根目錄空間不足解決方案

    詳解linux根目錄空間不足解決方案

    本篇文章主要介紹了詳解linux根目錄空間不足解決方案,具有一定的參考價值,有興趣的可以了解一下。
    2017-04-04
  • Ubuntu 17.04系統(tǒng)下源碼編譯安裝opencv的步驟詳解

    Ubuntu 17.04系統(tǒng)下源碼編譯安裝opencv的步驟詳解

    這篇文章主要給大家介紹了在Ubuntu 17.04系統(tǒng)下源碼編譯安裝opencv的相關(guān)資料,文中將一步步的步驟介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面跟著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-08-08
  • 解決atd服務(wù)報錯Failed with result‘exit-code‘問題

    解決atd服務(wù)報錯Failed with result‘exit-code‘問題

    在isoftserveros-v5.1-oe1-aarch64系統(tǒng)中,安裝at軟件包后,由于手動執(zhí)行導(dǎo)致atd守護(hù)進(jìn)程出錯,通過查看后臺Process行,手動kill原atd進(jìn)程,使用systemctl重啟atd服務(wù)后,問題得以解決,此經(jīng)驗可為類似情況提供參考
    2024-09-09
  • 詳解linux下redis安裝、啟動與停止,redis做成服務(wù)

    詳解linux下redis安裝、啟動與停止,redis做成服務(wù)

    這篇文章主要介紹了詳解linux下redis安裝、啟動與停止,redis做成服務(wù),具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2016-12-12
  • CentOS 7更新時出現(xiàn):Multilib version problems問題的解決方法

    CentOS 7更新時出現(xiàn):Multilib version problems問題的解決方法

    這篇文章主要給大家介紹了關(guān)于CentOS 7系統(tǒng)更新時出現(xiàn):Multilib version problems問題的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。
    2017-11-11
  • Linux 系統(tǒng)優(yōu)化的一些建議(內(nèi)核優(yōu)化)

    Linux 系統(tǒng)優(yōu)化的一些建議(內(nèi)核優(yōu)化)

    這篇文章主要介紹了Linux 系統(tǒng)優(yōu)化的一些建議,幫助大家更好的使用Linux,感興趣的朋友可以了解下
    2020-08-08
  • 關(guān)于如何在崩潰或重啟后保持Linux進(jìn)程運行的解決方法

    關(guān)于如何在崩潰或重啟后保持Linux進(jìn)程運行的解決方法

    在計算機系統(tǒng)中,進(jìn)程的穩(wěn)定性和持久性對于確保系統(tǒng)正常運行至關(guān)重要,在 Linux 系統(tǒng)中,由于各種原因,進(jìn)程可能會面臨崩潰或系統(tǒng)重啟的情況,為了確保關(guān)鍵進(jìn)程的持續(xù)運行,我們需要采取一些措施來處理這種情況,文中給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • Linux實現(xiàn)雙網(wǎng)卡綁定的代碼詳解

    Linux實現(xiàn)雙網(wǎng)卡綁定的代碼詳解

    linux 主機安裝雙網(wǎng)卡,共享一個IP地址,對外提供訪問,實際同樣連接兩條物理線路到交換機實現(xiàn)平時雙網(wǎng)卡同時工作,分流網(wǎng)絡(luò)壓力,同時提供冗余備份,監(jiān)控,防止物理線路的單點故障,本文介紹了Linux實現(xiàn)雙網(wǎng)卡綁定的代碼示例,需要的朋友可以參考下
    2024-07-07
  • 如何使用iostat查看linux硬盤IO性能

    如何使用iostat查看linux硬盤IO性能

    這篇文章主要介紹了如何使用iostat查看linux硬盤IO性能,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-05-05

最新評論

奎屯市| 金门县| 信阳市| 伊金霍洛旗| 渭南市| 白河县| 固始县| 大连市| 新巴尔虎右旗| 万源市| 宜君县| 望都县| 行唐县| 铜鼓县| 莆田市| 固镇县| 晋江市| 禄劝| 灵武市| 会宁县| 拜城县| 巧家县| 株洲市| 泗阳县| 玉溪市| 竹山县| 呼玛县| 宁陕县| 旌德县| 云林县| 忻城县| 根河市| 珠海市| 灵台县| 阿拉善盟| 陕西省| 塘沽区| 邵东县| 城市| 舒城县| 台东县|