成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

自定義根證書頒發(fā)機構(gòu) CA 生成自簽名證書

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

 [[348373]]

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

本文從以下幾個方面講解:

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

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

  • 生成私鑰
  1. $ openssl ecparam -out ca.key -name prime256v1 -genkey 
  • 生成證書請求文件
  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 
  • 生成證書請求文件
  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 域名解析過程?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!')); 

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

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

添加根證書到本地計算機的受信任根存儲中

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

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

image.png

按照以下步驟添加根證書,修改證書為信任,最后會需要用到密碼進行確認

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

Reference

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

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

 

責(zé)任編輯:武曉燕 來源: Nodejs技術(shù)棧
相關(guān)推薦

2025-01-08 08:57:42

OpenSSL客戶端通信

2020-06-12 07:59:54

SSL證書攻擊漏洞

2020-04-28 08:20:28

COVID-19證書頒發(fā)機構(gòu)身份驗證

2024-11-28 09:43:54

2022-11-08 19:30:52

DjangoID自增

2021-01-26 21:00:24

SSL證書網(wǎng)絡(luò)安全加密

2016-05-09 11:40:44

2009-08-26 22:14:50

國產(chǎn)證書

2023-05-31 07:32:37

2021-06-03 14:57:05

SSL證書SSL協(xié)議服務(wù)器

2014-01-24 10:01:24

加密技術(shù)郵件服務(wù)器TLS加密

2009-10-28 10:20:10

2025-03-19 08:01:10

Kubernetes集群源碼

2020-06-17 10:52:30

運維故障技術(shù)

2010-03-11 16:20:49

VeriSign根證書密鑰

2021-12-16 16:50:47

NginxSSLLinux

2009-08-14 11:51:35

EV SSLCA數(shù)字證書

2020-03-12 10:41:35

數(shù)字簽名加密證書劫持

2009-02-02 21:47:51

2011-12-26 09:23:01

Java
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 成人国产精品久久 | 欧美视频免费在线 | 91福利网| 99精彩视频 | 亚洲精品二区 | 午夜免费网站 | 日韩在线播放网址 | 情侣酒店偷拍一区二区在线播放 | 日本手机看片 | 国产午夜精品一区二区三区四区 | 日韩三级精品 | 一区二区在线 | 青春草在线 | 久久精品欧美视频 | 久久久久久久网 | 凹凸日日摸日日碰夜夜 | 最新国产精品视频 | 五月激情久久 | 亚洲视频一区在线观看 | 亚洲精品在线视频 | 国户精品久久久久久久久久久不卡 | 欧美精品一区二区在线观看 | 欧美电影网 | 久久久精彩视频 | 亚洲欧洲中文日韩 | 国产毛片毛片 | 精品国产18久久久久久二百 | 国产精品色一区二区三区 | 久久天堂网| 高清av在线 | 男女羞羞视频免费看 | 91精品国产综合久久久久久漫画 | 国产无人区一区二区三区 | 久草欧美 | 久久亚洲国产 | 欧美黄在线观看 | 免费黄篇| 日本高清视频在线播放 | 国产成人精品一区二区三区四区 | 欧美一区二区免费 | 99亚洲精品 |