https://github.com/lukechilds/create-cert
Super simple self signed certificates
https://github.com/lukechilds/create-cert
certificate https self-signed self-signed-certificate ssl ssl-certificate ssl-certificates
Last synced: 6 months ago
JSON representation
Super simple self signed certificates
- Host: GitHub
- URL: https://github.com/lukechilds/create-cert
- Owner: lukechilds
- License: mit
- Created: 2017-06-03T05:09:25.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2019-11-07T11:55:49.000Z (almost 6 years ago)
- Last Synced: 2025-04-14T19:07:49.174Z (6 months ago)
- Topics: certificate, https, self-signed, self-signed-certificate, ssl, ssl-certificate, ssl-certificates
- Language: JavaScript
- Size: 95.7 KB
- Stars: 42
- Watchers: 2
- Forks: 2
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# create-cert
> Super simple self signed certificates
[](https://travis-ci.org/lukechilds/create-cert)
[](https://coveralls.io/github/lukechilds/create-cert?branch=master)
[](https://www.npmjs.com/package/create-cert)
[](https://www.npmjs.com/package/create-cert)`create-cert` is a convenient wrapper around the [`pem`](https://github.com/Dexus/pem) module. It generates a self signed certificate with sensible defaults along with an associated CA certificate to validate against. It has a Promise based API and returns the keys in a format that can be passed directly into `https.createServer`.
## Install
```shell
npm install --save create-cert
```## Usage
```js
const createCert = require('create-cert');createCert().then(keys => console.log(keys));
// {
// key: '-----BEGIN RSA PRIVATE KEY-----\n...',
// cert: '-----BEGIN CERTIFICATE-----\n...',
// caCert: '-----BEGIN CERTIFICATE-----\n...'
// }
```You can create a fully functioning HTTPS server like so:
```js
createCert().then(keys => {
https.createServer(keys, (req, res) => res.end('Hi!')).listen(443);
});
```For strict SSL usage you can set the common name for the certificate and validate it against the CA certificate. An example using the [Got](https://github.com/sindresorhus/got) request client:
```js
createCert('foobar.com').then(keys => {
https.createServer(keys, (req, res) => res.end('Hi!')).listen(443, () => {
// This request will succeed without issues
// as the SSL certificate will successfully
// validate against the CA certificate.
got('https://foobar.com', { ca: keys.caCert });
});
});
```## API
### createCert([options])
Returns a Promise which resolves to a `keys` object.
#### options
Type: `string`, `object`
Default: `{ days: 365, commonName: 'example.com' }`If a string is passed in, it will be used as the `commonName`. You can pass in any valid option for [`pem.createCertificate()`](https://github.com/Dexus/pem#create-a-certificate) to override the defaults.
## Related
- [`create-test-server`](https://github.com/lukechilds/create-test-server) - Creates a minimal Express server for testing
## License
MIT © Luke Childs