Nodejs 搭建https服務器(一)

1.搭建https服務器---前奏

首先需要理解幾個概念

1.HTTP是一個網絡協(xié)議,是專門用來傳輸Web內容;

2.SSL(Secure Sockets Layer)的縮寫----安全套接層。它是在上世紀90年代中期,由網景公司設計的。為啥要發(fā)明SSL這個協(xié)議?因為原先互聯(lián)網上使用的HTTP協(xié)議是明文的,存在很多缺點——比如傳輸內容會被偷窺(嗅探)和篡改。發(fā)明SSL協(xié)議,就是為了解決這些問題。

3.到了1999年,SSL因為應用廣泛,已經成為互聯(lián)網上的事實標準。IETF就在那年把SSL 標準化。標準化之后的名稱改為TLS“Transport Layer Security”的縮寫,中文叫做傳輸層安全協(xié)議。

4.通常所說的HTTPS協(xié)議,說白了就是“HTTP 協(xié)議”和“SSL/TLS 協(xié)議”的組合。你可以把HTTPS大致理解為——“HTTP over SSL”或“HTTP over TLS”。

5.OpenSSL是TLS/SSL協(xié)議的開源實現(xiàn),提供開發(fā)庫和命令行程序。

6.很多相關的文章都把這兩者并列稱呼SSL/TLS,因為這兩者可以視作同一個東西的不同階段。

SSL/TLS協(xié)議的基本過程是這樣的

目標:使用OpenSSL生成一個CA根證書,并用這個根證書頒發(fā)兩個子證書server和client。

2.生成證書相關文件

2.1確保安裝OpenSSL

Mac已經安裝OpenSSL,可以采用brew info OpenSSL來查看具體內容;

linux 可以采用yum install openssl來進行下載;

2.2構建私鑰

OpenSSL通常使用PEM(Privacy Enbanced Mail)格式來保存私鑰,構建私鑰的命令如下:

#導出至為當前路徑openssl genrsa -outprivate.pem1024

參數(shù)說明

1.genrsa——使用RSA算法產生私鑰

2.-out——輸出文件的路徑

3.1024——指定私鑰長度

2.3生成CSR證書簽名

使用上一步生成的私鑰(pem文件),生成證書請求文件(csr文件):

#導出到同級目錄下, -subj配置簽名文件的說明,可根據具體情況做修改openssl req -new-keyprivate.pem -outcsr.pem ?-subj \"/C=CN/ST=myprovince/L=mycity/O=myorganization/OU=mygroup/CN=myname"

參數(shù)說明

1.req——執(zhí)行證書簽發(fā)命令

2.-new——新證書簽發(fā)請求

3.-key——指定私鑰路徑

4.-out——輸出的csr文件的路徑

5.-subj——證書相關的用戶信息(subject的縮寫)

2.4自簽發(fā)證書文件(cer文件)

openssl x509 -req -days365-sha1 -extensions v3_ca -signkey \ private.pem-incsr.pem-out ca.cer

參數(shù)說明:

1. x509——生成x509格式證書 2. -req——輸入csr文件 3. -days——證書的有效期(天) 4. -sha1——證書摘要采用sha1算法 5. -extensions——按照openssl.cnf文件中配置的v3_ca項添加擴展 6. -signkey——簽發(fā)證書的私鑰 7. -in——要輸入的csr文件 8. -out——輸出的cer證書文件

三個文件如下圖:

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容