最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

本地颁发 SSL 证书,并开启 https 服务调试

IT培训 admin 1浏览 0评论

本地颁发 SSL 证书,并开启 https 服务调试

目录

一、创建并设置根证书

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

本地颁发 SSL 证书,并开启 https 服务调试

目录

一、创建并设置根证书

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

发布评论

评论列表 (0)

  1. 暂无评论