Nodejs 搭建https服务器(一)
2019獨角獸企業重金招聘Python工程師標準>>>
1.?搭建https服務器---前奏
首先需要理解幾個概念
1.?HTTP是一個網絡協議,是專門用來傳輸?Web?內容;
2.?SSL(Secure Sockets Layer)的縮寫----“安全套接層”。它是在上世紀90年代中期,由網景公司設計的。?為啥要發明?SSL?這個協議?因為原先互聯網上使用的?HTTP?協議是明文的,存在很多缺點——比如傳輸內容會被偷窺(嗅探)和篡改。發明?SSL?協議,就是為了解決這些問題。
3.?到了1999年,SSL?因為應用廣泛,已經成為互聯網上的事實標準。IETF?就在那年把?SSL 標準化。標準化之后的名稱改為?TLS(是“Transport Layer Security”的縮寫),中文叫做“傳輸層安全協議”。
4.?通常所說的?HTTPS?協議,說白了就是“HTTP 協議”和“SSL/TLS 協議”的組合。你可以把?HTTPS?大致理解為——“HTTP over SSL”或“HTTP over TLS”。
5.?OpenSSL是TLS/SSL協議的開源實現,提供開發庫和命令行程序。
6.?很多相關的文章都把這兩者并列稱呼(SSL/TLS),因為這兩者可以視作同一個東西的不同階段。
SSL/TLS協議的基本過程是這樣的:
目標:使用OpenSSL生成一個CA根證書,并用這個根證書頒發兩個子證書server和client。
2.??生成證書相關文件
2.1?確保安裝OpenSSL
Mac已經安裝OpenSSL,可以采用brew info OpenSSL來查看具體內容;
linux 可以采用yum install openssl來進行下載;
2.2?構建私鑰
OpenSSL通常使用PEM(Privacy Enbanced Mail)格式來保存私鑰,構建私鑰的命令如下:
#導出至為當前路徑?openssl genrsa -out?private.pem?1024
參數說明
1.?genrsa——使用RSA算法產生私鑰
2.?-out——輸出文件的路徑
3.?1024——指定私鑰長度
2.3?生成CSR證書簽名
使用上一步生成的私鑰(pem文件),生成證書請求文件(csr文件):
#導出到同級目錄下, -subj配置簽名文件的說明,可根據具體情況做修改?openssl req -new?-keyprivate.pem -out?csr.pem ?-subj \"/C=CN/ST=myprovince/L=mycity/O=myorganization/OU=mygroup/CN=myname"
參數說明
1.?req——執行證書簽發命令
2.?-new——新證書簽發請求
3.?-key——指定私鑰路徑
4.?-out——輸出的csr文件的路徑
5.?-subj——證書相關的用戶信息(subject的縮寫)
2.4?自簽發證書文件(cer文件)
openssl x509 -req -days?365?-sha1 -extensions v3_ca -signkey \ private.pem?-in?csr.pem?-out ca.cer
參數說明:
1. x509——生成x509格式證書 2. -req——輸入csr文件 3. -days——證書的有效期(天) 4. -sha1——證書摘要采用sha1算法 5. -extensions——按照openssl.cnf文件中配置的v3_ca項添加擴展 6. -signkey——簽發證書的私鑰 7. -in——要輸入的csr文件 8. -out——輸出的cer證書文件
三個文件如下圖:
?
轉載于:https://my.oschina.net/u/2971691/blog/886272
總結
以上是生活随笔為你收集整理的Nodejs 搭建https服务器(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: flexbox 伸缩布局
- 下一篇: 【Samba】安装与配置