本地颁发 SSL 证书,并开启 https 服务调试
本地颁发 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
- 性能测试(一)
- springboot项目搭建0000
- echarts 修改tooltip字体大小
- platform详解
- 正确性、健壮性、可靠性、效率、易用性、可读性(可理解性)、可扩展性、可复 用性、兼容性、可移植性
- MinGW 和 MSYS 的手动安装与环境配置
- 职场之路
- mmap。
- 设置开机自动启动chrome浏览器
- cruisecontrol 配置
- 关于nofollow的问题
- calendar java 线程安全
- 路在何方?前途迷茫,去不去HP?
- schedulewithfixeddelay
- 网站生成静态页面
- https ssl单项认证和双向认证以及证书生成
- HTML登录注册页面简单实现
- 磁盘分区形式:主启动记录(MBR)和全局唯一标识分区表(GPT)
- 【十一届蓝桥杯】
- Qt数据库:(五)QSqlQueryModel