https://github.com/waitingsong/node-myca-cli
Create Self-signed CA certificate for development use and issue server or client certificates, generated using openssl
https://github.com/waitingsong/node-myca-cli
ca certificate ecc myca openssl pfx pkcs12 rsa san self-signed-certificate x509
Last synced: about 1 month ago
JSON representation
Create Self-signed CA certificate for development use and issue server or client certificates, generated using openssl
- Host: GitHub
- URL: https://github.com/waitingsong/node-myca-cli
- Owner: waitingsong
- License: mit
- Created: 2018-01-31T07:48:54.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2019-01-23T12:22:26.000Z (over 6 years ago)
- Last Synced: 2025-04-01T13:51:09.909Z (6 months ago)
- Topics: ca, certificate, ecc, myca, openssl, pfx, pkcs12, rsa, san, self-signed-certificate, x509
- Language: TypeScript
- Homepage:
- Size: 278 KB
- Stars: 8
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# myca-cli
A command line for [myca](https://www.npmjs.com/package/myca) for creating my CA center,
generating a self signed x509 certificate, issuing server certificate from node.js via openssl.
Multiple center supported. RSA, EC(P-256, P-384) supported.[](https://www.npmjs.com/package/myca-cli)
[](https://opensource.org/licenses/MIT)## Installing
```bash
npm install -g myca-cli
```## myca module
- [myca](https://www.npmjs.com/package/myca)## Usage
- Initialize default center
```bash
myca init
```will output:
```bash
Default center created at path: "C:\Users\\.myca"
```- Initialize CA cert of default center
```bash
myca initca --days=10950 --pass=mycapass \
--cn="my root ca" --o="my company" --c=CN \
```
will output:
```bash
CA certificate created with:
centerName: "default"
crtFile: "C:\Users\\.myca\ca.crt"
privateKeyFile: "C:\Users\\.myca\ca.key"
```- Issue a RSA serve certificate
```bash
myca issue --kind=server --days=730 --pass=fooo \
--cn="waitingsong.com" --o="my company" --c=CN --caKeyPass=mycapass \
```will output:
```bash
Issue a Certificate with:
pubKey:
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxJunjvIoZ5bFQsA9D/1A
MHt36viM7AJZFpQdmVuTLUZXEiTFU6gMdBarikHsXt0xRPcnGHiP1hgSsTIh2j1k
3HiNinwfV/MePvy/8f/XWY+J3BbljQCPQmtUIZAnBebiVcvQrL1cP4l5xgJiv5/p
EdRhCs92J/1MMDxhp41BzatBKwbQJ7UQtLnTdWXCs/qptTgaD6vh4a3snWHlfatg
TsfzjmSmiXcEYGZM9z6tDrSjR9kBZoog+9DTh+FCdVaasL7QvYlWlOzsjSO2yvLX
lYQJ9VJbBGxV0cOKbmPm46aMK6n5br/75CAm8cHyfgsE0MhxH2uxQW3leUy+3MHK
ZwIDAQAB
-----END PUBLIC KEY-----pass: "fooo"
privateKeyFile: "C:\Users\\.myca\server\01.key"
privateUnsecureKeyFile: "C:\Users\\.myca\server\01.key.unsecure"
centerName: "default"
caKeyFile: "C:\Users\\.myca\ca.key"
caCrtFile: "C:\Users\\.myca\ca.crt"
csrFile: "C:\Users\\.myca\server\01.csr"
crtFile: "C:\Users\\.myca\server\01.crt"
```- Initialize a center named ec
```bash
// path can be omitted
myca initcenter --name=ec --path="c:/users//.myca-ec"
```will output:
```bash
center created with:
centerName: "ec"
path: "c:/users//.myca-ec"
```- Create self-signed EC CA certificate under center ec (default P-256)
```bash
myca initca --days=10950 --pass=mycapass \
--cn="my root ca" --o="my company" --c=CN --centerName=ec --alg=ec \
```will output:
```bash
CA certificate created with:
centerName: "ec"
crtFile: "c:\users\\.myca-ec\ca.crt"
privateKeyFile: "c:\users\\.myca-ec\ca.key"
```- Issue a ec server certificate by center ec CA cert
```bash
myca issue --kind=server --days=730 --pass=fooo \
--cn="foo.waitingsong.com" --o="my comany" --c=CN --caKeyPass=mycapass \
--centerName=ec --alg=ec \
```- Issue a serve certificate with Domain Name SANs
```bash
myca issue --kind=server --days=730 --pass=fooo \
--cn="waitingsong.com" --o="my company" --c=CN --caKeyPass=mycapass \
--SAN="foo.waitingsong.com, bar.waitingsong.com" \
```- Issue a serve certificate with IP SANs
```bash
myca issue --kind=server --days=730 --pass=fooo \
--cn="waitingsong.com" --o="my company" --c=CN --caKeyPass=mycapass \
--ips=192.168.0.1 \myca issue --kind=server --days=730 --pass=fooo \
--cn="waitingsong.com" --o="my company" --c=CN --caKeyPass=mycapass \
--ips="192.168.0.1, 192.168.0.2" \
```- Issue a RSA client p12/pfx certificate
```bash
myca issue --kind=client --days=730 --pass=fooo \
--cn="waitingsong.com" --o="my company" --c=CN --caKeyPass=mycapass \
```will output:
```bash
Issue a Certificate with:
pubKey:
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsu8wZDZ0a/HNtlJPqCjs
9Isg795iUAJ+5OREb08hPthDN4/LOoLgepIyWbZ/A+0Gv8jHkbqlUvOJV5O5ggjR
ezpK3jXln621nbjS3Fzs/uw4+40e4RX7fYIoE9sk94rP+od1ZMRjE8+e+qb34ubC
WiXtsyR4EyaRen23IqLNlvxGlcg4xLczaCDA06zkva+wL7qvLYF2331X/rZ+dQgY
xh6iWKO7C9qcliF23OOByYIKS8jqQ8ngwHIEogIqNBdt/QyEVN7CvF4M6abQnrrx
9wnnmlaRX2WiybsA06wWl7+4BgKjeULehCVQOpMsS/3QV1dO79vn9hZWM/dAPlnF
QwIDAQAB
-----END PUBLIC KEY-----pass: "fooo"
privateKeyFile: "C:\Users\\.myca\client\0A.key"
centerName: "default"
caKeyFile: "C:\Users\\.myca\ca.key"
caCrtFile: "C:\Users\\.myca\ca.crt"
csrFile: "C:\Users\\.myca\client\0A.csr"
crtFile: "C:\Users\\.myca\client\0A.crt"
pfxFile: "C:\Users\\.myca\client\0A.p12"
```## License
[MIT](LICENSE)
## Languages
- [English](README.md)
- [中文](README.zh-CN.md)