开发本地新建SSL证书(https使用)

160 阅读2分钟

        我们平时在本地开发时,有时会要求通过 HTTPS 请求来访问。一个通用的做法是用 OpenSSL 生成自签证书,然后对 Web 服务进行配置。但 OpenSSL 的命令比较繁琐,参数也比较复杂,用起来不够方便。于是我找到了一个替代方案:mkcert,和大家分享下。

介绍:

        mkcert 是一个用于生成本地自签名 SSL 证书的开源工具,项目基于 Golang 开发,可跨平台使用,不需要配置,支持多域名以及自动信任 CA。

下载安装

首先,根据自己的系统,下载最新的二进制文件,这里我下载的版本为 v1.4.3:

[root@localhost ~]# wget -O mkcert https://github.com/FiloSottile/mkcert/releases/download/v1.4.3/mkcert-v1.4.3-linux-amd64

为二进制文件添加可执行权限,并移动到 $PATH 中:

[root@localhost ~]# chmod +x mkcert
[root@localhost ~]# mv mkcert /usr/local/bin/

查看版本:

[root@localhost ~]# mkcert -version

使用说明

本地信任:

执行以下命令将 mkcert 的认证机构安装到服务器上:

[root@localhost ~]# mkcert -install

CA 证书的位置可以通过以下命令查看:

[root@localhost ~]# mkcert -CAROOT
/root/.local/share/mkcert

该目录中有两个文件:rootCA-key.pem 和 rootCA.pem。将 rootCA.pem 复制到 PC 上,并将其后缀改为 .crt

双击 rootCA.crt,根据提示安装证书,步骤如下:

mkcert 生成证书的命令很简单,格式如下:

mkcert domain1 [domain2 [...]]

多个域名/IP用空格分隔,一个自签名的证书可以这样创建:

mkcert 192.168.128.134 example.com localhost 127.0.0.1 ::1

执行结果:

Note: the local CA is not installed in the system trust store.
Note: the local CA is not installed in the Firefox and/or Chrome/Chromium trust store.
Run "mkcert -install" for certificates to be trusted automatically 

Created a new certificate valid for the following names
 - "192.168.128.134"
 - "example.com"
 - "localhost"
 - "127.0.0.1"
 - "::1"

The certificate is at "./192.168.128.134+4.pem" and the key at "./192.168.128.134+4-key.pem"

It will expire on 7 September 2023

一般单个域名:

mkcert api.simple.com

然后找到生成的对应证书,将对应证书写入对应的nginx 配置中