目錄
一、創建并設定根證書
1、生成名稱為 myRootCA.key 的秘鑰檔案
2、生成名稱為 myRootCA.pem 的根證書
3、設定你PC信任該根證書,
二、創建本地服務證書
1、為本地服務創建秘鑰
2、生成本地服務證書
3、至此生成的檔案如下
三、開啟本地 https 服務(兩種示例)
1、http-server
2、以 Node.js 下 Express 應用程式為例
首先找一個空檔案夾,并在此路徑下打開bash,
注:此方式生成的證書僅限用于本地測驗,不可用于生產環境,
一、創建并設定根證書
1、生成名稱為 myRootCA.key 的秘鑰檔案
openssl genrsa -des3 -out myRootCA.key 2048
注:2048 是 RAS-2048
會提示輸入一個密碼,請自行記住該密碼,后續生成根證書會用到,

2、生成名稱為 myRootCA.pem 的根證書
openssl req -x509 -new -nodes -key myRootCA.key -sha256 -days 1024 -out myRootCA.pem
注:1024 是證書有效期天數
使用上一步生成的秘鑰和密碼生成根證書,期間會提示輸入一些內容,如下圖:
3、設定你PC信任該根證書,
打開“鑰匙串訪問”應用,在系統--證書--檔案--匯入專案,選擇上一步生成的根證書 myRootCA.pem,
這一步非常重要,一定要選擇始終信任,如下圖:

二、創建本地服務證書
1、為本地服務創建秘鑰
先創建一個名稱為 server.cnf 組態檔:
[req]
default_bits = 2048
prompt = no
default_md = sha256
distinguished_name = dn
[dn]
C=CN
ST=libra
L=libra
O=libra
OU=My Local Server
emailAddress=example@domain.com
CN = localhost
再使用上面的配置,生成秘鑰:
openssl req -new -sha256 -nodes -out server.csr -newkey rsa:2048 -keyout server.key -config <(cat server.cnf)

2、生成本地服務證書
先創建 v3.ext 檔案,指定 subjectAltName:
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = localhost
再使用前面創建的根證書和v3.ext 簽發 localhost 的本地服務證書(X509 v3證書),生成 server.crt,
openssl x509 -req -in server.csr -CA myRootCA.pem -CAkey myRootCA.key -CAcreateserial -out server.crt -days 500 -sha256 -extfile v3.ext

3、至此生成的檔案如下

三、開啟本地 https 服務(兩種示例)
1、http-server
先安裝 http-server 模塊:
npm i http-server -g
再將上面生成的 server.crt 和 server.key 拷貝到你要除錯的檔案夾,并運行如下命令
http-server -S -C server.crt -K server.key -p 8081
即可訪問 https://localhost:8081
2、以 Node.js 下 Express 應用程式為例
找到你要測驗的檔案夾,先安裝 express 模塊:
npm i express
在創建 server.js 檔案:
const path = require('path')
const fs = require('fs')
const express = require('express')
const https = require('https')
const certOptions = {
key: fs.readFileSync(path.resolve('./server.key')),
cert: fs.readFileSync(path.resolve('./server.crt'))
}
const app = express()
const server = https.createServer(certOptions, app).listen(443)
啟動程式:
node server.js
訪問:https://localhost:443
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/293668.html
標籤:區塊鏈

