使用自签证书开启本地https服务

木头的喵喵拖孩

记录一下如何在本地搭建https服务

下载OpenSSL

Ubuntu环境自带OpenSSL,Windows环境需要先下载
OpenSSL下载页
选择“Win64 OpenSSL vx.x.x Light”下载,如果是IIS使用,需要下载版本低一点的v.1.1.1

生成证书

一步到位

1
2
3
4
5
6
7
# 需要先cd到一个新的文件夹,这个文件夹用来存放生成的密钥和证书
# server.key是密钥文件名称
# server.crt是证书文件名称
# 3650是有效天数
# C=CN表示中国区域
# CN=testhttps.com表示证书绑定的域名
openssl req -newkey rsa:2048 -nodes -keyout server.key -x509 -days 3650 -subj "/C=CN/CN=testhttps.com" -out server.crt

分步生成

1
2
# 生成密钥
openssl genrsa -out server.key 2048
1
2
3
# 生成证书请求文件
# Common Name 是自己的域名,测试的话可以随便写一个
openssl req -new -key server.key -out server.csr
1
2
# 生成证书
openssl x509 -req -days 3650 -in server. csr -signkey server.key -out server.crt

开启nodejs https服务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
const fs = require('fs');
const https = require('https');
const port = 443;

const serverOption = {
key: fs.readFileSync('./ssl/server.key'),
cert: fs.readFileSync('./ssl/server.crt'),
};

const handler = (req, res) => {
res.writeHead(200, {
'Content-Type': 'text/plain;charset=utf8'
});
res.end('服务器响应的数据');
}

const server = https.createServer(serverOption, handler);

console.log(`---server listen on ${port}---`);
server.listen(port);

最后浏览器打开https://localhost 就可以访问https服务器了

因为是自签证书,所以浏览器会警告,不过没关系,继续访问就行了,另外域名不用证书绑定的testhttps.com也行,目前不清楚原理

参考
https://blog.csdn.net/xgangzai/article/details/112300962
https://blog.csdn.net/huyaguang/article/details/128192978

  • 标题: 使用自签证书开启本地https服务
  • 作者: 木头的喵喵拖孩
  • 创建于: 2023-05-09 17:08:13
  • 更新于: 2024-05-21 10:56:15
  • 链接: https://blog.xx-xx.top/2023/05/09/使用自签证书开启本地https服务/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
此页目录
使用自签证书开启本地https服务