日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
自定義根證書頒發(fā)機(jī)構(gòu)CA生成自簽名證書

 [[348373]]

創(chuàng)新互聯(lián)建站是一家集網(wǎng)站建設(shè),新榮企業(yè)網(wǎng)站建設(shè),新榮品牌網(wǎng)站建設(shè),網(wǎng)站定制,新榮網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,新榮網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

本文為使用過(guò)程中的一個(gè)工具記錄,可實(shí)現(xiàn)在本地開啟一個(gè) HTTPS 服務(wù)器用于開發(fā)或測(cè)試。我們會(huì)先創(chuàng)建一個(gè) CA 根證書,再創(chuàng)建一個(gè)由 CA 根證書簽名的自定義證書。

本文從以下幾個(gè)方面講解:

  • 創(chuàng)建自己的自定義證書頒發(fā)機(jī)構(gòu) CA
  • 使用 CA 根證書簽名服務(wù)器證書
  • 在 Node.js 服務(wù)器中配置證書
  • 添加根證書到本地計(jì)算機(jī)的受信任根存儲(chǔ)中

創(chuàng)建自己的自定義證書頒發(fā)機(jī)構(gòu) CA

  • 生成私鑰
 
 
 
 
  1. $ openssl ecparam -out ca.key -name prime256v1 -genkey 
  • 生成證書請(qǐng)求文件
 
 
 
 
  1. $ openssl req -new -sha256 -key ca.key -out ca.csr     
  2.  
  3. # 以下為需要輸入的交互信息 
  4. Country Name (2 letter code) []:CN 
  5. State or Province Name (full name) []:BeiJing 
  6. Locality Name (eg, city) []:BeiJing 
  7. Organization Name (eg, company) []:Node.js 
  8. Organizational Unit Name (eg, section) []:Node.js 
  9. Common Name (eg, fully qualified host name) []:test.ca.com 
  10. Email Address []: 
  11.  
  12. Please enter the following 'extra' attributes 
  13. to be sent with your certificate request 
  14. A challenge password []:abc123*** 
  • 生成根證書
 
 
 
 
  1. $ openssl x509 -req -sha256 -days 365 -in ca.csr -signkey ca.key -out ca.crt 

使用 CA 根證書簽名服務(wù)器證書

  • 生成私鑰
 
 
 
 
  1. $ openssl ecparam -out server.key -name prime256v1 -genkey 
  • 生成證書請(qǐng)求文件
 
 
 
 
  1. $ openssl req -new -sha256 -key server.key -out server.csr 
  2.  
  3. # 注意下面服務(wù)器證書的 Common Name 不能與上面頒發(fā)者 CA 的 Common Name 一樣 
  4. Country Name (2 letter code) []:CN 
  5. State or Province Name (full name) []:ShangHai 
  6. Locality Name (eg, city) []:ShangHai 
  7. Organization Name (eg, company) []:Node.js 
  8. Organizational Unit Name (eg, section) []:Node.js 
  9. Common Name (eg, fully qualified host name) []:test.https.com 
  10. Email Address []: 
  11.  
  12. Please enter the following 'extra' attributes 
  13. to be sent with your certificate request 
  14. A challenge password []:abc123*** 
  • 使用 CA 的根證書為服務(wù)器證書簽名
 
 
 
 
  1. $ openssl x509 -req -in server.csr -CA  ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 365 -sha256 
  2.  
  3. # 成功之后有以下提示 
  4. Signature ok 
  5. subject=/C=CN/ST=ShangHai/L=ShangHai/O=Node.js/OU=Node.js/CN=test.https.com 
  6. Getting CA Private Key 

服務(wù)端證書中使用到的域名是我們自己定義的,需要在本地 hosts 文件做映射,如果不知道為什么要修改和該如何修改的參考文章 DNS 域名解析過(guò)程?github.com/qufei1993/http-protocol/blob/master/docs/dns-process.md

  • 證書文件列表

完成之后可以看到如下文件,server.crt 是服務(wù)器的證書文件,ca.crt 就是我們創(chuàng)建的根正書。

在 Node.js 服務(wù)器中配置證書

 
 
 
 
  1. const express = require('express'); 
  2. const https = require('https'); 
  3. const fs = require('fs'); 
  4. const app = express(); 
  5. const PORT = 8443; 
  6. const options = { 
  7.   key: fs.readFileSync('./cert/server.key'), 
  8.   cert: fs.readFileSync('./cert/server.crt') 
  9. }; 
  10.  
  11. https.createServer(options, app) 
  12.   .listen(PORT, () => console.log(`App listening on port ${PORT}!`)); 
  13.  
  14. app.get('/', (req, res) => res.send('Hello World!')); 

此時(shí)在 Chrome 瀏覽器中仍無(wú)法訪問(wèn),至少在 Chrome 85.0.4183.121 是這樣的,瀏覽器中打開證書文件也顯示的證書是不受信任的。

為了解決這個(gè)問(wèn)題,繼續(xù)往下看。

添加根證書到本地計(jì)算機(jī)的受信任根存儲(chǔ)中

找到我們剛生成的根證書文件,雙擊打開。

得到如下提示,是因?yàn)橄到y(tǒng)提示新根證書應(yīng)添加到當(dāng)前用戶下,這樣就不會(huì)因?yàn)闇y(cè)試去影響其它用戶,系統(tǒng)根證書是不建議修改的,這會(huì)對(duì)當(dāng)前計(jì)算的所有用戶生效,另外 Mac 中也是不能修改的。

image.png

按照以下步驟添加根證書,修改證書為信任,最后會(huì)需要用到密碼進(jìn)行確認(rèn)

重新打開鏈接,是有提示的,我們可以繼續(xù)前往訪問(wèn),另外證書的狀態(tài)也顯示為了有效。

Reference

  • support.apple.com/zh-cn/guide/keychain-access/kyca2431/mac
  • configure-the-certificate-in-your-web-servers-tls-settings

本文轉(zhuǎn)載自微信公眾號(hào)「Nodejs技術(shù)?!梗梢酝ㄟ^(guò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系Nodejs技術(shù)棧公眾號(hào)。

 


分享標(biāo)題:自定義根證書頒發(fā)機(jī)構(gòu)CA生成自簽名證書
分享URL:http://m.5511xx.com/article/dppgggs.html