您当前的位置:首页 > 计算机 > 服务器 > 网络服务

开发用的 SSL 体系

时间:12-14来源:作者:点击数:

越来越多的前端应用和功能(客户端安全方面的),需要 HTTPS 的支持,但开发环境通常没有本地 PKI 体系。虽然可以使用 OpenSSL 来创建自签名证书,但过程和操作比较复杂。可以考虑使用 mkCert 软件,来简化操作,其可以帮助你可以创建想要使用的 SSL 证书和 Key,部署在 Nginx 或 Fastify 等系统中,支持开发中的使用。

安装 Mkcert

项目地址在:https://github.com/FiloSottile/mkcert

以 debian 为例,下面的命令可以安装依赖,下载对应的可执行文件版本,并移动到系统目录,作为命令工具可以使用

sudo apt-get update
sudo apt install wget libnss3-tools
export VER="v1.4.1" && wget -O mkcert  https://github.com/FiloSottile/mkcert/releases/download/ ${VER}/mkcert-${VER}-linux-amd64
chmod +x  mkcert
sudo mv mkcert /usr/local/bin

生成证书

需要注意是,在实际使用中,需要在客户端环境中,预先安装和配置 mkcert 的根证书,否则在使用时,会提示无效证书,因为此证书没有可信任的根证书。

下面的命令可以生成根证书和通配符证书(*.ulsc.local)

mkcert -install
mkcert *.ulsc.local 

其中,站点证书在当前目录下(key.pem 和 pem), _wildcard.ulsc.local-key.pem 和 _wildcard.ulsc.local.pem。

根证书在 "/root/.local/share/mkcert" 目录下,有两个文件 rootCA-key.pem rootCA.pem。将 rootCA.pem 复制出来准备导入根证书

导入根证书

以 Windows 为例, win+R,运行 certmgr.msc, 弹出证书管理程序。

右键点击“受信任的证书颁发机构”-“证书”-“所有任务”-“导入”,启动导入向导,选择所有类型文件,选择 rootCA.pem,导入此证书到系统中。

设置站点证书

以 fastify 为例,证书的配置方式如下(证书文件和 Key 都已经复制到 project/cert 目录下),我们建议将此配置信息使用环境变量传入。

    // .env 文件:
    CERT=./cert/_wildcard.ulsc.local


    // index.js
    const app   = require('fastify')({
        logger: true ,
        maxParamLength : 500,
        https : {
            key: fs.readFileSync(API_CFG.cert+'.key'),
            cert: fs.readFileSync(API_CFG.cert+'.pem')
        }
    }); 
    // 其他代码

客户端配置

需要注意的是,对于开发证书,没有有效的 DNS 系统支撑,通常需要通过修改 hosts 文件,手动设置主机名称和 IP 地址的对应关系。

windows 系统中 hosts 文件的位置在 \Windows\System32\drivers\etc 目录下。编辑并增加类似下面的内容

192.168.56.1 dev.ulsc.local

然后,就可以通过访问

https://dev.ulsc.local:3000

类似的方式来访问应用了,需要注意相关的 SSL 配置没有问题。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐