亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

使用openssl 生成免費(fèi)證書(shū)的方法步驟

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

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

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

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

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

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

1.1 什么是非對(duì)稱(chēng)加密?

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

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

注意:非對(duì)稱(chēng)加密的具體算法我們這邊不做研究。

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

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

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

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

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

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

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

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

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

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

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

一般情況下,這三個(gè)密鑰不可能同時(shí)被泄露的,因?yàn)樗怯扇齻€(gè)隨機(jī)數(shù)隨機(jī)生成的。并且其中一個(gè)隨機(jī)數(shù)使用了公鑰加密的。因此是通過(guò)這種方式來(lái)保證數(shù)據(jù)不被竊取的。

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

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

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

二:使用openssl生成免費(fèi)證書(shū)

1 使用openssl工具生成一個(gè)RSA私鑰

使用命令:

openssl genrsa -des3 -out server.key 2048

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

如下所示:

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

openssl rsa -text -in server.key

如下圖所示:

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

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

使用命令如下:

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

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

如下所示:

運(yùn)行如上命令后,生成CSR時(shí)會(huì)要求填入以下信息:

Country Name (2 letter code) []:CN            // 輸入國(guó)家代碼,中國(guó)填寫(xiě) CN
State or Province Name (full name) []:HangZhou      // 輸入省份,這里填寫(xiě) HangZhou
Locality Name (eg, city) []:HangZhou           // 輸入城市,我們這里也填寫(xiě) HangZhou
Organization Name (eg, company) []:tbj          // 輸入組織機(jī)構(gòu)(或公司名,我這里隨便寫(xiě)個(gè)tbj)
Organizational Unit Name (eg, section) []:tbj       // 輸入機(jī)構(gòu)部門(mén)
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ū)密碼,如果不想設(shè)置密碼,可以直接回車(chē)

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

server.key server.csr

如下圖所示:

查看csr文件如下命令:

openssl req -text -in server.csr -noout

如下圖所示:

3. 生成CA證書(shū)

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

x509的含義: 指定格式
-in的含義: 指定請(qǐng)求文件
-signkey的含義: 自簽名

如下圖所示:

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

4. 生成客戶(hù)端證書(shū)

生成客戶(hù)端證書(shū)與生成CA證書(shū)相似。

4.1. 先要生成私鑰

使用命令:

openssl genrsa -out client.key 2048

如下圖所示:

4.2 生成請(qǐng)求文件

使用命令:

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

如下圖所示:

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

相關(guān)文章

  • linux如何關(guān)閉numa

    linux如何關(guān)閉numa

    這篇文章主要介紹了linux如何關(guān)閉numa問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Linux Centos7 磁盤(pán)的分區(qū)、掛載方式

    Linux Centos7 磁盤(pán)的分區(qū)、掛載方式

    這篇文章主要介紹了Linux Centos7 磁盤(pán)的分區(qū)、掛載方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Linux 6下安裝編譯安裝Nginx的步驟

    Linux 6下安裝編譯安裝Nginx的步驟

    這篇文章主要介紹了Linux 6下安裝編譯安裝Nginx的步驟的相關(guān)資料,希望通過(guò)本文能幫助到大家,需要的朋友可以參考下
    2017-10-10
  • 使用Xshell建立連接并操縱服務(wù)器的方法

    使用Xshell建立連接并操縱服務(wù)器的方法

    Xshell對(duì)于開(kāi)發(fā)人員來(lái)說(shuō)是一款不可或缺的工具,它可以簡(jiǎn)單快捷地訪(fǎng)問(wèn)遠(yuǎn)端不同系統(tǒng)的服務(wù)器,以達(dá)到遠(yuǎn)程控制終端的目的,本文小編就為大家演示如何使用Xshell建立一個(gè)連接并操縱服務(wù)器,需要的朋友可以參考下
    2022-10-10
  • linux服務(wù)中開(kāi)啟防火墻的兩種方式

    linux服務(wù)中開(kāi)啟防火墻的兩種方式

    這篇文章主要介紹了linux服務(wù)中開(kāi)啟防火墻的兩種方式,給大家補(bǔ)充介紹了linux防火墻基本知識(shí),需要的朋友可以參考下
    2018-12-12
  • apache配置開(kāi)啟網(wǎng)站服務(wù)步驟

    apache配置開(kāi)啟網(wǎng)站服務(wù)步驟

    apache配置開(kāi)啟網(wǎng)站服務(wù)步驟,需要的朋友可以參考下。
    2010-06-06
  • Linux下安裝Python3和django并配置mysql作為django默認(rèn)服務(wù)器方法

    Linux下安裝Python3和django并配置mysql作為django默認(rèn)服務(wù)器方法

    下面小編就為大家?guī)?lái)一篇Linux下安裝Python3和django并配置mysql作為django默認(rèn)服務(wù)器方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-10-10
  • 解決“WARNINGThe?remote?SSH?server?rejected?X11?forwarding?request.“警告(推薦)

    解決“WARNINGThe?remote?SSH?server?rejected?X11?forwardin

    使用xshell連接服務(wù)器時(shí),出現(xiàn)了“WARNING!?The?remote?SSH?server?rejected?X11?forwarding?request.”,意思是“遠(yuǎn)程SSH服務(wù)器拒絕X11轉(zhuǎn)發(fā)請(qǐng)求”,這篇文章主要介紹了解決“WARNINGThe?remote?SSH?server?rejected?X11?forwarding?request.“警告,需要的朋友可以參考下
    2022-08-08
  • 開(kāi)發(fā)環(huán)境Ubuntu16安裝以后的初始化設(shè)置

    開(kāi)發(fā)環(huán)境Ubuntu16安裝以后的初始化設(shè)置

    今天小編就為大家分享一篇關(guān)于開(kāi)發(fā)環(huán)境ubuntu16安裝以后的初始化設(shè)置,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-10-10
  • socket unix domain IPC的實(shí)例代碼

    socket unix domain IPC的實(shí)例代碼

    下面小編就為大家?guī)?lái)一篇socket unix domain IPC的實(shí)例代碼。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-12-12

最新評(píng)論