66 lines
1.9 KiB
Markdown
66 lines
1.9 KiB
Markdown
|
Create self signed tls certificates without OpenSSL.
|
||
|
|
||
|
## Install
|
||
|
|
||
|
```
|
||
|
npm install -g mkcert
|
||
|
```
|
||
|
|
||
|
## CLI
|
||
|
|
||
|
### Create a Certificate Authority
|
||
|
|
||
|
```
|
||
|
$ mkcert create-ca --help
|
||
|
|
||
|
Options:
|
||
|
--organization [value] organization name (default: "Test CA")
|
||
|
--country-code [value] country code (default: "US")
|
||
|
--state [value] state name (default: "California")
|
||
|
--locality [value] locality address (default: "San Francisco")
|
||
|
--validity [days] validity in days (default: 365)
|
||
|
--key [file] output key file (default: "ca.key")
|
||
|
--cert [file] output certificate file (default: "ca.crt")
|
||
|
-h, --help display help for command
|
||
|
```
|
||
|
|
||
|
### Create a Certificate
|
||
|
|
||
|
```
|
||
|
$ mkcert create-cert --help
|
||
|
|
||
|
Options:
|
||
|
--ca-key [file] ca private key file (default: "ca.key")
|
||
|
--ca-cert [file] ca certificate file (default: "ca.crt")
|
||
|
--validity [days] validity in days (default: 365)
|
||
|
--key [file] output key file (default: "cert.key")
|
||
|
--cert [file] output certificate file (default: "cert.crt")
|
||
|
--organization [value] optional organization name
|
||
|
--email [value] optional email address
|
||
|
--domains, --domain [values...] domains or ip addresses (default: ["localhost","127.0.0.1"])
|
||
|
-h, --help display help for command
|
||
|
```
|
||
|
|
||
|
## API
|
||
|
|
||
|
```js
|
||
|
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); // certificate info
|
||
|
console.log(`${cert.cert}${ca.cert}`); // create full chain certificate by merging CA and domain certificates
|
||
|
```
|