无需使用OpenSSL创建自签名TLS证书。
安装
npm install -g mkcert
命令行界面
创建证书颁发机构
$ mkcert create-ca --help
选项:
--organization [值] 组织名称(默认:"Test CA")
--country-code [值] 国家代码(默认:"US")
--state [值] 州名(默认:"California")
--locality [值] 地区地址(默认:"San Francisco")
--validity [天数] 有效期(天)(默认:365)
--key [文件] 输出密钥文件(默认:"ca.key")
--cert [文件] 输出证书文件(默认:"ca.crt")
-h, --help 显示命令帮助
创建证书
$ mkcert create-cert --help
选项:
--ca-key [文件] CA私钥文件(默认:"ca.key")
--ca-cert [文件] CA证书文件(默认:"ca.crt")
--validity [天数] 有效期(天)(默认:365)
--key [文件] 输出密钥文件(默认:"cert.key")
--cert [文件] 输出证书文件(默认:"cert.crt")
--organization [值] 可选组织名称
--email [值] 可选电子邮箱地址
--domains, --domain [值...] 域名或IP地址(默认:["localhost","127.0.0.1"])
-h, --help 显示命令帮助
API
import { createCA, createCert } from "mkcert";
const ca = await createCA({
organization: "Hello CA",
countryCode: "NP",
state: "Bagmati",
locality: "Kathmandu",
validity: 365
});
const cert = await createCert({
ca: { key: ca.key, cert: ca.cert },
domains: ["127.0.0.1", "localhost"],
validity: 365
});
console.log(cert.key, cert.cert); // 证书信息
console.log(`${cert.cert}${ca.cert}`); // 通过合并CA证书和域名证书创建完整链证书