{"_id":"trusted-cert","_rev":"80-82e82e9599d9b3e40efa4d5a86a5e030","name":"trusted-cert","dist-tags":{"latest":"1.1.4","next":"1.1.4-beta.2","beta":"1.1.4-beta.4"},"versions":{"0.0.1-3":{"name":"trusted-cert","version":"0.0.1-3","bin":{"trusted-cert":"./cli.js"},"main":"index.js","dependencies":{"commander":"^5.0.0","fs-extra":"^9.0.0","inquirer":"^7.1.0"},"devDependencies":{"standard":"^14.3.3"},"gitHead":"1ce8736b1205312ba11e5bd5299322b842e14a60","description":"## 使用 ### 命令行 ``` npm install create-self-signed -g self-signed --help ```","_id":"trusted-cert@0.0.1-3","_npmVersion":"6.4.1","_nodeVersion":"10.13.0","_npmUser":{"name":"sprying","email":"sprying.fang@gmail.com"},"dist":{"integrity":"sha512-KeEuw9fNY+fLqmKD1HY9F2ANK244ogwWztQvSugWKGV6qishPiWqt2hI0I2znYJNdhGJvVQx8qsBd5b5mMvmTQ==","shasum":"7c9008ecf2f5f54f3a9c101d42bc846cf142d612","tarball":"https://registry.npmjs.org/trusted-cert/-/trusted-cert-0.0.1-3.tgz","fileCount":4,"unpackedSize":18693,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJelfJ6CRA9TVsSAnZWagAAJP4QAJOoktPM6BmipMXorZEe\nds77KITGkksf0c29E+3ey747DaJ/hHttyn9HmN0iI/FQ1x7WkSw3Reh1Tqif\nSOzQDDS94K9OA2QUlUxY01yBt3U2J32Eic2xoo9/MZVtlPAp1lkX1xxNyoJ7\nLDlmuA+yZcHhrPJqc7nTm4lsl3XHZvwi0Pa1CDyaycm8q/1sv63Tzn3Xuwje\nn95azSJ7/sZ8xFhLXfjqRAHsW8fLxtjm2Pvp7rcuoLFFxog+LJ13pMBUHUsF\nMRhvv26KAhVw6fRFnfcJt9msrv7llNuxoQrWvbdWVE577aSh75KgnsyGml4d\nZFJOekOR7mtsNDLDaVAIztq5h5Ptj8YNmLugCPAPYC5KYY8ACy3kONoj+lXt\nbjRT1HBqgVrDG2y5Ia6Hw/3mot2k75JG74//w3l0mvm42kdBaWfYvt67ZRpp\n5+gkUtou/KyOsE0C2BI2qHcr60W5nSRVSAzI5o67T1Joy60YXkA1LPW10jP6\njhW2+7kbkiyhgTzBD4euJO46xlskTYYzyhfAYwJUzmBnvPrPvgz9IWYAyus2\nxdWp03IZFCUblduTRc2e4ijCSdEW/PbBPYCD3Cu4/a8o5bn8DSFoyqXCvl3G\ndjVJe7eKFt0/dfCcC5uzhmlwSmn2Rymy8gsgZZi3d2KhSkNKGfpNa8pkg8iv\nS7wf\r\n=CgrA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDKbo6zLjWCPXPovjnhqiC7QTlvdLCaoLw7ayKRyJNgUQIgF+xdnliqgNTjecOEWB/wMb4rPfaZhhglgP36pFf4Jy0="}]},"maintainers":[{"name":"sprying","email":"sprying.fang@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trusted-cert_0.0.1-3_1586885242273_0.7041594077568978"},"_hasShrinkwrap":false},"0.0.1-4":{"name":"trusted-cert","version":"0.0.1-4","bin":{"trusted-cert":"./cli.js"},"main":"index.js","dependencies":{"commander":"^5.0.0","fs-extra":"^9.0.0","inquirer":"^7.1.0"},"devDependencies":{"standard":"^14.3.3"},"gitHead":"dfedcc19034d3d3e73fe1548e3cec0bac84a6b45","description":"``` npm install trusted-cert -g # 或者使用yarn yarn global add trusted-cert","_id":"trusted-cert@0.0.1-4","_npmVersion":"6.4.1","_nodeVersion":"10.13.0","_npmUser":{"name":"sprying","email":"sprying.fang@gmail.com"},"dist":{"integrity":"sha512-M/5nQy+EJ7DRn6qT112BA/DJECOYvgsJ5FbLRPOqq1bFrFT4TzhheTXxFifGAvIWk81G6Xy7AUeuy6S6cjkKDw==","shasum":"7902d794ab7b238a5eea87d8052c75ebfaea7f39","tarball":"https://registry.npmjs.org/trusted-cert/-/trusted-cert-0.0.1-4.tgz","fileCount":4,"unpackedSize":15581,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJel0Q9CRA9TVsSAnZWagAA8QYP/iWN1f6U2TeJE4pG2IhK\nYH1OMNfuCdHk3J7fMlvZDMCTKvG0pubbG5Wb6mG7tW5uBiDVIR/1AJXIT3Og\nEzoV05HYMoWc7QG8jEglLLxpIMqNf5syKY+BQgQDbScrlRiQefT+vhMpwxE1\nADDCTLE606bznWGtBw6Vd0a/q7WrdPCUpnGVXy4mrl7il/Xvvi0glNWhQKKv\nCXE1p9K7MgBlxzS+m5+VuUDB4Izk2jigK1WM4ctnnjOFQhuAn4uE+nXkSqmz\nYXJSkIUGXRozsS7sYCTmJ99JxHC7dIfzMdYff9lYFFghufGi4OX+jyGkbuno\nJqfEMMHQlWvEW3HdHt0Up5uwg15J5OJ+YYti0fhmlPFk8s2YT8nzpa+oq5Ey\nwAzfYIY9+WV1BPhkZho8iO2bTt2rd5HEJXoep2oyukh5dWRx4islLCmTTvvC\ndxlq2ylhTy5JnLtXl6vkjYDq3QyweurJEH+7rE/CoAXghuBanvkVM0IvWEjk\ndG1LnZbz6tr4Oh85fTYtOoQkVpDX4WM889xNGUy5TsaUHrjlMv+0yOXUn82/\nYXAFMBtipJ0OaJwE0iVJE3OeQRVWB+TmnnXWuQulRhCH1jqgvI3tiUqPar4d\n/QBTUz0jb1A1DuizcBnTKavt0dFnywrOuy83I5R/QSqpXYGL7I8QN2xZB8GI\nRsBy\r\n=Bi2W\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQChiMLoEp509rg8waLg3EyA0DS34NWMp4ySgFZyOByJ6wIgSGjx3mNwVfIQcqfH7+U2DWm8T9yC3bOc2mOStvjH7tM="}]},"maintainers":[{"name":"sprying","email":"sprying.fang@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trusted-cert_0.0.1-4_1586971708491_0.15032759940453677"},"_hasShrinkwrap":false,"deprecated":"conflict witch the latest 1.x"},"0.0.1-5":{"name":"trusted-cert","version":"0.0.1-5","bin":{"trusted-cert":"./cli.js"},"main":"index.js","dependencies":{"commander":"^5.0.0","fs-extra":"^9.0.0","inquirer":"^7.1.0"},"devDependencies":{"standard":"^14.3.3"},"author":{"name":"sprying"},"homepage":"https://github.com/sprying/trusted-cert","repository":{"type":"git","url":"git+https://github.com/sprying/trusted-cert.git"},"gitHead":"b1bb3f09c86509d5bd6cdc3adc4ec09ac99adac6","description":"HTTPS自签名证书工具，是为了解决启动本地HTTPS服务时，需要创建自签名证书但很繁琐有时候查教材很耗时。它提供命令行调用方式，可以做到一键生成自签名证书并添加到macOS钥匙串，后续通过命令行还可以随时查看和管理证书内容，同时它还提供API接口，可以很方便地集成到命令行工具里。","bugs":{"url":"https://github.com/sprying/trusted-cert/issues"},"_id":"trusted-cert@0.0.1-5","_npmVersion":"6.4.1","_nodeVersion":"10.13.0","_npmUser":{"name":"sprying","email":"sprying.fang@gmail.com"},"dist":{"integrity":"sha512-h3T9T9K7k7xCgsumwkd5Wc2pawWTI6xxTlDuGuv7FIpEaM9YMmF1knVKTG40uzEhEcxav/WQ8qh2qyhz7nADmg==","shasum":"2d0862cd9aa8748fd6392427bd7d4ef7b0b07bc1","tarball":"https://registry.npmjs.org/trusted-cert/-/trusted-cert-0.0.1-5.tgz","fileCount":4,"unpackedSize":22558,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJel1ztCRA9TVsSAnZWagAAK5UQAKGc6OnrOiz7X64t56AO\ny6Gn3xC/HPbvzVm55oO4hzh0GuVjmIegVCIJiI5D4aAks5fcGWzBqFm/sTIT\nSKm+Ea6AEJpEiTlYcv1byL15B0zK8stBFCNLmpBcgLbQbatMVSQ5N/rvjSbd\nLkzJNxxDjo8N40olz2fkkQ7YfJfPiruSSJYh6BPAZOj0TcgTy3YAbjLOPVDd\nOGcUaJhopuk8Khhcg1jIJQbaRNHkKTMLzNaVync7S/k7YkzH1Tc69llrLcZT\nGa1bRp+ZKJtYMmuE7i7hvy0xXojCHdFqLV5M3AClI2Y8P2swxNrmp3diLyay\nWlrkVFFerF93PZqOAWXy9fq7AvXjHvek+jw0AfAMp7gDSX+pX+7UPxNm8lMP\nLaCkTaH2c8+7CjToxFht7HziSeOFBX6pofEGAHlaU9aAWZNloDrxcE6Yw7EE\ntg/o9YW13YJDv3xWppMXgme7e4eUdjXrZP+haFBpIa7swF4YTu/jW4nh9v7R\nLgxe9gZXRN+m/RHTzR46XwUsExXh3Ky1w9lT5dryEByzrTQ3KS1dj/tvdE83\nMUdtGVjkWQmZH6cwsGMvOpbzaP3CVCF+5hpqBdReP9K5JB8aSKqPSm4NeheH\nyPvF0Q4KmS8+PQ7mVGHY+zVJUFlpGh6qzG85016mvuccemQNRj7RrxsSU+0j\nJE5A\r\n=Vrvl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH+OEoskX9e/yaIB9bDBlM6xS5bcCadup11RZJJoeZmDAiAe4OweqlBFzHEN9YjnTx6Qg7BVtTavn9X7EwzdPoF4SA=="}]},"maintainers":[{"name":"sprying","email":"sprying.fang@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trusted-cert_0.0.1-5_1586978029339_0.050951023625911196"},"_hasShrinkwrap":false,"deprecated":"conflict witch the latest 1.x"},"0.0.1-6":{"name":"trusted-cert","version":"0.0.1-6","bin":{"trusted-cert":"./cli.js"},"main":"index.js","dependencies":{"commander":"^5.0.0","fs-extra":"^9.0.0","inquirer":"^7.1.0"},"devDependencies":{"standard":"^14.3.3"},"author":{"name":"sprying"},"homepage":"https://github.com/sprying/trusted-cert","repository":{"type":"git","url":"git+https://github.com/sprying/trusted-cert.git"},"gitHead":"287159afa352adcc076eac521367f3c4f5522508","description":"HTTPS自签名证书工具，是为了解决启动本地HTTPS服务时，需要创建自签名证书但很繁琐有时候查教材很耗时。它提供命令行调用方式，可以做到一键生成自签名证书并添加到macOS钥匙串，后续通过命令行还可以随时查看和管理证书内容，同时它还提供API接口，可以很方便地集成到命令行工具里。","bugs":{"url":"https://github.com/sprying/trusted-cert/issues"},"_id":"trusted-cert@0.0.1-6","_npmVersion":"6.4.1","_nodeVersion":"10.13.0","_npmUser":{"name":"sprying","email":"sprying.fang@gmail.com"},"dist":{"integrity":"sha512-hap2B6LgujpyFzJDLZzVc5nE5yTw14H+Bfg8te9KpY5Fb7wgkHekDXda31eTjeWqtLjtUIEFsgyaoZLDHBc8zg==","shasum":"c3b2627485baff04bf14533faaed4e413e59afdd","tarball":"https://registry.npmjs.org/trusted-cert/-/trusted-cert-0.0.1-6.tgz","fileCount":4,"unpackedSize":21378,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJel10yCRA9TVsSAnZWagAA9ckP/3lx9MIeGTnucpuF4+8h\nCzEmkeS11ZurxIJ9WHyRt/7tffRuQfMLGymJuIak7FtxGcPFHwgnO4NZxUXH\n4VST0U1zOAJcZKwCzewB9iQlK/GeyX/o48KJYGvhYvFDlQiu9tFd/xry33V8\nvPSYCrWJimv8rblGZ04Ry7wKz0+Fohqmmby+qYJlNSG8zrY5fyYYTECr9owL\ncMyvR6PduK09pYsGokphRrsB7kGUCczXudhz3UFAtvmQQZeW6/kMZFKxOw/+\n61hEGEnLVpC4CKemG31gWBVMPVLmsG7IUh6AE7YGy0BxBFFyliQm8yPhTZ+3\nCxYjKzdX8bNMG7hmx8qM5Kwo5ZGFsiSg3MUaWHbtHjp72uA8Af2qC18oyRiU\nBYrjIoAzTiWfy2n7oCtCnT/u0X9FV8rzluztKg5xYJlZqF2/UILYZM89YBxB\nGjAaD4KyRDnj/JmVkXhHO3g4mqEJ/RH6UB1WNq9HaeWPaX4mkG7J8IHa4I0H\nNB7dPWOacvcz+OWz2PuQpFPPY6e+qDQ4Q/oPInhnYCKS3/diTDnxrhJB7AVO\nZGsm2u11o5NZbWjTqsShrTHxeg9Wc5n8sAQaTuKyf8ZNbajthwE0HJ/o1es5\nAdFqw8G12+iAZvubIZoyNvwNfBbhYAtEmE6VpDf9uaFqKY66RCQ8EDzKP3sE\njIyD\r\n=cGVi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGd9bqv2ny3c4i9S5tFXKMVnDXRFBbf2hvOMPRTl+5qfAiBxudN67b+Sj2ags0D8u0/UiMvs5Eg+uAEFVcEz0kHAGw=="}]},"maintainers":[{"name":"sprying","email":"sprying.fang@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trusted-cert_0.0.1-6_1586978098071_0.01808503206988754"},"_hasShrinkwrap":false,"deprecated":"conflict witch the latest 1.x"},"0.0.1":{"name":"trusted-cert","version":"0.0.1","bin":{"trusted-cert":"./cli.js"},"main":"index.js","dependencies":{"commander":"^5.0.0","fs-extra":"^9.0.0","inquirer":"^7.1.0"},"devDependencies":{"standard":"^14.3.3"},"author":{"name":"sprying"},"homepage":"https://github.com/sprying/trusted-cert","repository":{"type":"git","url":"git+https://github.com/sprying/trusted-cert.git"},"gitHead":"287159afa352adcc076eac521367f3c4f5522508","description":"HTTPS自签名证书工具，是为了解决启动本地HTTPS服务时，需要创建自签名证书但很繁琐有时候查教材很耗时。它提供命令行调用方式，可以做到一键生成自签名证书并添加到macOS钥匙串，后续通过命令行还可以随时查看和管理证书内容，同时它还提供API接口，可以很方便地集成到命令行工具里。","bugs":{"url":"https://github.com/sprying/trusted-cert/issues"},"_id":"trusted-cert@0.0.1","_npmVersion":"6.4.1","_nodeVersion":"10.13.0","_npmUser":{"name":"sprying","email":"sprying.fang@gmail.com"},"dist":{"integrity":"sha512-XTi6Lsr7s0T5e4lCrN98tlsQD7nMeiGrG9g9BCmsxI6LCdS2Wen3s+NqL6hRT/+7yU/G7CMwuYL4ca5hd9fadA==","shasum":"8b09d4ce3ce9ec11af72975d35ab2d2d456bd2f7","tarball":"https://registry.npmjs.org/trusted-cert/-/trusted-cert-0.0.1.tgz","fileCount":4,"unpackedSize":21376,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJel14wCRA9TVsSAnZWagAAmnkP/iPkyQeH6IDBuFBdbtDJ\naxIMGVz53xlk7C3txyrJqGCWU+KTjUCyxmuMHrqMNh4nfOUy+3gJ5WsVpux6\nA22LQujjMPMxQIWA8TIaAHTHOJ6cWsusn/DO/mOUxOfnCAG7f/Nz1eYRKpJ9\ntoKG4I5aDpldbR/QWpZ9KypiHubXpZz1b4XVkceMtXzuiHoAEUsbjmDp3wcX\nyWsdKkiaOjqyVNfwbzyEelxha8lVsocVM3FsDo9q7aRgaP2LEwrVoIpEQAWz\nAoS0IyZMTZimhzUQBtVDRm5PjBiBrsP/1W1HYR7+jlJXJKTkek3Ty2ua86Bb\nxcdj823xG2nPwMiYF46h0hawH/J3PUF/3B0hjGfnH5idjhbIGja0/9u3dUC8\nQWV21Q0E5HLX6PaUH6h/3acT1G/D/DszioGn4Xrhk3PQN698EELlmIn3YQtl\nlp3NYmD7WFUBVyj0esoqWbYSAifQI9E4IZth58JLUaTF512IOLFm+cRa0s0Z\nhoe3QmHNceHQ4B+cvM1JBp3bktuEWooisom0537lI2BtG+2CtYWx8UfkJcW2\n1num9mSgDWXkNPgjRC2aZxqrs7LJWw1aC/NHQY9uhC4LJecTiCrIU2eqfAkd\nIlMULpmmZcx71Lc7ElCb7LZKfBeD/wRCTzk1DDirCITjVnjptW197Kd/0xkd\n1sC9\r\n=I3it\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDSCVvX0I83IhqIkBc8tZC5ORWtFyXVr6JhtZvbuJbaMAiEAw52dLIh17emoapw4QxwLECjyf6RTTxQCS1oCFBoPmNE="}]},"maintainers":[{"name":"sprying","email":"sprying.fang@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trusted-cert_0.0.1_1586978351800_0.5962519972774303"},"_hasShrinkwrap":false,"deprecated":"conflict witch the latest 1.x"},"0.0.2":{"name":"trusted-cert","version":"0.0.2","description":"A simple library to generate self signed x509 certs","bin":{"trusted-cert":"./cli.js"},"main":"index.js","dependencies":{"commander":"^5.0.0","fs-extra":"^9.0.0","inquirer":"^7.1.0"},"devDependencies":{"standard":"^14.3.3"},"author":{"name":"sprying","email":"sprying.fang@qq.com"},"homepage":"https://github.com/sprying/trusted-cert","repository":{"type":"git","url":"git+https://github.com/sprying/trusted-cert.git"},"bugs":{"url":"https://github.com/sprying/trusted-cert/issues"},"keywords":["x509","certificates","self-signed"],"gitHead":"ce12c212d497ea0e0f5fc4338481547ac409a571","_id":"trusted-cert@0.0.2","_npmVersion":"6.4.1","_nodeVersion":"10.13.0","_npmUser":{"name":"sprying","email":"sprying.fang@gmail.com"},"dist":{"integrity":"sha512-C3BWevXu2MTkYknnUz6LwgmUYl+XG1L3WRcmHLix9tBGuaPKz/b7DQzDX9e209Pt4UIcCk3H2h5+hwlfpEdSdQ==","shasum":"ffe012f5d8bd61da39e5d84a8290281f13163b35","tarball":"https://registry.npmjs.org/trusted-cert/-/trusted-cert-0.0.2.tgz","fileCount":4,"unpackedSize":21633,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJep6YVCRA9TVsSAnZWagAAEIkP/jeYQ1Nyxr4JvbF06+2m\nD4i2WskrNkUrk6oWzNoApgsrqbeXWk+CmFLoGqQ9xzM50KyGdZtYc0DWmFQn\n80DIYySMDN5D6kSDxwMTQVs+Eshl0uWyrBiLm94vftMGj5+SloOPnwLvfOOb\nXl80cqex4NVOOy9EB6OThN5aCH2SfoE0VaTLD1a/YNr3BNfxf3zcd9rFX8/z\n7I32ydQ+MBV3GsIDSjoIGk9lf2sTbc6nMO7n68pEjAVsK1Qpldnv77Zp9UtG\n5F/xnwvqp1O7x3j1SDBT2j3b6QagP4fgkShWso3DNtOTSUVYy96Npjn8nz0v\na1WUCWnWTAaZpURCFS22ENwD0YpZXxMtdeAxmSJk5ggwqp87rmAgfbHw2W0n\n22dNzj3lf7Ug7pPhXwtSoU8tR7RE3ujWshEI17zQw5bAOzqqYq7wRGXjRkip\ncF5HZnCxia5AoExbMHPC9ORtMi/hQmjKdsWYhJv8bCipjrtPdRWRPRJtR0d0\nU/ArhDAvn4USuhNJr3GE9x2tH5NhTeIWYRoBgJFZwTEk8sTqGwHLZCi+npwj\nhHTMzZUzFT1gqY1jx7PlBWIxP6YwW+b2RDQuU+uIEA4yYaInPUKDkr8tk/Q/\nFzp+cFF4hX2M81PfVjY1hJBBkkd0zZZjkLDQEo7jWQ/38kQxe+n3HPwGbj49\nYVfT\r\n=sFdI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC19s+BS4CPdYgoTXDBn/N9hAPHK9/UYCniPK0haOHZPQIgPwFb+eQeLM/HDFW85to5b/MLhkxH26rC90ZS5WVdG4o="}]},"maintainers":[{"name":"sprying","email":"sprying.fang@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trusted-cert_0.0.2_1588045332681_0.10870699257018135"},"_hasShrinkwrap":false,"deprecated":"conflict witch the latest 1.x"},"1.0.0-1":{"name":"trusted-cert","version":"1.0.0-1","description":"A simple tool to generate self signed x509 certificate","bin":{"trusted-cert":"./cli.js"},"main":"index.js","dependencies":{"commander":"^5.0.0","fs-extra":"^9.0.0","inquirer":"^7.1.0"},"devDependencies":{"standard":"^14.3.3"},"author":{"name":"sprying","email":"sprying.fang@qq.com"},"homepage":"https://github.com/sprying/trusted-cert/README.md","repository":{"type":"git","url":"git+https://github.com/sprying/trusted-cert.git"},"bugs":{"url":"https://github.com/sprying/trusted-cert/issues"},"keywords":["x509","certificate","certificates","self-signed","self-signing","credential","credentials","keychain","ssl","openssl","trust store","ca"],"gitHead":"3e860b35a3fdb4c69a441b404edfc5f2196179ed","_id":"trusted-cert@1.0.0-1","_npmVersion":"6.4.1","_nodeVersion":"10.13.0","_npmUser":{"name":"sprying","email":"sprying.fang@gmail.com"},"dist":{"integrity":"sha512-/WIOSBTniOX0IVh9ehWDN9VkZbGSn2w+sZWcTVrT+uPf8mwDE7vxmPaVVORBftFwZNoLbOLWAtbgW+PctrkPIA==","shasum":"180f5ccf4084591f5e9bf294daab7c99d5213d1e","tarball":"https://registry.npmjs.org/trusted-cert/-/trusted-cert-1.0.0-1.tgz","fileCount":6,"unpackedSize":23208,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfChsKCRA9TVsSAnZWagAAB44QAIelu3KjpAogtMg0nEhF\nK2jxivJDAc7m3itiMZnBbUjv3FtDPkne5ehBV98a3018JFnCJYfHu93jg8wa\n3+SX4+9owV1vYXP1bi7s7KJ5iUzfhBZmgd9B30WLgnmsDXnJ+bOYFrfoimMN\nrEKKBRpfUoiR2BwJRrr6300mfSuGqOi5gxJ9rfjU48dBA/rkISLP8XqYwEZ7\ntKcK+BeLmDaqtaHu9U0O7LAAFWvQzhRkE2DhVApm4bHidaL+224e96y98zuz\nPRvbU1rgJLXziyctffauMO2hU5w1mXooERKfUpPpgo+7U52QBIdxCBX0CTOE\nTC9npTHPX0ANKC4qkAsQrKsy5tYG3kqerZCGtbnyd5IajgbkP2LXtNpYpGVw\nPYnHGq2sSSag9nbPRYPlZHaPNyj7M8d69+QfoHe9g33GDz0roDh/3xZ6uKBR\niXOWcXoUKP9NksJnxY7BKWxbA19B4AWBj3PEOTtlrmIVh+2oIEOZu+l+LR6d\n1XA9n/Meh2xaUsyc5nIRc543/oPtybeS/vSBxgLZg1YyIdLbwEGkGZSxWoeZ\nygOrgyOmCsQ8qxH68k/+P81ScFZL/v9030IB1twgdCaWoio9l5ftfBxeddYm\nLCos8a6Zx7T5NlPySNifnvaFxXIgrvnpW3p5df9N02PBKchowI/y1jEn9cUq\nbEpo\r\n=/EZb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEmdGOnLEQWxXDWkR9LemCOXwYbTZeSnKys/1P0mME4DAiBfrw6XQUtxqU2C1AbUrn/DXQs2Z+aD8wYl9Jau5ckmKw=="}]},"maintainers":[{"name":"sprying","email":"sprying.fang@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trusted-cert_1.0.0-1_1594497802006_0.6974853882698839"},"_hasShrinkwrap":false,"deprecated":"conflict witch the latest 1.x"},"1.0.0-2":{"name":"trusted-cert","version":"1.0.0-2","description":"A simple tool to generate self signed x509 certificate","bin":{"trusted-cert":"./cli.js"},"main":"index.js","dependencies":{"commander":"^5.0.0","fs-extra":"^9.0.0","inquirer":"^7.1.0"},"devDependencies":{"standard":"^14.3.3"},"author":{"name":"sprying","email":"sprying.fang@qq.com"},"homepage":"https://github.com/sprying/trusted-cert/README.md","repository":{"type":"git","url":"git+https://github.com/sprying/trusted-cert.git"},"bugs":{"url":"https://github.com/sprying/trusted-cert/issues"},"keywords":["x509","certificate","certificates","self-signed","self-signing","credential","credentials","keychain","ssl","openssl","trust store","ca"],"gitHead":"d0aba14b990927b83ea313a006fb8c827a4ee7e7","_id":"trusted-cert@1.0.0-2","_npmVersion":"6.4.1","_nodeVersion":"10.13.0","_npmUser":{"name":"sprying","email":"sprying.fang@gmail.com"},"dist":{"integrity":"sha512-n2TyLP3f2Pn7BF6gVDTqrfLjQzHAnNX0V4G0foPkVxU90Uyp21NrPDVxxrqOHVbflbZM7HeXMWkbmQSKoKIzmA==","shasum":"c005dc7cdad9db9bd3cd0460dcacb182e6aae177","tarball":"https://registry.npmjs.org/trusted-cert/-/trusted-cert-1.0.0-2.tgz","fileCount":11,"unpackedSize":29179,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfCiD5CRA9TVsSAnZWagAACkAQAJJ6RDRBTMjCRPeo41wk\n62q6LYS5/Wt9pPy6olfVCeIdRMBGNcU0ZMBfMAQ6WZW1eLxN+s5AxoLmIqqV\nBbEBM4tFU1dMW/TreInfY7DYIAsSq4obRlh72UqI8Ji5RieEg9kP0/aUoOyl\nGLrRtawYmp2lNvXukgBMVN0NFJAO3XBGMQOGSVM2nLw/BONOgerP0rgpSqCj\n4ZoZrHM9ogqFfmASDabAqY888j1y2BjIPKYIMegLbZwzpPn5n9BBeWz0zeB0\nE4O2yRKGW38kZtFcSDGk90YtEXET3MS2/IiEofAwRfVHj9CutjWYn1VFHh2q\nsEY21uQ8zHJ/ZbJycY2QSV1j4g431zjSFrRloQfAifhaXBtJrKmtvuvgEXoP\nls4GFjToozthZO77kn0N3pYjbOI6XVYokwiz8+f2OrIm+Q+ilzZgw0M1gpMT\nMdRd3MuBafpbgXyf+JP9xuMulkz26cA9KEBFVAPtTISLqTY2+vstYU63+FjO\nzDMFmi7kMAjgblMYF3TRD1vTEWuDZPDbypjWEu1jexFDnJJhMltdG00bcdva\nWzYALSxqYtNOf7E2bKYhsa3CxaqufbWTX0w7JMqN0JJO1L7aWHdPJfdIxQtw\n3CJOA8m9eO5TSwQb+x4UJ2RO8AbXvQeYh6lU+clKb0u5klu3ewq+xa6EUuZ9\nAfAe\r\n=4oMs\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHEJp7Z0UTms3tlBb7BRrwyGQ4f7NkBOADVQ5rdsok5qAiB3rl57lnbiotrUa9DesRqDnP2yrdEScAqJmSGnmwVNkA=="}]},"maintainers":[{"name":"sprying","email":"sprying.fang@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trusted-cert_1.0.0-2_1594499321017_0.7879486121244932"},"_hasShrinkwrap":false,"deprecated":"conflict witch the latest 1.x"},"1.0.0-3":{"name":"trusted-cert","version":"1.0.0-3","description":"A simple tool to generate self signed x509 certificate","bin":{"trusted-cert":"./cli.js"},"main":"index.js","dependencies":{"commander":"^5.0.0","fs-extra":"^9.0.0","inquirer":"^7.1.0"},"devDependencies":{"standard":"^14.3.3"},"author":{"name":"sprying","email":"sprying.fang@qq.com"},"homepage":"https://github.com/sprying/trusted-cert/README.md","repository":{"type":"git","url":"git+https://github.com/sprying/trusted-cert.git"},"bugs":{"url":"https://github.com/sprying/trusted-cert/issues"},"keywords":["x509","certificate","certificates","self-signed","self-signing","credential","credentials","keychain","ssl","openssl","trust store","ca"],"gitHead":"3daba8a77790e5730ed0a1add62fadc42d60180d","_id":"trusted-cert@1.0.0-3","_npmVersion":"6.4.1","_nodeVersion":"10.13.0","_npmUser":{"name":"sprying","email":"sprying.fang@gmail.com"},"dist":{"integrity":"sha512-cWFzP0Tyb8RPMvLHey0lmubzuPbNF5p2G04NHSiw10b7YSZRqVL0W66exnt9pUBgzSXu2werPWqsKJObDV9E7g==","shasum":"f315d5a96877e44e8de28707fd0f4ebaa65bcb0f","tarball":"https://registry.npmjs.org/trusted-cert/-/trusted-cert-1.0.0-3.tgz","fileCount":11,"unpackedSize":29252,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfCiNvCRA9TVsSAnZWagAApvsP/15LdzgxKt3snvdC96yQ\nWO0w9qExbRxMo/S9opg4CQQj0bIS2wY2L37+fWLUespIuzaJhOdhOCfaEfnr\np1EHmA5VJz8LcljJm/ldOuqDlLizmK85Uy9Thcqs6W/oqkcx5GmLoliQLfcP\nAf6+JedhS/SvBBZ2JPhEyaFzGmc7HpvV8/sRlZ326Mqihq3Q15VM1svcoyG0\nV+2gheXt6ifxQ2Ky6oHD9BCCNqVWsemZ2gG0HMPu70NQGf10qjD0PrNawavs\nAXkUmRF8n049EBs2NkRoNWCX+jv0wqmahmSDIaOSFMOb1gcdSYa/HPE47qXO\nkfKgEQUcvQnFQ24moBxHDBQZhht8gfz6iJ5HwdcS19ZtEOKW4QC8G144y79T\nJaNMZ+OHoe6xLFIFS2/7QYULbLhvcH6gUpvSwjjcPra7KSIr6g3Dz0nLIDHv\ncA3dpqEgrmacLFfcYHxsEj72eaeSfjY/jaIg5PcE/yEIelbF5QOCA6qL2Yok\nBH3G0WZVlu2ys1eFPl36gJXDHowpzPHdyX3a2oEJ3oFV3BDpj6XJtO2cu6+c\nYb2KPEBnsHfPVY/KEJJg5EQRU0+4zHTbt3WVV9ligMlS0RKcTINEMzqUSbEc\nFbHbMgN27Xi3KvsawNKO1fggjjPzrKDR1FyfR+xnDjyeLoj6vnQKfWEFvCS6\nYZsh\r\n=dx4b\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC5jESCKKtXSUk9S2Iyk+8ImJmtLZGpqvBXk0n6JHLrDAiBsV+QGeyIDsB69dPg7YpFnVBQy8Zd2GEH65o5PcP2ojA=="}]},"maintainers":[{"name":"sprying","email":"sprying.fang@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trusted-cert_1.0.0-3_1594499950526_0.7317982941102386"},"_hasShrinkwrap":false,"deprecated":"conflict witch the latest 1.x"},"1.0.0-4":{"name":"trusted-cert","version":"1.0.0-4","description":"A simple tool to generate self signed x509 certificate","bin":{"trusted-cert":"./cli.js"},"main":"index.js","dependencies":{"application-config-path":"^0.1.0","commander":"^5.0.0","fs-extra":"^9.0.0","inquirer":"^7.1.0"},"devDependencies":{"standard":"^14.3.3"},"author":{"name":"sprying","email":"sprying.fang@qq.com"},"homepage":"https://github.com/sprying/trusted-cert/README.md","repository":{"type":"git","url":"git+https://github.com/sprying/trusted-cert.git"},"bugs":{"url":"https://github.com/sprying/trusted-cert/issues"},"keywords":["x509","certificate","certificates","self-signed","self-signing","credential","credentials","keychain","ssl","openssl","trust store","ca"],"gitHead":"81c03c7e2412e75fea81b43bd9c5fe4b633b5a54","_id":"trusted-cert@1.0.0-4","_npmVersion":"6.4.1","_nodeVersion":"10.13.0","_npmUser":{"name":"sprying","email":"sprying.fang@gmail.com"},"dist":{"integrity":"sha512-Xaolk3VoyUmauyYkl/C6aiG3hES0qkEIUQvFLrQvY425NwoKKvQkihWXxH1xiE8NOabCbYyZ1WT/7bSWQaypbA==","shasum":"2d213c899e714a560abd67f060697f8c9f1f9825","tarball":"https://registry.npmjs.org/trusted-cert/-/trusted-cert-1.0.0-4.tgz","fileCount":11,"unpackedSize":29431,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfCibqCRA9TVsSAnZWagAAbPgP/3zEcjZ7jv8fz+Xx+hUw\nh/O6ZxH3mGCyVM69vpNWxbZUvGxIaPXa5o+GHi12TIHNTOBgh8bNxNtRLcH3\nwYs1ZWQfAGObRBb/kfdvmEYX2SV8KiH1zcieP8bNmvW1nJpWUFD3hp0YH0e7\nqTDS1nrbr81J4rT7DMnaa8tj3IfMBeXRh1KuemYhd/NsP35BmJ8XKxnmPL7S\nHnbEXe8IwG8MZqfg5SrHX/Cc5Fx4vWFAtYefBkElAPL7WQOQHtQ0Bvuzj0KH\n8dNOFdOjwgLVsI7TOqkohDuEbNDwZUqJsYruO/CUL1G+yxFGxXOAmGHmZgwi\nTg0Y7lbVJzI1Oj9Plv63iPepoTQeUKcLhGKEQ0FCtFbWVqeijBAFPb2ng04X\ngTzipK+3BXjQCuGTda8HdrzBfFv3NmLDb48t/PN6AUOzT3is4YEKnsD4wFVW\nWo+KY7dytEb/zxi16wgyKK+pTXjRcyqfqc72rsT29Q00fVzkAochQQcu3Dwd\ncoHequ6vK0+HfNlg57YrFpofEqLPwmXT7hscBXtzQ0p7ChkVkRs/GHr0iFsY\nhFLriEBzGDJH7EqLQAZSBXg4R92nuJl9gGVtyJi1deIJPugZmnsHUEq3RbtZ\nR60alfmNb+l0P9IFzHd3YPPaBMsHRzhMqltosMwOS3VpwPkI9I1cfElqHZtw\nNsiP\r\n=DGyT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEW5DGXVdD4cYjDkPAaO1DPebL9I89W/QEVGVkSC9hMoAiEAp8Mu7fuXsf6Ggo+q0IvOyBoPYEStZYTbfUhXgjPxN54="}]},"maintainers":[{"name":"sprying","email":"sprying.fang@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trusted-cert_1.0.0-4_1594500842048_0.03682340404627826"},"_hasShrinkwrap":false,"deprecated":"conflict witch the latest 1.x"},"1.0.0-5":{"name":"trusted-cert","version":"1.0.0-5","description":"A simple tool to generate self signed x509 certificate","bin":{"trusted-cert":"./cli.js"},"main":"index.js","dependencies":{"application-config-path":"^0.1.0","command-exists":"^1.2.9","commander":"^5.0.0","fs-extra":"^9.0.0","inquirer":"^7.1.0"},"devDependencies":{"standard":"^14.3.3"},"author":{"name":"sprying","email":"sprying.fang@qq.com"},"homepage":"https://github.com/sprying/trusted-cert/README.md","repository":{"type":"git","url":"git+https://github.com/sprying/trusted-cert.git"},"bugs":{"url":"https://github.com/sprying/trusted-cert/issues"},"keywords":["x509","certificate","certificates","self-signed","self-signing","credential","credentials","keychain","ssl","openssl","trust store","ca"],"gitHead":"baba68df3c258394e21e5c84361564e977637acc","_id":"trusted-cert@1.0.0-5","_npmVersion":"6.4.1","_nodeVersion":"10.13.0","_npmUser":{"name":"sprying","email":"sprying.fang@gmail.com"},"dist":{"integrity":"sha512-2qAXcKVqUb3maM+pltYCpkfTo160nfdNzRNVF3xmJVLRentLGA7Jycu7Xjn7swaFIzkUZy/Sum9afncWefQh+g==","shasum":"11fb85f53679937a90cd52f4c60d0888315a38e4","tarball":"https://registry.npmjs.org/trusted-cert/-/trusted-cert-1.0.0-5.tgz","fileCount":11,"unpackedSize":29706,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfCi8XCRA9TVsSAnZWagAA8MsP/An4edq16UTJm+9QTwu1\nwQslMDvnfFGnJenB0Tq+g886UFIGRRRqQfUH0GjvVL2ymtGr/T7Cop0IaSIQ\nig6SITJ1QX3GV+nZMLUulu2squeme9rJpgtfZgE4b+woka9B6zfbe1IE2N5/\nErqZM9bgpof8VWUnyY5OIHcX8LkijKhX20XKYEolumYV2XCUvvex17r4P2NE\naTvMW6ynHb1y7R9FB3yG09WZBTA5R2sHSlyIYBxRkafUEaI66lD/olP0jdFM\nuBlNAkdjOR0stsMqh8Y7lBa5dfm0++wTuz/xhyIFXngWmtkk0/Z/p8LeaJBW\n6i/L+PNLJ4VyANjg7rduovfKEkt+DTO2hs7+eCGhFsGQkVPBGUEidiHH5/+u\nvgUk0L6VurY2g9VM2Yu/xCuePIe6o/y4aoVd7GzWIxPO4UD0NJEWL2f3gUE6\noJzOdf157CPy1HmHiSETKSW+3sht8gk6LguwjFV5DQXvj+Nshi23tLXbJp9x\n+WDCUefT8iUeoiFoOOYYK/oWkQ8z25shhSljbOx/yCeAAkQ2g6F4mUpfynYL\nmhyHhO3J+PnVNj8UKw61JvtL0iz20Yn+iOns1YXHYDySd4AyLgChufkuxKAW\n7u/MIkVm5lOStzVjNNKvHnIigxuUwCqhQiJlYlbf1k+0Padsz5Bq19/v0oAw\nQ19Y\r\n=695C\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICHejmuHAQ9KnU9b36QPDFeeKCE+1a6ep/Edld+9KWovAiAq4xNxJimwGNL+g1ThHeN2r5qiH5L6cKLIOMiKRFmsJw=="}]},"maintainers":[{"name":"sprying","email":"sprying.fang@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trusted-cert_1.0.0-5_1594502935176_0.3820921757224136"},"_hasShrinkwrap":false,"deprecated":"conflict witch the latest 1.x"},"1.0.0-6":{"name":"trusted-cert","version":"1.0.0-6","description":"A simple tool to generate self signed x509 certificate","bin":{"trusted-cert":"./cli.js"},"main":"index.js","dependencies":{"application-config-path":"^0.1.0","command-exists":"^1.2.9","commander":"^5.0.0","fs-extra":"^9.0.0","inquirer":"^7.1.0"},"devDependencies":{"standard":"^14.3.3"},"author":{"name":"sprying","email":"sprying.fang@qq.com"},"homepage":"https://github.com/sprying/trusted-cert/README.md","repository":{"type":"git","url":"git+https://github.com/sprying/trusted-cert.git"},"bugs":{"url":"https://github.com/sprying/trusted-cert/issues"},"keywords":["x509","certificate","certificates","self-signed","self-signing","credential","credentials","keychain","ssl","openssl","trust store","ca"],"gitHead":"c26df0981a7eef6b9e098a84974d10735e252ad7","_id":"trusted-cert@1.0.0-6","_npmVersion":"6.4.1","_nodeVersion":"10.13.0","_npmUser":{"name":"sprying","email":"sprying.fang@gmail.com"},"dist":{"integrity":"sha512-VokuuB/j6E5d6fkmwF2BmVE/OqlyImpmb2j4xBS+F3LaGCjQZvT9XSK4vtq7u4KSqq3E043LEYVIPd98nEfCWA==","shasum":"0aaf386d94eb7960c98db578303ba8cdf11a5c68","tarball":"https://registry.npmjs.org/trusted-cert/-/trusted-cert-1.0.0-6.tgz","fileCount":11,"unpackedSize":29768,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfCjiNCRA9TVsSAnZWagAABc0P/iYBiegNkqz6A1HQV5Va\nQUGHdl42eaNNO3VzKRfSxtsMqIqGstaPMpl4Iz0kMfVIk0XizSlhQSaq4ID2\nsHFnjuxtHYOzheBPdrzKhP6o3UhztzO8VXLiv1u9pBLgmQf7ffXfXpeCTtMY\nV39UDM02qbToF31Jx3Io7mr/xSqZrUMwayu0xFMRB2Dt9o86iQYbFmEQ2bns\nFGMarEpwyoq0gVsqecOgsMxGDcdaOCyFHh9KklXC4A53fGB7FgNGSPyJU7S0\nJxQ9C5yrqEp8B81AMGGRzfgCUV5sbt15vPcUgvFHVi3kvaIBCFRbBo4ZNBpL\n2PT6leKiosWnniXDIbehmegq1HjAW3b52ksFubbZXgprlvilB3XX69ZwB48p\nZZs3mIHlbOzhBTUWW8XwQebmItrOQ5f7Fmp6esAL0mUFA3vkRFj9o9ggbYhY\nX19oRNlrEsyeiPx/rEZEbn83+Y5yF8KZ5G9BvVOIJGae2Z9mU9oiVD4G6SvC\n/3hAfHBgIqwfaXj68EqFMmMc0Ri5C+J6lshxyqrj3/rBS4aOKSSZj7HLw2qk\nbmH6FUitmMjr6W3TnxWbkPDliqOmgqxDcgmYRATioW22DAAjTrxpaZQlaEG3\nD8+FKec5aX4C7/HYVTMXWtcT9Bj6DgsfwIQfH+4SHg9rGhB/tJ5gbJ+AZTRC\nIo0z\r\n=tgsM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC07tL6Gw73gjwFXeNHm8pEYGDLZp3+n2GboKgrDqGwVAIgdHQx9o6OyPka7c0etREbfcpobi77kUWP8U/3w2iCmFg="}]},"maintainers":[{"name":"sprying","email":"sprying.fang@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trusted-cert_1.0.0-6_1594505356932_0.7365078202963582"},"_hasShrinkwrap":false,"deprecated":"conflict witch the latest 1.x"},"1.0.0-7":{"name":"trusted-cert","version":"1.0.0-7","description":"A simple tool to generate self signed x509 certificate","bin":{"trusted-cert":"./cli.js"},"main":"index.js","dependencies":{"application-config-path":"^0.1.0","command-exists":"^1.2.9","commander":"^5.0.0","fs-extra":"^9.0.0","inquirer":"^7.1.0"},"devDependencies":{"standard":"^14.3.3"},"author":{"name":"sprying","email":"sprying.fang@qq.com"},"homepage":"https://github.com/sprying/trusted-cert/README.md","repository":{"type":"git","url":"git+https://github.com/sprying/trusted-cert.git"},"bugs":{"url":"https://github.com/sprying/trusted-cert/issues"},"keywords":["x509","certificate","certificates","self-signed","self-signing","credential","credentials","keychain","ssl","openssl","trust store","ca"],"gitHead":"b32245b8543162749a90dc950aa56312d5d6fff0","_id":"trusted-cert@1.0.0-7","_npmVersion":"6.4.1","_nodeVersion":"10.13.0","_npmUser":{"name":"sprying","email":"sprying.fang@gmail.com"},"dist":{"integrity":"sha512-wDkmae8zA/N/Ylj7mAIdr9wyG9MuMVfy3/88+x2tC9/PIxjIFJiV+RMSKF+lzT8qAwHI9r50lQF+teUd1E4mkg==","shasum":"5e4ce0e91d1f754220d915e74f111522a84a8d99","tarball":"https://registry.npmjs.org/trusted-cert/-/trusted-cert-1.0.0-7.tgz","fileCount":11,"unpackedSize":29756,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfCoPgCRA9TVsSAnZWagAAn24P/0BcqSppSjBIMQc2beOL\n/AA3Vi/zVxPAL3xNKQ7GUFDDl8v78n5IOnkehk2hQRAldQfT8AL+l1VBXIF+\nUt0RbKCQgJN+5eUTDup0BON8G2+Vx179GULdghflkVfJDDB0nyy/exEARE4F\nnA4bfaVSldaqwRe2KFhvQLtdDYOQD1zv0vs7bKCWqdGvMBZVlnyV4mszme8B\nhTbGE7tiBoyrtuwEBjGxA32VsHDwWgByY2WSG/Tjei2DA6GVitHlKBYWqrdv\nECXtAOGarmnOnyU9P3FZG0w1LgBuS0xtrBz8A428Hp5+gY4hG13IEFSSt7gA\nWgL6xYuj6a9DxIVdGaR+nVDFyNU33NBz7cuMzIwmGU5aml9WzAgz77mTzUuL\nvZxmCEEaAb1AMq2oX50D5aswZXSb8khtdIpAAMA+/MxoAgydWIvNmy5IPStd\n4QbvDxfwm2zoOUFPnFBE3CcurhzxQo/s79rbe5t69cqT8usC53ENgM0dozZs\n2OnH2/JEezq0cL8Z0RwrmvwsX9c4owRB6kiFo5xZhRlxG7uCXFAj2/7cblvl\nQ84+PrhzZ1Msy12ZWry+T9FxF1ONMzwRigsOyV/WPFbIinrmde6gduQEpXJU\n07+H/Pz1a9xbTToqfWCnNj6v4Sb6Y2BYpQVYsMXjQ7Myta+IugAelCQ42S9k\no41u\r\n=3XkP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCdNqf8VBYdNq65108liuQ97uYtPENU362nJY5r3/Bs9AIhALT6hpSdAuHaFulzKV4q1WRd4DRB3ZqoPmX2fXAKMC0P"}]},"maintainers":[{"name":"sprying","email":"sprying.fang@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trusted-cert_1.0.0-7_1594524640347_0.5389764086484079"},"_hasShrinkwrap":false,"deprecated":"conflict witch the latest 1.x"},"1.0.0-8":{"name":"trusted-cert","version":"1.0.0-8","description":"A simple tool to generate self signed x509 certificate","bin":{"trusted-cert":"./cli.js"},"main":"index.js","dependencies":{"application-config-path":"^0.1.0","command-exists":"^1.2.9","commander":"^5.0.0","fs-extra":"^9.0.0","inquirer":"^7.1.0"},"devDependencies":{"standard":"^14.3.3"},"author":{"name":"sprying","email":"sprying.fang@qq.com"},"homepage":"https://github.com/sprying/trusted-cert/README.md","repository":{"type":"git","url":"git+https://github.com/sprying/trusted-cert.git"},"bugs":{"url":"https://github.com/sprying/trusted-cert/issues"},"keywords":["x509","certificate","certificates","self-signed","self-signing","credential","credentials","keychain","ssl","openssl","trust store","ca"],"gitHead":"8a7d73f5f169e134e04c82a38dd60116173eb560","_id":"trusted-cert@1.0.0-8","_npmVersion":"6.4.1","_nodeVersion":"10.13.0","_npmUser":{"name":"sprying","email":"sprying.fang@gmail.com"},"dist":{"integrity":"sha512-wqsjmsIxVK5R4qA2Nix4YGyrqkAhMchCmS8JYPsIm9lFfuOnkNxgc9GUgJ8yXnluGNtxKf+xXqrGQEBDlWe+ZA==","shasum":"273a508b79512ee05fdf98769f4e6e37d87fb925","tarball":"https://registry.npmjs.org/trusted-cert/-/trusted-cert-1.0.0-8.tgz","fileCount":11,"unpackedSize":30087,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfCoVECRA9TVsSAnZWagAAP8AP/Ro8+7IR+QsvlFMryz7R\ntUvplJhWFmp5CKyBF0g5VZ1QlCG56gNvWDnFxBHIPE53W/XicUkJejsrcYyX\nAvUOplVI0zXqaBc22SJn+q+rEP6TZrt7ACHYq1aSY7XzGUZrq4cqJ3wWS8Qt\nEdwANBuObb3PazDzvcr3YFwQM87zQkI/6yJYnCH3opjvrJNGki50x7JSAu6k\n7IV6yo58KImnsyclpyptTREqhCx8lhfNtrARTWAast3FYfKOXJn7GtKuChBm\n/W6mI/wqe0KNRyvbb0Jtn/ATXbnVRLI/41dTp3JdHYJfgRCe31IfVfeQXpml\nm/CwwJzjBN/Ul8NaViznp2DSJSlsL6/Hecl0YLECemHpP91Radm77riP3HV2\nLY6mfH3Bod+1E72Zoj3oolVVnJHRnea8iMh7XiB38Qhonsb868RXAFRStnh3\nsZpai7AqHdd9RiYlLUQZ5ukE5PzDjxcu7t8bFeuIGvxOlaWHfZy4PM8XtHSP\n220YJBpQJBBe6g+WGYkmQqFnhTe1OCvNiZ0curixtYmH/VMWhzhuG54rXb7h\nyw25xq5/u25u8l4C1ntTzNjxHJRyJYjv4cGUBURKAOwC9o7crZPxNiwS7iif\nvxRgmY4/7pXWtkcy7lFvzOjA+A7nuDfZDMsRUG13QWcA7bRntDwUWdo/PO7V\nzgZO\r\n=XbxJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCqdlanaympGWNb5oC8LCeba9FpGbphmy5S+3kJpy/iawIhANvBGw8GtX4B2u2Vd9tf6D7u1kLid1DtQTIPJze48Sw/"}]},"maintainers":[{"name":"sprying","email":"sprying.fang@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trusted-cert_1.0.0-8_1594524996386_0.8309377694335003"},"_hasShrinkwrap":false,"deprecated":"conflict witch the latest 1.x"},"1.0.0-9":{"name":"trusted-cert","version":"1.0.0-9","description":"A simple tool to generate self signed x509 certificate","bin":{"trusted-cert":"./cli.js"},"main":"index.js","dependencies":{"application-config-path":"^0.1.0","command-exists":"^1.2.9","commander":"^5.0.0","fs-extra":"^9.0.0","inquirer":"^7.1.0"},"devDependencies":{"standard":"^14.3.3"},"author":{"name":"sprying","email":"sprying.fang@qq.com"},"homepage":"https://github.com/sprying/trusted-cert/README.md","repository":{"type":"git","url":"git+https://github.com/sprying/trusted-cert.git"},"bugs":{"url":"https://github.com/sprying/trusted-cert/issues"},"keywords":["ssl","openssl","certificate","trust store","x509","certificates","self-signed","self-signing","credential","credentials","keychain","ca"],"gitHead":"1982afaa76e29feff161b402b6557d9550c978ab","_id":"trusted-cert@1.0.0-9","_npmVersion":"6.4.1","_nodeVersion":"10.13.0","_npmUser":{"name":"sprying","email":"sprying.fang@gmail.com"},"dist":{"integrity":"sha512-Hu8BPxxTBPvow1BELSvhfyjlBLDnwt8LCfpXpDQRTHssEzyo45EGobGMHGfIlc/XsvgaD+jrplkmKLvRRtqqVw==","shasum":"9b34f8fa90ce5a64fef76a9fe040355481034864","tarball":"https://registry.npmjs.org/trusted-cert/-/trusted-cert-1.0.0-9.tgz","fileCount":11,"unpackedSize":30980,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfCtJFCRA9TVsSAnZWagAAQVAP/Rb6QtncdZ/hJUxfX5Hq\nrch2P4VHXZGpn/y+w4xMW320hAMbMgqEwKBNFEBhnSs4J7iUcaKBdQRhykWK\nG0reCYDZqVK1Rz/WgvmPW2uQLV6xUaS70w2i32lUddKgLg11cKUC1ihJWrBi\nDLTZjZTsJJRXNJ/alc9DIjXwSEBomfRA9HEO9gH40N9JsfBCVqarMPr15q/B\neTcgzzzgCBEpbCm0++U9vZPaxKr43Vi5o+2QpnDT+ap868n3OInXIvgtBc+k\nfw9LwjOjB+zmM6vayNGPnPGiHc6OLJxDDiNVuwVF+FEwwxIVjRxhKpprLjfv\nw7Pg1RMeVyWizUmHX5TnNmeNkCD8MkD139dofaNCQmtLOLZEAJ5nt81AlCCi\nFuwGLWCGA/poq3VnMSRi7466I+dGeq05A4+xyOL822eWCuuOH20s8wy4C5Xl\n6AMgwB5TBNDos9Jg6XeVcD8wjv+06dA9zgfq4rFQqiEOeY46BWmGuw3ag0bv\nD3VzewKZj/bm1twWHookmemoXuXgwbGvIOKGAe4i1I/IpvBJzi+aIGohZcAZ\nyJVsj6JX2G1VCPQFcHFZ4cMPXYsNqS4UVsiBQTg3UIe9MHx9hZgwzdulCl3E\n9YHT/kOXWsPeNrQxhtVudbsn+d3/g/qWv1jaSN0P2T4RpJDv3JZpZbKS7mup\nV583\r\n=wp+o\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCQv6PoDG3h1uS7gU4PsTurD+jkOdZVmQE2FG2qwLMgigIhAKjNzGtwcmgbOi+m30BVm2cTqUKY1By3On4F985xidQs"}]},"maintainers":[{"name":"sprying","email":"sprying.fang@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trusted-cert_1.0.0-9_1594544709122_0.7198159394644581"},"_hasShrinkwrap":false,"deprecated":"conflict witch the latest 1.x"},"1.0.0-10":{"name":"trusted-cert","version":"1.0.0-10","description":"A simple tool to generate self signed x509 certificate","bin":{"trusted-cert":"./cli.js"},"main":"index.js","dependencies":{"application-config-path":"^0.1.0","command-exists":"^1.2.9","commander":"^5.0.0","fs-extra":"^9.0.0","inquirer":"^7.1.0"},"devDependencies":{"standard":"^14.3.3"},"author":{"name":"sprying","email":"sprying.fang@qq.com"},"homepage":"https://github.com/sprying/trusted-cert/README.md","repository":{"type":"git","url":"git+https://github.com/sprying/trusted-cert.git"},"bugs":{"url":"https://github.com/sprying/trusted-cert/issues"},"keywords":["ssl","openssl","certificate","trust store","x509","certificates","self-signed","self-signing","credential","credentials","keychain","ca"],"gitHead":"30c4d6edf22bb25dd3a0bbcee825d25dc53d9387","_id":"trusted-cert@1.0.0-10","_npmVersion":"6.4.1","_nodeVersion":"10.13.0","_npmUser":{"name":"sprying","email":"sprying.fang@gmail.com"},"dist":{"integrity":"sha512-kAbTfaoqEJrV+pRssjjDxd5VD0ts9A2H0me+MSGtsRQReVa5HXKhUXl0h1uE3T0CRayFRmMdeUGBooMdwHMrmw==","shasum":"9f1e75a764fe5b2158b3e2b4dc77e23e94032ff0","tarball":"https://registry.npmjs.org/trusted-cert/-/trusted-cert-1.0.0-10.tgz","fileCount":11,"unpackedSize":31697,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfCwxJCRA9TVsSAnZWagAAxaoP/0A1FjOCcJGwGwJ+Rfpz\n6m517CKub4yS2JFJ5Jvh4H3ZmdBqV/Ziw7ZEeyAFoJgppEWtf5GBcI9FWyv0\nu8D9kyULcboKYGYZToe4J//e2ObzjiH/S2hpHq379kCFuQysViTH0HP3vYNq\nA9f67aICp0HCx9HKOdWyumDR23+SSxFic+qDmLi92JJSV+uoY2BD/nUk8fZ3\n4dJbPAJFKqyDV7LW6sDSb0nnzsljeF/yB+mCnc5L7W6D0HqpD3ORopkXf3gO\nmnYFjaaFoCr1LKfn9JGiepqnyzxxgJnF1jtb56DIYBVQ9PGPRQYfeGAF0kkh\n9qIJNdU/ruEsuadVpPHQHWdWaF+dWC8I/QDNn6ozskQaPXYI0EycOLxnYSbj\nfOs47js/9wqB2RsVVnrKjjhkElomnDJbQVuwth9Wm9nwUXIJRA9ILprYEQg7\n4b2ncwgOOJTK4NUG48gH89LXdQXSBmpxcMQBAf6j41wvt5tuVqa7LM2wmfTI\n75x8UIX+eRak53+skiKuFAEL/9MLe4UFrim75Uo+/NK9r/11Nq31depmTupQ\nkOXnbfIESql+++ydYT0wRcUfLOl2LA26wfpUgz8rbSIwXApqHCidft/TjMql\nRU+KfkTOBYBEsfHV9uuDV2g5O62CbPVVpvQtICYqC+wONBl+p9hKLtDdeTuK\nf+LM\r\n=2tQY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFGKlcpDY1j/fASrni90n6Yqj0cTqFkiM/gm8XXVGcE3AiEAqM6sq+46xw7H8rEjlSx3kD+gXueKf8XTzCVUlX4HYA8="}]},"maintainers":[{"name":"sprying","email":"sprying.fang@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trusted-cert_1.0.0-10_1594559561337_0.11393287449051548"},"_hasShrinkwrap":false,"deprecated":"conflict witch the latest 1.x"},"1.0.0-11":{"name":"trusted-cert","version":"1.0.0-11","description":"A simple tool to generate self signed x509 certificate","bin":{"trusted-cert":"./cli.js"},"main":"index.js","dependencies":{"application-config-path":"^0.1.0","command-exists":"^1.2.9","commander":"^5.0.0","debug":"^4.1.1","fs-extra":"^9.0.0","inquirer":"^7.1.0"},"devDependencies":{"standard":"^14.3.3"},"author":{"name":"sprying","email":"sprying.fang@qq.com"},"homepage":"https://github.com/sprying/trusted-cert/README.md","repository":{"type":"git","url":"git+https://github.com/sprying/trusted-cert.git"},"bugs":{"url":"https://github.com/sprying/trusted-cert/issues"},"keywords":["ssl","openssl","certificate","trust store","x509","certificates","self-signed","self-signing","credential","credentials","keychain","ca"],"gitHead":"0507a3f87953d3f8de907f1bcffc757873fae23e","_id":"trusted-cert@1.0.0-11","_npmVersion":"6.4.1","_nodeVersion":"10.13.0","_npmUser":{"name":"sprying","email":"sprying.fang@gmail.com"},"dist":{"integrity":"sha512-SR5mhsn5byCLHOzWgx4MXQHRvXTEar9C1mEOgSJHpJWwWXQrIVqDSNkKYMKDH4vVnl+X6AQ2Zxdfethgz6Ssiw==","shasum":"747cb174138c99b2b99773f045e32a6c69f80312","tarball":"https://registry.npmjs.org/trusted-cert/-/trusted-cert-1.0.0-11.tgz","fileCount":11,"unpackedSize":32150,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfCx+KCRA9TVsSAnZWagAArLsP/iBg+DGzaWByJPh95V6c\nV7utORz3E1YBGzkWkZAIXHeh3ot+J8YZMKEETGZaKi3FLdFJ1vUj9UEl7kYa\nR3O2pwpQ1xmDuBwGSlDc4z1yE/l91K/YfielBqp5ru9AwKlJ+Pd0r/+dztfw\nex9jqG2sEKZfmph6/j/vTbFsfheA1fhATX+KhfQ3B2gnfIcnIplLEsyL5LFV\nc7ySHrIYu6DJjQQFBkXSfs02JJh1GcfpKvtBskhnbSroJGDPhZ9jUb1cTUXI\nUcGnw3tSpfvgUXqesR1XVIZr8+0DJrpbf1G9V4QpBuXcXmSu2QA11wRcxpV1\nDso243gFuL2JmNiRG4UoLWcHCnh3fnu10sTUNdPEq9PcNDJiuYHxu8ww1htq\nfJIJd/ABw6BtOgd5rLrsPOjKAdAHn6DUuvlVXj5UZd1i2+3NvNPO8kcNAjwU\npFJlm1vszOEKtDESLON0c2jp11LT3TUFlpYr9gmkcqsi88FxH+941CysOJHH\nlLjYpI9nazVA0KL4PL1dcEYnCDRxTqEPt5tpsgR8uwBDcqYZJ8wNlnANs0Yo\nVztSA5MmsV1Za9GUW/z7tId9HISB/jMz8uNMKqFG1pWOpFt6FZxr5GmT4P4x\ncq9puUd090pKz1+CfYllhVgMrk4XpSwJqBj4C+SCW2J+3NF+hPPHapknl+yi\nVi1E\r\n=7KzG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA/ESfYDZB6wrA16CDUAWFdUrrRCAblmTfBirxf0QqI7AiBR6Fvdz+IOdGfAxO4JufoP0UwYBJCxBHktyjfAWMRzTw=="}]},"maintainers":[{"name":"sprying","email":"sprying.fang@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trusted-cert_1.0.0-11_1594564490179_0.24232019298438923"},"_hasShrinkwrap":false,"deprecated":"conflict witch the latest 1.x"},"1.0.0-12":{"name":"trusted-cert","version":"1.0.0-12","description":"A simple tool to generate self signed x509 certificate","bin":{"trusted-cert":"./cli.js"},"main":"index.js","dependencies":{"application-config-path":"^0.1.0","command-exists":"^1.2.9","commander":"^5.0.0","debug":"^4.1.1","fs-extra":"^9.0.0","inquirer":"^7.1.0"},"devDependencies":{"standard":"^14.3.3"},"author":{"name":"sprying","email":"sprying.fang@qq.com"},"homepage":"https://github.com/sprying/trusted-cert/README.md","repository":{"type":"git","url":"git+https://github.com/sprying/trusted-cert.git"},"bugs":{"url":"https://github.com/sprying/trusted-cert/issues"},"keywords":["ssl","openssl","certificate","trust store","x509","certificates","self-signed","self-signing","credential","credentials","keychain","ca"],"gitHead":"8f1e02a9ae9168b0e8f5bd48138aac0c761570f3","_id":"trusted-cert@1.0.0-12","_npmVersion":"6.4.1","_nodeVersion":"10.13.0","_npmUser":{"name":"sprying","email":"sprying.fang@gmail.com"},"dist":{"integrity":"sha512-wSf/S+kHsF5K9kDRIyTQV7XfyKGqTFRAcpl/sc42ivkkZxe3DIjOWFAW/5/+z0nM5HbPvL5JX205qVpGzqd/3Q==","shasum":"c586a316075e4853cc0a2281c2c420d94bf19bf8","tarball":"https://registry.npmjs.org/trusted-cert/-/trusted-cert-1.0.0-12.tgz","fileCount":11,"unpackedSize":32417,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfCyG3CRA9TVsSAnZWagAAMMcP/izgHAXJSeThOWFSiw7a\n0Y5w8+utkBZit1IU4fMebejA3aQdBYl6VshyN0jqNQKKaqoKXQQoaGgmXMlS\nuQzgap6a7wciC6fr/JKaQbWlkwF/FYGEuo05umanr7/KC+mVEtjKmIFXx/Rj\nby5CLEUga+DZGUHCq/ClyeYa5mJDSkac8ncYECb73g2VNG2VrKZegsFofBQX\nkJ96jwjbe8apTCQlmJoh0MflBpU2mBcWlznLSy2xlW3RBKKmatyfZ2DFw4Pv\nNXF6Mgg8SY8oHRVe3emseYaqSXx5zAV6witH21OsZO39GTlQZsBDU4mdJFrc\nlDVSi2rrdwkLVLSySjI3U8Qoz15nrUWDOVWUvmt4JsqEXQ1i5XqM6cT9wapm\nxha+mjzwQizmQQ880t3vGwVBr5dKYHvr/nG0QObCUb8WrNO9N/G5tl/0HsFq\nlvVMuI1dJdihCn/Btu90d+c8JB86RHGhSz6gD+p1FEt2q+bJ30OuXQyhNrB8\nLB5E/33CprTIu5FjeswPgMph03U+ubfhY7Eo59cxG5ZIJunYQCNVeuAgVZWo\nUvosnT+6B5x7yedd0gRcEkCY3o/hUO9cx0MVHWJtw1euiTwAlP5K3KTUu7HC\nhyRp9saArNSnDBoUoSYz/IllTP0P4lJO9AOHUawr5/bswvD74XaqR5KPtuuO\nq5Y2\r\n=sQsg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDWTDN+/+Ozycmb5+M5L2losn6LAo+UroGSX9D/YT+80wIgWKN7ZFOem8T7vlOyjWM03XLH6oJStyuHBwUEBJAsOcc="}]},"maintainers":[{"name":"sprying","email":"sprying.fang@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trusted-cert_1.0.0-12_1594565047186_0.10889309232363198"},"_hasShrinkwrap":false,"deprecated":"conflict witch the latest 1.x"},"1.0.0-13":{"name":"trusted-cert","version":"1.0.0-13","description":"A simple tool to generate self signed x509 certificate","bin":{"trusted-cert":"./cli.js"},"main":"index.js","dependencies":{"application-config-path":"^0.1.0","command-exists":"^1.2.9","commander":"^5.0.0","debug":"^4.1.1","fs-extra":"^9.0.0","inquirer":"^7.1.0"},"devDependencies":{"standard":"^14.3.3"},"author":{"name":"sprying","email":"sprying.fang@qq.com"},"homepage":"https://github.com/sprying/trusted-cert/README.md","repository":{"type":"git","url":"git+https://github.com/sprying/trusted-cert.git"},"bugs":{"url":"https://github.com/sprying/trusted-cert/issues"},"keywords":["ssl","openssl","certificate","trust store","x509","certificates","self-signed","self-signing","credential","credentials","keychain","ca"],"gitHead":"67f8813a32041b638ba75220ddbc323344e1e43c","_id":"trusted-cert@1.0.0-13","_npmVersion":"6.4.1","_nodeVersion":"10.13.0","_npmUser":{"name":"sprying","email":"sprying.fang@gmail.com"},"dist":{"integrity":"sha512-5uEAyQ0njAnarW8h/duPS5wIAK7XIJJf/FbQUXjQd5gwOIB6QQ0JUx1ybHQm52yb94bkngMbN93TuR3wjNSaSA==","shasum":"215d3b718ae228dcd08ad20d1bf951c44c218256","tarball":"https://registry.npmjs.org/trusted-cert/-/trusted-cert-1.0.0-13.tgz","fileCount":11,"unpackedSize":32655,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfCyyACRA9TVsSAnZWagAAL2IP/jT4kLrTxv6AnUg6Xgtu\n5Uk/Q4e2hV37XUiTACj7xGha+dbAO2sfywdj9MEVQEHvK8ZUJHEgrexjytc1\nSJXeHXbSbU+B3vPl1IjHGdV6gj2rm4eemyWeKDZDuCIOjHtL5xtxXeYKysNy\nWjwGNJLQiqddSCX0J4Of0QC96dKlA3/DNNOxE1EyZmJsWSvDIgd/KY5kTAj0\nNsNsvHysrImFXXm3ReZMjiCMEhNazVgU0pZJ9FyTflzFOiTiXfrWwBKDoRq/\nXNUk+9pmUJA/mnlbyKZzv2kUYDhUZGTXzaMwQb0Rs+6hhIzVYUp7MTgGVOCc\nJ45QoqhGOn/F8XmEKquPXFMtL8tzdGnb1J6/miRpU9kOqx8AEoj7V9bKNqJU\nFbUMCFNpwmGVAyqPAdA+fgkSMAkrjaPKG1KVaFpxZbSuqRthJ2K+EzQizFQv\nG5ZsVHIqbmxY5zIuL9b3731hCUBiaNXBuY1oI7mDMTuIW+GgxayrmaTIA45Y\neySmblkF1eIY5aCb5SS/v4JYEsswpwTmkZrN1B+5DOm+iRz2m7Cn8iu0SHlA\nqnsUEO6UcjSiynNC4pWENuB7rLPhkAH4kZXjaMzc9iL/+4qnn8VGeWY/aDtC\nqIYu3p8eyj00Vjqg2ZBbvMYnHOE7hqkYQRCS+p6+EmPx2UMzp+qqeooTxhVR\nycXT\r\n=KCgU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCZdCZp5XGxHv++fsMOzZiEwjgWVUnlURmNrdY1cSh01wIgBCoVbrAIMzM/iMsVM0PhwBzixn3V31IE3+dlPfyd8yE="}]},"maintainers":[{"name":"sprying","email":"sprying.fang@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trusted-cert_1.0.0-13_1594567808525_0.9975047244340713"},"_hasShrinkwrap":false,"deprecated":"conflict witch the latest 1.x"},"1.0.0-14":{"name":"trusted-cert","version":"1.0.0-14","description":"A simple tool to generate self signed x509 certificate","bin":{"trusted-cert":"./cli.js"},"main":"index.js","dependencies":{"application-config-path":"^0.1.0","command-exists":"^1.2.9","commander":"^5.0.0","debug":"^4.1.1","fs-extra":"^9.0.0","inquirer":"^7.1.0"},"devDependencies":{"standard":"^14.3.3"},"author":{"name":"sprying","email":"sprying.fang@qq.com"},"homepage":"https://github.com/sprying/trusted-cert/README.md","repository":{"type":"git","url":"git+https://github.com/sprying/trusted-cert.git"},"bugs":{"url":"https://github.com/sprying/trusted-cert/issues"},"keywords":["ssl","openssl","certificate","trust store","x509","certificates","self-signed","self-signing","credential","credentials","keychain","ca"],"gitHead":"d97051c702e79d069729c73c185f0b4f4bc287e6","_id":"trusted-cert@1.0.0-14","_npmVersion":"6.4.1","_nodeVersion":"10.13.0","_npmUser":{"name":"sprying","email":"sprying.fang@gmail.com"},"dist":{"integrity":"sha512-eErhRYE/zX9ozzyTMqxRFcN0RzK1SHRMd0G8chyxoVvaeVmtdrzGfMgzgFBG63+Z0D6vxxWXgBPbni6z8GcImw==","shasum":"4ce4dfe9b2d4634c458ebcade6c7f62f360549bf","tarball":"https://registry.npmjs.org/trusted-cert/-/trusted-cert-1.0.0-14.tgz","fileCount":11,"unpackedSize":32669,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfCy5WCRA9TVsSAnZWagAAjhsP/2p4Zw+7n16GMdcgxJwq\nYIBmsEPyfX+vsAHLaUlvHluy0mRuCanhYeAYPKSx5+q8PeUTDN9bRto6/x0B\naL2KwdLbsXG+e3FlDivuUq623imAx5v5Oz3ZsTI6JjeMYN/TnFmNVTOsGmmc\njKPhBsvBau51nPAsVPjKUC4q/5R3xCWil9FlvX1M9rl6QL9F1AbmQu/7334e\nHVz+wcstd3lRauA0yfoDTo9Kl8vzEq0hUExICt3WLX8cpE5eBc2B5TfZqxRm\nwklW8kbC3hBhFw/hppzLsfjLmYWl8ufmaBS9NJVvPmgamugIN4/uAlbvLhpV\nUVSGZHI8Innzxh/M0o8oq8dOrfkOrP6ZRw615R1/0bjc2ikUdJhVVV6JlLSZ\nHnrENLld5WtMpnOdA01en9q983lMkFivYeNi5Vi0OVBIhoAZloKKYutPxYiq\nXh2MN7BamLI7s3Zn/M+zwuOz4gPo2WnQ1Et8isUh0dcZYZrBi/RoebsiLP4A\n1rSngl+LpPGlmbNjJ4aFCTgs3EGD+up7s/vJvYhIWZCW0NxYws7+O/sUb6Nf\ncZ30D1ttstMV8U/3x+9dXixg2O0dBV5bWWJrqEU14ksb/IlxAYfmlNtAVo+W\nx/1boS4f6mEDMe9g1o7D6Qq58RVkd5usazC1fAKDSVqCkGhyVhxYvD/DJag9\nArXb\r\n=NcE4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFRs1xBVwZqJ+n9CR5LRNRvb+qKoLev+ezJ/OuJzOI7EAiEAhzI8pr797vb8kUSFpWsozBT8IwxewRngjGLZLcfJI+I="}]},"maintainers":[{"name":"sprying","email":"sprying.fang@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trusted-cert_1.0.0-14_1594568277852_0.2298330624964744"},"_hasShrinkwrap":false,"deprecated":"conflict witch the latest 1.x"},"1.0.0-15":{"name":"trusted-cert","version":"1.0.0-15","description":"A simple tool to generate self signed x509 certificate","bin":{"trusted-cert":"./cli.js"},"main":"index.js","dependencies":{"application-config-path":"^0.1.0","command-exists":"^1.2.9","commander":"^5.0.0","debug":"^4.1.1","fs-extra":"^9.0.0","inquirer":"^7.1.0"},"devDependencies":{"standard":"^14.3.3"},"author":{"name":"sprying","email":"sprying.fang@qq.com"},"homepage":"https://github.com/sprying/trusted-cert/README.md","repository":{"type":"git","url":"git+https://github.com/sprying/trusted-cert.git"},"bugs":{"url":"https://github.com/sprying/trusted-cert/issues"},"keywords":["ssl","openssl","certificate","trust store","x509","certificates","self-signed","self-signing","credential","credentials","keychain","ca"],"gitHead":"03c70f7e0c1a1eca3d979a2e9d8c5d940c862b8a","_id":"trusted-cert@1.0.0-15","_npmVersion":"6.4.1","_nodeVersion":"10.13.0","_npmUser":{"name":"sprying","email":"sprying.fang@gmail.com"},"dist":{"integrity":"sha512-qWyGInpU0MYEUMAPM2G5gI5/3RkxRN78oaDcLZXqutFmSkxbcymndRioxlRP2dsWSD63a/liLSUJOqWrT4NOMQ==","shasum":"476d9c10a633e2726eed66da9e1ea4748b583ce7","tarball":"https://registry.npmjs.org/trusted-cert/-/trusted-cert-1.0.0-15.tgz","fileCount":11,"unpackedSize":32592,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfCzORCRA9TVsSAnZWagAAaw0P/A+YdINUz6QAZ3M8ojYh\nipm0tJcwCuGkYmY7ugO1qW14jgj9Px05EY4H/aZQrgM8KD9iAN3iu24b4F30\nXEC0qpcSwR2FwBppVLy+IvmkvuF1+fhADnYoPpGLE/p9d5aPZYfY/sXHyzc3\nbf3pEvzBrHDQcLtn3XE8RKxTfGuCEKyyuIO5bgBlewgWYmMNxcDTZdOtE4ar\nBro0NmW1RVOn3USJMlBDoo8ITg2Jf+8klfeyRyyGcU98eMX0mtRgb5FiDEbL\ncgUQ7RKomAwUc56RlxjFoceIPm4fP+uAGEUgpJpZO8vVqpT9Ob/3Zz8oFO6+\njARK7OyBz3soj7Q5ljNUcP5jTUQ2SkR+ZI3f1c5traWd6uiUREl/PmEdoetj\nGVIq1XjSzaCLU1g6K1M7OypJFlEfngsRj/E956hIb6MCA+I52nH4M29ER/3R\nHrhXYBGEqTtgNIca2RUNRbEVgYaNidbheJKgT0IyDoqdCTqRDCteL5v66uzC\nzJIoCqtPLKE/wr6kUXWC9rmcaSFaTNBBHPVIO6PoyOVlnQb4woRo8V/Pjt4i\n36evI8LmVDutuse2pMEAlGpkh+D1ckwakZmynD7TkUxVushXiGbc7qjN0KPW\nVggXpU/X4XzJgDQYv5hbkb/2Tx4QdDHjnl5ZUiHPtta+kyYBJiqOKUlNYbQu\naDDy\r\n=Z6Hl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHfqW7GTh59wAw+/6ACloulzaMcjaDF5f9s1spWIx1SdAiEA0VhCSL9uY0qetmAy6126pZsKOoceUUNEBKy0uS5SvjE="}]},"maintainers":[{"name":"sprying","email":"sprying.fang@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trusted-cert_1.0.0-15_1594569616717_0.3275021110206231"},"_hasShrinkwrap":false,"deprecated":"conflict witch the latest 1.x"},"1.0.0-16":{"name":"trusted-cert","version":"1.0.0-16","description":"A simple tool to generate self signed x509 certificate","bin":{"trusted-cert":"./cli.js"},"main":"index.js","dependencies":{"application-config-path":"^0.1.0","command-exists":"^1.2.9","commander":"^5.0.0","debug":"^4.1.1","fs-extra":"^9.0.0","inquirer":"^7.1.0"},"devDependencies":{"standard":"^14.3.3"},"author":{"name":"sprying","email":"sprying.fang@qq.com"},"homepage":"https://github.com/sprying/trusted-cert/README.md","repository":{"type":"git","url":"git+https://github.com/sprying/trusted-cert.git"},"bugs":{"url":"https://github.com/sprying/trusted-cert/issues"},"keywords":["ssl","openssl","certificate","trust store","x509","certificates","self-signed","self-signing","credential","credentials","keychain","ca"],"gitHead":"43e5f0362e4576e9cacb6b61a03a55685242685d","_id":"trusted-cert@1.0.0-16","_npmVersion":"6.4.1","_nodeVersion":"10.13.0","_npmUser":{"name":"sprying","email":"sprying.fang@gmail.com"},"dist":{"integrity":"sha512-3uoyNpoQC0a1QCYCycoVOkM6WEGXtwWWC0u4iIR+PVcEdhg8RpgU+qeY0rGfMdeSjExQTXgrbLbxiSWvBN0s1Q==","shasum":"4391aed564c7051eb0b18b0734c30cad6789e102","tarball":"https://registry.npmjs.org/trusted-cert/-/trusted-cert-1.0.0-16.tgz","fileCount":12,"unpackedSize":33374,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfC0ucCRA9TVsSAnZWagAAMkIP/2nhx2VRtcvOtvcyxvUp\nb3hxmLY5ncjvzflCiaiY2t7FNsxa6l2qlhOVe5EJ7ysAAR3IqA0B+GgGs3Wo\nRfq+PZIXSmFxMiLH2HaALixhrHSrmT+bl4B4g3ZQig1bUApZnJDtid+JafCf\nGNDXebMS7fEspcfhFkh6vul+FEIW09pO2mbigMz+C97usHjO3PPrOnNs8eV8\nAL0q+eSqvbaNmxCS4PjpB/BILf1TKbw0L9uIF0+GN2sRtNF7W9OPsCWwaaME\n74tuKJtscie5f59b04DVUPM3KoXc24JPJu0fGZpDTpAfTrU1BX8XQ8Tb47go\nQ3UQ2uybuD3oMufFWV6+d/3H3NUW3mjznGzNTpkqumBlkV0GDwKY3scJUgzD\nGEpkDAl+c/qGTY5HHsjzdGp15wGhDzH5mPcN6BJ19VZ3PsVTPVKrRhGJ4jej\nZNOhVrFroxl1NqTomz20hTZgOunugY4UO5UvyCYtvB6CTsc25ZzZzfTt9J9z\n5x7P/WTb5VllH/f/leJq/qVWh+bZfWSvHLh8feRx3Qeb+kSwwi0CX4jgpI/S\nQD7nrTN9kF8JZmbDGrPHnTAAF6VdZ7fBqC4MXaFKxvhkv3mfRR6WXsO6c9wR\n64HGmP3TMc1pwD3KgaSbqlxhmdwE/N7vTF34sCssuM1JR2/1x9VOf6YTPGxX\nmfK5\r\n=/qOx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDxcKrt4MDv+5ENmlgmvr7w3zwvpY4aLo9j6E2qs7LLygIgDCPXXsbAhTse227q/GogPj2WMK8r7EUTNCZxEmb6kk0="}]},"maintainers":[{"name":"sprying","email":"sprying.fang@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trusted-cert_1.0.0-16_1594575772149_0.17608762100223752"},"_hasShrinkwrap":false,"deprecated":"conflict witch the latest 1.x"},"1.0.0-17":{"name":"trusted-cert","version":"1.0.0-17","description":"A simple tool to generate self signed x509 certificate","bin":{"trusted-cert":"./cli.js"},"main":"index.js","dependencies":{"application-config-path":"^0.1.0","command-exists":"^1.2.9","commander":"^5.0.0","debug":"^4.1.1","fs-extra":"^9.0.0","inquirer":"^7.1.0"},"devDependencies":{"standard":"^14.3.3"},"author":{"name":"sprying","email":"sprying.fang@qq.com"},"homepage":"https://github.com/sprying/trusted-cert/README.md","repository":{"type":"git","url":"git+https://github.com/sprying/trusted-cert.git"},"bugs":{"url":"https://github.com/sprying/trusted-cert/issues"},"keywords":["ssl","openssl","certificate","trust store","x509","certificates","self-signed","self-signing","credential","credentials","keychain","ca"],"gitHead":"f91d13d17f88077f0be36dd16b47ddbc2de896c7","_id":"trusted-cert@1.0.0-17","_npmVersion":"6.4.1","_nodeVersion":"10.13.0","_npmUser":{"name":"sprying","email":"sprying.fang@gmail.com"},"dist":{"integrity":"sha512-0wEkrZb+qh8YYHTjnvLoCH1FcuwqXXDjiuwhQXluWCdnGtDOhp9shAUA7bITYKFgYtNT+s8jLQ6xpKvNx0XNqQ==","shasum":"ab4fd81cf47dd11b4586728c21d16126b5599589","tarball":"https://registry.npmjs.org/trusted-cert/-/trusted-cert-1.0.0-17.tgz","fileCount":12,"unpackedSize":33127,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfC1H7CRA9TVsSAnZWagAAVu4P/ik4IxHe7IzB608votNM\n0BzzjHm68xZRla8ziIZadFnLq3xaVDM1x5hHyckG4jdFQTYaKEss1A9CCa/6\nT+PGtuOnzZBLpM1HY8Dcq/Q35x5BdlegY+m0VU+K0e4buOhEOWbQsJrRkfaa\nc/W2pIaRX4HSTPyPqInsL2EsMExWowRPyEELmobe/jUxsb9Dd1zET3N1Lz7c\nD04IhWOCa+CshNZvw2wOhSO8bCFenIjtMcsiJd5KVqIs7cOqQPReVxez+hc0\no4rZyNzKoFw0+RqXqK48TDnqHP1I6Uc9LXHYu8zKcgmL4IM4QNgCHMsNu5vQ\niKOXaNok/Zxq96SoNU5caN4R+36BzudJydFePpB/rHWzfCUlgXdf5TU4JV7I\n3nQA5qNKUAWIQ3p8IWJA5aOfPbEOPP6sshKqcLwJhm9aXhDJYVrc9QRE2I+j\nud8TZGp6BwetV8xCwY5oFHZ53WRGLwZScP2vF2OjDh+PbAFQ1s+trNBZDKJN\nFuXeHcXIj4LM+UkmdnUebJzgv+qDvY2iG08d5S6If1gnaCOKAzpFvpNcNoZr\nbSOnQiedKL/ADjCl+twiEf6KCz1PQED2LnoHi3xTXuDN6hHDMVESLoORUIOU\nSXzemJhdhDZKgpREEDqze9HMu3mnm8DjnOZCjX1USR5RNf+jq30ee7FZbstr\nG2X0\r\n=H2zO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE5BGGlFNdTUCTFLJEa6CJmKJOCOH1+tNLHqbBdFJjmGAiEAqRsNE2zT4jN0wn9PeeTn9yvWO2Sco3qUrNnwOh67XY0="}]},"maintainers":[{"name":"sprying","email":"sprying.fang@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trusted-cert_1.0.0-17_1594577403607_0.9893630746888269"},"_hasShrinkwrap":false,"deprecated":"conflict witch the latest 1.x"},"1.0.0-18":{"name":"trusted-cert","version":"1.0.0-18","description":"A simple tool to generate self signed x509 certificate","bin":{"trusted-cert":"./cli.js"},"main":"index.js","dependencies":{"command-exists":"^1.2.9","commander":"^5.0.0","debug":"^4.1.1","fs-extra":"^9.0.0","inquirer":"^7.1.0"},"devDependencies":{"standard":"^14.3.3"},"author":{"name":"sprying","email":"sprying.fang@qq.com"},"homepage":"https://github.com/sprying/trusted-cert/README.md","repository":{"type":"git","url":"git+https://github.com/sprying/trusted-cert.git"},"bugs":{"url":"https://github.com/sprying/trusted-cert/issues"},"keywords":["ssl","openssl","certificate","trust store","x509","certificates","self-signed","self-signing","credential","credentials","keychain","ca"],"gitHead":"806943cc48f840d6dbc32e2eb851d06abd428bd7","_id":"trusted-cert@1.0.0-18","_npmVersion":"6.4.1","_nodeVersion":"10.13.0","_npmUser":{"name":"sprying","email":"sprying.fang@gmail.com"},"dist":{"integrity":"sha512-Cx4fiJyWvEmArzZYY2bbe0nraMWP4kAaJZaEq1Ken9G+iYXA5XsS2aZadBOKsYqoapkUzsmYNDV2GDaTPOTFbA==","shasum":"2dc050b363d0f649f5dc3dfaef6610a4441c11d4","tarball":"https://registry.npmjs.org/trusted-cert/-/trusted-cert-1.0.0-18.tgz","fileCount":12,"unpackedSize":33157,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfC1U4CRA9TVsSAnZWagAAM/IQAJ3tp/RR2QZTG38OiXdT\nmkX1njip/jDuI51n6YeRWbyUrUW1xP9DeBI4t/pxY9fvX2onYfXO/U4m6Gdj\n87yP+knB8JPPz6+7PZcWRjt4z/mGatBJSB/In/8gig+l6og9HdRwtATVrLy+\n12M9Ft5JjhBG3aDVWHXWd9lxc+BZxo9o9e/k/x79tG7caDg0K9tF80s9ErOi\nskk2q0hv6CZVTLX5VzWaZ2cgRsRzPeeoWWTNHg+NdgHEOlajC8TgaZ7FYkM4\nEUn/NXyeYfieHDSvOx4thSZ+QFUOSsVwM1XYuVUtHdhBMeZo+mHdQX3DUo7o\nQup7HF0yVpyqrshsdigDtx6RmjqPsmCABI5gltIg3e/kLTtc62tLrPuxD0UE\nv7+oRW28bPA8euiztZ2KZkePSyBzsyrTjHHbL9JkSTe0QOZlqWkpBx0DSwUP\nhgKrrqYr2jcdvlL9hiXfB6L9Rk2nFYGap+CdwzMiy2GlP6nIKHWw9j7YyjtG\nQmUfJ/Jd1MIIOfrixVmwP72LLJRoSlk6H1JllUJJnFd3CqHd/Nh3BJJy0cW4\nWbuQxIrIWObf86ZsMSjR+J8zcASCO9VvyF7K3eJ8McPqSYdwWoLB0SLcQsIj\nuz4M/Vp8C/BJUKybBubhbalpEph9FsHBskHPInYmPq5JzW+X6bSD9bSIKNB9\n1p1k\r\n=gwPP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFAN8ov/QQgSWbPAgD22m8oCKsMQyReyY7yRDzzAcwuFAiEAqs6ltzV+vigZWkonr3tH1nwNG9rnECd+Ug3mlbsPSt8="}]},"maintainers":[{"name":"sprying","email":"sprying.fang@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trusted-cert_1.0.0-18_1594578232150_0.23877599233890479"},"_hasShrinkwrap":false,"deprecated":"conflict witch the latest 1.x"},"1.0.0-20":{"name":"trusted-cert","version":"1.0.0-20","description":"A simple tool to generate self signed x509 certificate","bin":{"trusted-cert":"./cli.js"},"main":"index.js","dependencies":{"command-exists":"^1.2.9","commander":"^5.0.0","debug":"^4.1.1","fs-extra":"^9.0.0","inquirer":"^7.1.0","rimraf":"^3.0.2"},"devDependencies":{"standard":"^14.3.3"},"author":{"name":"sprying","email":"sprying.fang@qq.com"},"license":"MIT","homepage":"https://github.com/sprying/trusted-cert/README.md","repository":{"type":"git","url":"git+https://github.com/sprying/trusted-cert.git"},"bugs":{"url":"https://github.com/sprying/trusted-cert/issues"},"keywords":["ssl","openssl","certificate","https","trust store","x509","certificates","self-signed","self-signing","credential","credentials","keychain","ca"],"gitHead":"10c1460c91275de7a1ffe8f958313a8bc6ddc228","_id":"trusted-cert@1.0.0-20","_npmVersion":"6.4.1","_nodeVersion":"10.13.0","_npmUser":{"name":"sprying","email":"sprying.fang@gmail.com"},"dist":{"integrity":"sha512-d7mtnJqEpBJN1Op4ZKl1UG8dI0DYLmEFkSIiCFKBmCJPcJRJ4pyGSpMZ4qEBbKrfIGdp1FnC5kbb0n5DxLteOg==","shasum":"f6059b09ea95469dd7b1c38b3782ef08ce06a77b","tarball":"https://registry.npmjs.org/trusted-cert/-/trusted-cert-1.0.0-20.tgz","fileCount":14,"unpackedSize":34613,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfDqTACRA9TVsSAnZWagAA2IsP+gMiTZLYPxDVgYGL3ZQ4\n3SR4MKG4u2ae6IExguwbzbQhg5ShhZauVjFS5spTt6AEwbwD7p+nOew5BTXQ\n92V4Abk42PA2LPtNNABFRNcOFyDHfLJDnvoRAw8qadjgFLBpZ3YxYwrV8zsG\nXJi/eeWBC5hn6WE8zJVhQkuBPCGQAMrBlfwiIVLeJ2tH1b0yPpwdNfUs9Vou\n4xULToToDRmd3Jd/oedanuxmFtKSwFhLne3OL78isX7YGtYh6wFqi3R2mQuJ\nHMKYfrNaU1bClwFLjrf1me2FUXLbbW2eMo5zj6oiRxFRUfsi6ylVSWFzT5fL\nvoMlXq4gy5Z74G6mXYIoaJjSVDYrJg2xTKJ4IMaEX92a2QBXv0STdK3CqZh8\nOkbtVgvsVfDTOhDQi7mmhVH2LxH/Ai8pbjXIEioHemrb8eR1roy8Llndrntz\nbweb8D1hz/Gss0IJ5bSOpBabHWZGJxC7yd6sMASIt5eAYQdbx9yU+1LSDvpG\nXMqJYjj5hBCBJaHYaCsxIg4zsThOJLBCZZmt1UP65DEbGF5xeqt1vLgq6mwd\nN+FhbI0Mfg4Y7CTrN3LJfWRKoEhK8fBR7Z+6wwURLpxhbuxFSadFG+sNpZVy\nMym4tFjQqGC3+Rlo5UerHwIQv7RnTmqlnAJVNBVoOQ+bs8XzcmjiK/GPg6ev\nboKf\r\n=xPb7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBuMTfiFAyBlG8pvipRJekYy3E2qEdLWaHFTUgx8vD75AiEAiHFftOuHJ/cQBJVILzHQu3aFSpBJxBc1ko2uJbWuT5A="}]},"maintainers":[{"name":"sprying","email":"sprying.fang@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trusted-cert_1.0.0-20_1594795200355_0.8695605824131591"},"_hasShrinkwrap":false,"deprecated":"conflict witch the latest 1.x"},"1.0.0-21":{"name":"trusted-cert","version":"1.0.0-21","description":"A simple tool to generate self signed x509 certificate","bin":{"trusted-cert":"./cli.js"},"main":"index.js","dependencies":{"command-exists":"^1.2.9","commander":"^5.0.0","debug":"^4.1.1","fs-extra":"^9.0.0","inquirer":"^7.1.0","rimraf":"^3.0.2"},"devDependencies":{"standard":"^14.3.3"},"author":{"name":"sprying","email":"sprying.fang@qq.com"},"license":"MIT","homepage":"https://github.com/sprying/trusted-cert/README.md","repository":{"type":"git","url":"git+https://github.com/sprying/trusted-cert.git"},"bugs":{"url":"https://github.com/sprying/trusted-cert/issues"},"keywords":["ssl","openssl","certificate","trust","https","trust store","x509","certificates","self-signed","self-signing","credential","credentials","keychain","ca"],"gitHead":"10c1460c91275de7a1ffe8f958313a8bc6ddc228","_id":"trusted-cert@1.0.0-21","_npmVersion":"6.4.1","_nodeVersion":"10.13.0","_npmUser":{"name":"sprying","email":"sprying.fang@gmail.com"},"dist":{"integrity":"sha512-khzU+4s8eqsj3QEiVs7qLbr9EBonOOFKr1uVOjdFSMQ7j6CAWOeHyHHihb1FL/fQ1DSmgswAGPxQCJ1Qo9uFTQ==","shasum":"4baad879f7238492dee093c455e32b48260e5606","tarball":"https://registry.npmjs.org/trusted-cert/-/trusted-cert-1.0.0-21.tgz","fileCount":14,"unpackedSize":34850,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfEzzdCRA9TVsSAnZWagAAET8QAImyq+MXtrWAGzaQbqN4\nZ/Gc1FIGlxIWiTaDVgsGP6owSiCRRKe+RVBZ+oCxFqLUZsg3tRB0eUJYiSDa\nza5aGBa2sglCfkNLHxXTgE7cMNcfsXXCjb/UQvVTBNp5kJsUT6DuiAWM+Ceo\n3fcjcxJK/jkXOV8aoBLXd4DQiTawLWpzUOey8dZoS2IlFhAIqOhBZK/C4PhO\nt9qjIO0+7N0kgk8HBlmx7wmDiKyWKORdYsfagygghbbaIQFklHC4Bb8DnIN8\n9cJQtHG6Zz8lV0YBaVbXeEEmWlLE95Ztcjrn/wejATArqBpmv15x0v7zcq+i\n2b8YCdtcHAoDbsK64bN5IE3fBaQTZM1VHxI/tBX2a0k4Swc1GyTw6AVbC3Ty\nBneLsnb3I3V/LQeLOqU9aVam8ED6Jbq6PQ53eBhjeYTCemh1bfYU5SnNftIA\nqIeYuE4pSaFOCrKqH+NgugAq8RHEekqclXXZwNgX5/K2Nd32mOVueWmdvkeB\nQnVxA2ea0K1MuEHEEi5Sh6Uq+vdKlSMVsM7fql4Z8/Ehfl4/thB1NAEs99SH\ntkYnmaCV9OX/nI0KhZRHQwlZMzkL8KgpfcIDzOzMc1nal1nc0oFHC3AUQK+3\nyLFcAdXt/BXx2XIKxkqYVrhgmDonCeBMof0gRRHg8tgKZHDgz901rJ0iUpBx\nyirJ\r\n=L37p\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICCBgkzQv2p/tls1uN65SqytT7krpKDabWWymkBT8mjSAiBWxqBr9BA0G7975LyhIHWUzUd3tbbNsGKXdXd7fHvlWQ=="}]},"maintainers":[{"name":"sprying","email":"sprying.fang@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trusted-cert_1.0.0-21_1595096284803_0.44591206694053165"},"_hasShrinkwrap":false,"deprecated":"conflict witch the latest 1.x"},"1.0.0-22":{"name":"trusted-cert","version":"1.0.0-22","description":"A simple tool to generate self signed x509 certificate","bin":{"trusted-cert":"cli.js"},"main":"index.js","dependencies":{"command-exists":"^1.2.9","commander":"^5.0.0","debug":"^4.1.1","fs-extra":"^9.0.0","inquirer":"^7.1.0","rimraf":"^3.0.2"},"devDependencies":{"standard":"^14.3.3"},"author":{"name":"sprying","email":"sprying.fang@qq.com"},"license":"MIT","homepage":"https://github.com/sprying/trusted-cert/README.md","repository":{"type":"git","url":"git+https://github.com/sprying/trusted-cert.git"},"bugs":{"url":"https://github.com/sprying/trusted-cert/issues"},"keywords":["ssl","openssl","certificate","trust","https","trust store","x509","certificates","self-signed","self-signing","credential","credentials","keychain","ca"],"gitHead":"825ccf552dea0b98e6ae7bb7be9468c0c7f12ba8","_id":"trusted-cert@1.0.0-22","_nodeVersion":"12.14.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-axWGpiYFW1E83mor1qyvIZAehRfvkbOaaI1wIZLp/c8slaEQRa3h6uRR4jTGSeTRRaM6s67+UBaApZc1knOVXg==","shasum":"8d82e57842f8dae882c8ebff44dd49de93aec7b2","tarball":"https://registry.npmjs.org/trusted-cert/-/trusted-cert-1.0.0-22.tgz","fileCount":14,"unpackedSize":34887,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgeCQlCRA9TVsSAnZWagAAB20P/iEJeKdzCygYLAiBcETA\nW3tjQKxxQkTyd/VZMf8mWF/N+oX7HClkcjsIJ6kyXYDYpAlnLX4XuqUubmUR\np9qiehEXFIFZzLg1BTRx2kBl7XsPpbWbd/cBCRvSX4QpGULuEfNWCrqEUHTr\nlMrQmtMjk0qCRjqIKkcbEmHLORGTLovPl69ULTAzHXC84B3D8vzBntre11mq\nMr9gDgI7JV7ffgYqEVFvvrXkgthYc6ZWQHLZjPi2uBb0dPO/ggaKtfH2oe0l\nfGfc3tX6AekivcesV7cfPJwrNaPNe9aEOSVYOGT1jRMuFs+JUMD+lo4vSh7h\nlzGdbdOGxpV3C2PuEyOD5sw9AieDWvlly7saSMJKdbJY8SkMG00Umi2zPIHJ\n1dwgdVeKwZK0rJB6BBMuyf2x1MIWI3gkXIVi471HZyOyYHjhKmj7k61xB/cI\n6sh9NDKdnr89yL2pLkyagBCu5UJXYN2yD2gxBGsf2g9gpdXXFvlZnboS+3Zq\nX51wuVrr7xUtxZ8Ukn+rOv8uG6upMhydaRaaYjAdsDvXD8wNr6m1wDubok/B\nfeyk5JQVTIMNcuuC2lCfDAF0U7LYePDMe83UbwvN0wqTDy9afAFJzuXLog3j\nZ62tnVhKQw+SgWxNoeU2ENt2UDmoWnzEhKb3On6aI0kLovSTPzs6WpkG48Jo\nGnHD\r\n=RxiT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBrnZ+E/MAOS2pFkzdNXqge8iltp9nA4Squcg9OqKx7wAiA1Joc7AA0OGIAU5yv60p33Qv+TdLRz5Vixdw5hsEvqIQ=="}]},"_npmUser":{"name":"sprying","email":"sprying.fang@gmail.com"},"directories":{},"maintainers":[{"name":"sprying","email":"sprying.fang@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trusted-cert_1.0.0-22_1618486308920_0.23882410400941345"},"_hasShrinkwrap":false,"deprecated":"conflict witch the latest 1.x"},"1.0.0-23":{"name":"trusted-cert","version":"1.0.0-23","description":"A simple tool to generate self signed x509 certificate","bin":{"trusted-cert":"cli.js"},"main":"index.js","dependencies":{"command-exists":"^1.2.9","commander":"^5.0.0","debug":"^4.1.1","fs-extra":"^9.0.0","inquirer":"^7.1.0","rimraf":"^3.0.2"},"devDependencies":{"standard":"^14.3.3"},"author":{"name":"sprying","email":"sprying.fang@qq.com"},"license":"MIT","homepage":"https://github.com/sprying/trusted-cert/README.md","repository":{"type":"git","url":"git+https://github.com/sprying/trusted-cert.git"},"bugs":{"url":"https://github.com/sprying/trusted-cert/issues"},"keywords":["ssl","openssl","certificate","trust","https","trust store","x509","certificates","self-signed","self-signing","credential","credentials","keychain","ca"],"gitHead":"3f2be258a751e97f22fd855d2ee38f437bd51db8","_id":"trusted-cert@1.0.0-23","_nodeVersion":"12.14.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-/mte5unMqlRNCAXXpHZ728j7kBskCatTX4L3fXmaegyQQ92MOGz8GIolmS3oGVmjkFwNVUUtvVIe3PB5QJbIhA==","shasum":"8fc748ddea844862a2b052e71dcd47d06e083449","tarball":"https://registry.npmjs.org/trusted-cert/-/trusted-cert-1.0.0-23.tgz","fileCount":14,"unpackedSize":34954,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgeETwCRA9TVsSAnZWagAAXfQQAJIjo+WTuyvuel+UA6NY\nNxh7gZwF88YA8D+FUsTk0OuuUBAlUhiXccBAD4m4klCGhygzbXgmxKXYbRyN\ni+Jhjly/p/NBl7/QxfDG4g89QpJbu3OFZH1ntdeKkBpfiHXfCWGNpI6o8lhl\nnZaOjZEWpMTUSPDgoKa8y+dloNrSenzFMhe56o5hCU/zk0Xsgn5AUHHeYQfp\nJlR1iDtfhNvJurO06E3HII31LPQiBoa0rbF1TYt1Uv/3GBpDhEMvmNARtpow\nEI9BTPqEz9wZifsgDc/lJcfIs84Js0hQgE+J5KlLYWfkCVNF9eH2DzQJwhq6\nx7804zvSJG56tp6ClpdArUA88QEZNWJ6KURr0vEqhQWgTewHLwihsFz0w0D9\nMIBaVwKWkiviNympSC0XKKQFmBLXjhoMg917P2AHODc6cnrK2GUhfaNhLCVq\nEQe+NnVHTztKsN8PNGKkbU4W3x6mNDnEsertlv3ohqXvyiql5Qq1uoHOo0nM\njDCk9z97skZRf12C7okhma5/pi8/6bwZz4eQRLWoM9JaL6lxcBTQWhdO1c6D\n61E02KyPk1JaylVcJ2X5/1Ofp/rAosugdHVYZAnK66FrF8xsZWDOWnANsC/B\n53IR3nxjlmU4iIiihcVoiTegKburLb9cO+JOZTN8Je3+H04NX6lXmIFENcvI\n+exE\r\n=xlym\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDzurWvu5SK+76KaazC1QJ+IdXlY3HLw030PNyHSEYDYgIgQeheAuZi9TBnoEra06X3Y8TkqVWtLqURAOxVGk2QrLM="}]},"_npmUser":{"name":"sprying","email":"sprying.fang@gmail.com"},"directories":{},"maintainers":[{"name":"sprying","email":"sprying.fang@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trusted-cert_1.0.0-23_1618494704128_0.2897509223818888"},"_hasShrinkwrap":false,"deprecated":"conflict witch the latest 1.x"},"1.0.0":{"name":"trusted-cert","version":"1.0.0","description":"A simple tool to generate self signed x509 certificate","bin":{"trusted-cert":"cli.js"},"main":"./dist/index.js","module":"./dist/index.esm.js","types":"./types/index.d.ts","scripts":{"build":"rm -rf dist types && rollup -c","watch":"rm -rf dist types && rollup -c -w","release":"cross-env NODE_ENV=production rollup -c && npm publish"},"dependencies":{"command-exists":"^1.2.9","commander":"^5.0.0","debug":"^4.3.1","fs-extra":"^9.0.0","inquirer":"^7.1.0","moment":"^2.29.1","rimraf":"^3.0.2"},"devDependencies":{"@babel/core":"^7.13.15","@rollup/plugin-commonjs":"^18.0.0","@typescript-eslint/eslint-plugin":"^4.22.0","@typescript-eslint/parser":"^4.22.0","cross-env":"^7.0.3","eslint":"^7.24.0","rollup":"^2.45.2","rollup-plugin-babel":"^4.4.0","rollup-plugin-terser":"^7.0.2","rollup-plugin-typescript2":"^0.30.0","standardx":"^7.0.0","typescript":"^4.2.4"},"author":{"name":"sprying","email":"sprying.fang@qq.com"},"license":"MIT","homepage":"https://github.com/sprying/trusted-cert/README.md","repository":{"type":"git","url":"git+https://github.com/sprying/trusted-cert.git"},"bugs":{"url":"https://github.com/sprying/trusted-cert/issues"},"keywords":["ssl","openssl","certificate","trust","https","trust store","x509","certificates","self-signed","self-signing","credential","credentials","keychain","ca"],"standardx":{"parser":"@typescript-eslint/parser","plugins":["@typescript-eslint/eslint-plugin"]},"gitHead":"30c58da54b53f5d117b4c550679013043d0e5d35","_id":"trusted-cert@1.0.0","_nodeVersion":"12.14.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-1IZMCo2tAfZtPLO+5k+ewEgEgXT8aO1PbpxB3Fj/OPhB1jUSFUzHPkswGD0QakPtep3qF2aLIcYFmX50Es6ffw==","shasum":"7fd5c88d7069475ca482a3ddbc14fc95dd23b47a","tarball":"https://registry.npmjs.org/trusted-cert/-/trusted-cert-1.0.0.tgz","fileCount":17,"unpackedSize":64503,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgfN63CRA9TVsSAnZWagAAtP0P/j/QVrD7v53f/6WXdWY3\naKNlTzShWmcsmxmr//hqZl5cHmVP45JvJiNBZGdt6t03Ru4hDvgo9vfKHPmF\n+WhJTz1jnx7Z+gOH4Fm1VNOqT8Fxar4vZMoOuSOXP7e6hqeG/ieDycsubHzO\nZAbCfCT1uWVxa4h4PzFpz0ai2bLCNp4PO4hpmfuzwG9xZHn4wv/OiDTRjDZf\nADQxrtko0PQ/J5bgR2vzish/g2tpHjC3t9tR7Hivldzvx94hdntsfVF1+tU2\nimHLR6x5JjCJ48lqf0igxFwgiO97oTQ6eQkrCdrHY3Zze5mxghX0AC09pxPq\nteq0go4/dqyucpTqhf0gLYLpHb7giccM5iegWQ8FNOAcMJ+4VWnZFE08q6Kn\nO8fDOdxtc1SXx7I6z2ZIYfOJSD6pFcNgwK3Dz6HaeaDVsG2DxQdLbnRioMjP\nvQHvAqOiddvt/SvcpoaBDezbDDoLrWCDfWQ2BbNecGu1Xv7G4NgBjVcCq0f1\nzTPSBCv9MKGFLEycefCuY4wJeG9zTIIun730wzWimzYND6AhpeOyIJ+jGnqz\n/Vp6vkzrFfM0/PBANABzFu/DXy63yXJXAwaKGkAYKFnDXpyooDkXhMWrExBi\nJYg3Q8OEzE4/7e+2TyFMnY4LduNbbzdst3AcHY3o2BPUOoU3cBHSOwPWwia0\nbbzO\r\n=YrwT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDUcXaJhjOjTaE16lEcTKHoPPLxVEZX2dqIqyjhAeOZEAIgBnI6XyNovXJWXRjU7TpRiFLsE1SFu6GOutmw57FUzRs="}]},"_npmUser":{"name":"sprying","email":"sprying.fang@gmail.com"},"directories":{},"maintainers":[{"name":"sprying","email":"sprying.fang@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trusted-cert_1.0.0_1618796214549_0.42554844406968284"},"_hasShrinkwrap":false},"1.0.1":{"name":"trusted-cert","version":"1.0.1","description":"A simple tool to generate self signed x509 certificate","bin":{"trusted-cert":"cli.js"},"main":"./dist/index.js","module":"./dist/index.esm.js","types":"./types/index.d.ts","scripts":{"clean":"rm -rf dist types","build":"npm run clean && rollup -c","watch":"npm run clean && rollup -c -w","release":"npm run clean && cross-env NODE_ENV=production rollup -c && npm publish","prepublishOnly":"npm run clean && cross-env NODE_ENV=production rollup -c "},"dependencies":{"command-exists":"^1.2.9","commander":"^5.0.0","debug":"^4.3.1","fs-extra":"^9.0.0","inquirer":"^7.1.0","moment":"^2.29.1","rimraf":"^3.0.2"},"devDependencies":{"@babel/core":"^7.13.16","@babel/plugin-transform-runtime":"^7.13.15","@babel/preset-env":"^7.13.15","@rollup/plugin-commonjs":"^18.0.0","@rollup/plugin-node-resolve":"^11.2.1","@types/command-exists":"^1.2.0","@types/debug":"^4.1.5","@types/fs-extra":"^9.0.11","@types/inquirer":"^7.3.1","@types/rimraf":"^3.0.0","@typescript-eslint/parser":"^4.22.0","cross-env":"^7.0.3","eslint":"^7.24.0","rollup":"^2.45.2","rollup-plugin-babel":"^4.4.0","rollup-plugin-terser":"^7.0.2","rollup-plugin-typescript2":"^0.30.0","ts-standard":"^10.0.0","typescript":"^4.2.4"},"engines":{"node":">=10"},"author":{"name":"慧知","email":"sprying.fang@qq.com","url":"https://sprying.cnblogs.com"},"license":"MIT","homepage":"https://github.com/sprying/trusted-cert/README.md","repository":{"type":"git","url":"git+https://github.com/sprying/trusted-cert.git"},"bugs":{"url":"https://github.com/sprying/trusted-cert/issues"},"keywords":["ssl","openssl","certificate","trust","https","trust store","x509","certificates","self-signed","self-signing","credential","credentials","keychain","ca"],"gitHead":"7a244b9d5cece590ad7d59d41e72c697cc58680d","_id":"trusted-cert@1.0.1","_nodeVersion":"12.14.0","_npmVersion":"6.14.13","dist":{"integrity":"sha512-IE5oWROPZ9ZgonbUGcUEhqbW2DfKy97Cw+dRyGZzyI9FBYrKvxBJ3CHsvoKYZzoREYUXWooGaDiWpmOXTPJ3DQ==","shasum":"ec94d724fdd1f6d58e595f1f2bd5428060f6011c","tarball":"https://registry.npmjs.org/trusted-cert/-/trusted-cert-1.0.1.tgz","fileCount":18,"unpackedSize":75609,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJghL7vCRA9TVsSAnZWagAAic4P/2/GSfSleXjiLBzWqBYX\nbwxumvUgKiZihF/mwqi8EE3VGqk9CJd2dMTo1njjUaSo3i5AShY5b5WXLFkf\nJ78sxIdYT5U7POKlzChXJDxEVyV0MFVGIIJop3qTz9svAXtj3aQR9pYJTKGf\n/px2J6jZAZdwjqr4oEg4qBj1N1FHrBbk6ptzUtSSvZJC8U25PBjLPG3semf4\niL1zFgdkV4JWXPdYGdE1LJs6NllBRYYirfHh2MkopJ4eP5PKC7c+KOY2Vqfx\n75RCt7ZufOWQTYBlcEh9rVAVav17jPpzyE3rjBDroIOkJpG35G2DRzNO12Hw\nnD03rhhufQiR6cPIqIfphakJnrVYFiPADPYUPcOX7lHS+8pdDzlaI4R8StOv\nIz+NDSn9Yq41+VJ2dawHu+88PH/9x1S7s9mNkwcMONu/+Dj33dlzhw05Jrn5\nH2jlYl/ES0SQZXU1Ar96LdUSvzEJPH91rKlf7W2WHE/tGHAEOOXEUYpjLDE8\nnjCEFO9BwhZyprUDViCUsp4agrAJAJpScInapOJXKJxS8QwiKLhsz4rbKdEt\nuAbNQYgEgnDtJWw9rlQZzzAkZUIrN9VfTdrJkBJ32jQ3VNNzBGJtIh3rWquJ\nTaD0XL97MjVTT7IIx2woeFSPxRG/X3zybUVJsFyWd7y8/DObft/mfTW+A+RJ\nbpp0\r\n=UG71\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFfep2rwwtxfU4QSvZFXCzY/HjEUW+Gj2boKpKQBCu0EAiBOlRis4/p6ne4M9SuRMf+xP3zPwtz+527gX/CLHJPuDQ=="}]},"_npmUser":{"name":"sprying","email":"sprying.fang@gmail.com"},"directories":{},"maintainers":[{"name":"sprying","email":"sprying.fang@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trusted-cert_1.0.1_1619312366870_0.6283662342551313"},"_hasShrinkwrap":false},"1.0.2":{"name":"trusted-cert","version":"1.0.2","description":"A simple tool to generate self signed x509 certificate","bin":{"trusted-cert":"cli.js"},"main":"./dist/index.js","module":"./dist/index.esm.js","types":"./types/index.d.ts","scripts":{"clean":"rm -rf dist types","build":"npm run clean && rollup -c","watch":"npm run clean && rollup -c -w","release":"npm run clean && cross-env NODE_ENV=production rollup -c && npm publish","prepublishOnly":"npm run clean && cross-env NODE_ENV=production rollup -c "},"dependencies":{"command-exists":"^1.2.9","commander":"^5.0.0","debug":"^4.3.1","fs-extra":"^9.0.0","inquirer":"^7.1.0","moment":"^2.29.1","rimraf":"^3.0.2"},"devDependencies":{"@babel/core":"^7.13.16","@babel/plugin-transform-runtime":"^7.13.15","@babel/preset-env":"^7.13.15","@rollup/plugin-commonjs":"^18.0.0","@rollup/plugin-node-resolve":"^11.2.1","@types/command-exists":"^1.2.0","@types/debug":"^4.1.5","@types/fs-extra":"^9.0.11","@types/inquirer":"^7.3.1","@types/rimraf":"^3.0.0","@typescript-eslint/parser":"^4.22.0","cross-env":"^7.0.3","eslint":"^7.24.0","rollup":"^2.45.2","rollup-plugin-babel":"^4.4.0","rollup-plugin-terser":"^7.0.2","rollup-plugin-typescript2":"^0.30.0","ts-standard":"^10.0.0","typescript":"^4.2.4"},"engines":{"node":">=10"},"author":{"name":"慧知","email":"sprying.fang@qq.com","url":"https://sprying.cnblogs.com"},"license":"MIT","homepage":"https://github.com/sprying/trusted-cert/README.md","repository":{"type":"git","url":"git+https://github.com/sprying/trusted-cert.git"},"bugs":{"url":"https://github.com/sprying/trusted-cert/issues"},"keywords":["ssl","openssl","certificate","trust","https","trust store","x509","certificates","self-signed","self-signing","credential","credentials","keychain","ca"],"gitHead":"7a244b9d5cece590ad7d59d41e72c697cc58680d","_id":"trusted-cert@1.0.2","_nodeVersion":"12.14.0","_npmVersion":"6.14.13","dist":{"integrity":"sha512-j7NlBPyRjNbH9RT+cor/nm7AdmIstad15wBGnfBb+yFCQbuq5lDonBCAIA07Wssiyq7DXLVXUd50BgEqC9FMhQ==","shasum":"20c4475880712ecf8f628b0510f019bdea4bef70","tarball":"https://registry.npmjs.org/trusted-cert/-/trusted-cert-1.0.2.tgz","fileCount":18,"unpackedSize":75636,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgnL2NCRA9TVsSAnZWagAAkIsP/jagUSUr4rZNT0Ql/ntX\nP8dVLBb239E0U71vTM0RozZJuSd0jYSlJadxMdBCQpKO4KGmUscBlD1ACBqo\nMKhlvzK76LMKZ+urjswtGPPOdtT7JKc+j6P/RbmNeEK+IpZP3ESnoJgj0NoI\n/0904SQg7de3kqkRg+TvxAdoBcaTZkh6SyqBfgdOQnpe2dDC05Xwon4JwOZJ\nPzkaK8wMpU+O4ffCx28uKHGHXYvZrc5FaTXiz+qDqKomOtFYdLVzvi8+iX7F\nzwQfrEeL9b3wOkt5j1YP6XVOlsy8iw6GxuXdSUyPDBcMum1rRPVSltHVoeK7\nkrNwzO6EPGENV8jBB5MbOJqMxAm03fsooR8sPv388//9lv8Y0LBm+YgpUT9g\nhFSQKZYd4Pq5fsIH0tAUuawqCWF78f4TWS6BZcfLJli+gI3zPCeukd9YkfUn\nbbCe3G6Wn0Biz0hpuQ2O8xEMnoeADYTsDcPpeIXubN9EG5+2kcAzymkfspuj\nPr9QDrtNQULBY0/TWzuOKXCYbZQS6v3XEdSHhWVqdWJvelgxk1S6P5B7rFHC\na7EXpJT4s9EXS5n/TdD0Z+8jE+DKcjK/r8+0V6uBi9ozZgZ8o3nrp/QsQCS0\nyl64aB5dxxpS0LkQd0bh+wzs7lHqbtv5O4iBuGoJuAkntO2AGyXHO7xXZdcx\nIcdU\r\n=y9MZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDf4KdzlqnKVuWikpdp2KJef+LR8IK58szFKDK+8HSkqAiEA/TuDRvwQHexvI30XjzcBcehbmerVdHQO9FlOCB5HRQU="}]},"_npmUser":{"name":"sprying","email":"sprying.fang@gmail.com"},"directories":{},"maintainers":[{"name":"sprying","email":"sprying.fang@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trusted-cert_1.0.2_1620884876771_0.935843754745918"},"_hasShrinkwrap":false},"1.0.3":{"name":"trusted-cert","version":"1.0.3","description":"A simple tool to generate self signed x509 certificate","bin":{"trusted-cert":"cli.js"},"main":"./dist/index.js","module":"./dist/index.esm.js","types":"./types/index.d.ts","scripts":{"clean":"rm -rf dist types","build":"npm run clean && rollup -c","watch":"npm run clean && rollup -c -w","release":"npm run clean && cross-env NODE_ENV=production rollup -c && npm publish","prepublishOnly":"npm run clean && cross-env NODE_ENV=production rollup -c "},"dependencies":{"command-exists":"^1.2.9","commander":"^5.0.0","debug":"^4.3.1","fs-extra":"^9.0.0","inquirer":"^7.1.0","moment":"^2.29.1","rimraf":"^3.0.2"},"devDependencies":{"@babel/core":"^7.13.16","@babel/plugin-transform-runtime":"^7.13.15","@babel/preset-env":"^7.13.15","@rollup/plugin-commonjs":"^18.0.0","@rollup/plugin-node-resolve":"^11.2.1","@types/command-exists":"^1.2.0","@types/debug":"^4.1.5","@types/fs-extra":"^9.0.11","@types/inquirer":"^7.3.1","@types/rimraf":"^3.0.0","@typescript-eslint/parser":"^4.22.0","cross-env":"^7.0.3","eslint":"^7.24.0","rollup":"^2.45.2","rollup-plugin-babel":"^4.4.0","rollup-plugin-terser":"^7.0.2","rollup-plugin-typescript2":"^0.30.0","ts-standard":"^10.0.0","typescript":"^4.2.4"},"engines":{"node":">=10"},"author":{"name":"慧知","email":"sprying.fang@qq.com","url":"https://sprying.cnblogs.com"},"license":"MIT","homepage":"https://github.com/sprying/trusted-cert/README.md","repository":{"type":"git","url":"git+https://github.com/sprying/trusted-cert.git"},"bugs":{"url":"https://github.com/sprying/trusted-cert/issues"},"keywords":["ssl","openssl","certificate","trust","https","trust store","x509","certificates","self-signed","self-signing","credential","credentials","keychain","ca"],"gitHead":"846cc6db7de14d26398dabe080ed76328f102763","_id":"trusted-cert@1.0.3","_nodeVersion":"12.14.0","_npmVersion":"6.14.13","dist":{"integrity":"sha512-jre9E2BERC20k51zvJT4rlVXSOTJ0Rf7XjUVWn/ULt+7rSn9VB5wxH5yUyYh634h9MbRXQzfbkmG0PD1GoSkwg==","shasum":"b09768080bc038b88e4f10cd96f885e94ea00cad","tarball":"https://registry.npmjs.org/trusted-cert/-/trusted-cert-1.0.3.tgz","fileCount":18,"unpackedSize":76366,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgpSPGCRA9TVsSAnZWagAAuhYQAIWisAFtJlSpB7yvQsys\nBmNKGbYHcd2ByrpZXWjKqymhCcdLDyh9j+S2d/Gi+1WcQz1EcpVUG90D38XY\nHzkxj2mJbCLqu/UfuFs7ERrURV47ZVU8UfkYs5a6TonVyDEbtS5ncwNL4+lj\nCbt8ABy/PdbTFFaLOD3TKJK9i+wv4L5qMz4+q/cS+OzP4tc9XaPZ0WstPQ1+\n5RYGPIdsKnMFMg7rF0OQgWR4syxtRdOCNwvwRFiehe8OLhtK/8htguLlGwnw\nD4ob0ILfvljQLsaOZrmDsT2/xgsTT/uOXqdSHThmWBreTKh3fWm8xlUNyp9i\niNaVDxYbYX6tmJWMW6wwdmjdLaYARBGDApWkfVueD0aBoAA6cKS5v56UlbL3\nmtIBPTa5G6+KYB8yRmqUtY3oryZiKUEWKOOp0+wD13XFTH3PtkukrD2EoOYM\n/TfhTactjFGTUzPyXIlR3FhqE37Vu09GsN87fNaVssafomSR0M0ul1XwrI5x\n+v5TMlJY7L4xb+uQcwBy6yZ94KY4+MCkLKhWxhlaiMmCrRxK1pVP0i1dsUsA\nU6s4jqQ0pYhQTkhVfnBNIDtdZuUXKUWLs1aZmMoogxmLxh/JMT2OVKuiDseM\nj9WpWpeU3Zr/WxVHem0LWQjtASYnq9cU634pMtc6J5QviFkoMkziQ/9lefU5\njjk6\r\n=3aUd\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHBJBpMIEKkNs49Jmz5YV/jn4rCRi20ngHm/Oi36F1PVAiBC0fjjI2cc/DAqbtf2R5FmS52gtYIqJlDhrCYfNRKQfQ=="}]},"_npmUser":{"name":"sprying","email":"sprying.fang@gmail.com"},"directories":{},"maintainers":[{"name":"sprying","email":"sprying.fang@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trusted-cert_1.0.3_1621435333856_0.04358364337479914"},"_hasShrinkwrap":false},"1.0.4-beta.1":{"name":"trusted-cert","version":"1.0.4-beta.1","description":"A simple tool to generate self signed x509 certificate","bin":{"trusted-cert":"cli.js"},"main":"./dist/index.js","module":"./dist/index.esm.js","types":"./types/index.d.ts","scripts":{"clean":"rm -rf dist types","build":"npm run clean && rollup -c","watch":"npm run clean && rollup -c -w","release":"npm run clean && cross-env NODE_ENV=production rollup -c && npm publish","prepublishOnly":"npm run clean && cross-env NODE_ENV=production rollup -c","madge":"madge --image ./source-file-deps-analysis.png src/index.ts","madge:watch":"nodemon --verbose --ext js,ts,tsx,json --watch lib --exec 'yarn run madge'"},"dependencies":{"command-exists":"^1.2.9","commander":"^5.0.0","debug":"^4.3.1","fs-extra":"^9.0.0","inquirer":"^7.1.0","moment":"^2.29.1","rimraf":"^3.0.2"},"devDependencies":{"@babel/core":"^7.13.16","@babel/plugin-transform-runtime":"^7.13.15","@babel/preset-env":"^7.13.15","@rollup/plugin-commonjs":"^18.0.0","@rollup/plugin-node-resolve":"^11.2.1","@types/command-exists":"^1.2.0","@types/debug":"^4.1.5","@types/fs-extra":"^9.0.11","@types/inquirer":"^7.3.1","@types/rimraf":"^3.0.0","@typescript-eslint/parser":"^4.22.0","cross-env":"^7.0.3","eslint":"^7.24.0","madge":"^4.0.2","rollup":"^2.45.2","rollup-plugin-babel":"^4.4.0","rollup-plugin-terser":"^7.0.2","rollup-plugin-typescript2":"^0.30.0","ts-standard":"^10.0.0","typescript":"^4.2.4"},"engines":{"node":">=10"},"author":{"name":"慧知","email":"sprying.fang@qq.com","url":"https://sprying.cnblogs.com"},"license":"MIT","homepage":"https://github.com/sprying/trusted-cert/README.md","repository":{"type":"git","url":"git+https://github.com/sprying/trusted-cert.git"},"bugs":{"url":"https://github.com/sprying/trusted-cert/issues"},"tnpm":{"lockfile":"enable","mode":"yarn"},"keywords":["ssl","openssl","certificate","trust","https","trust store","x509","certificates","self-signed","self-signing","credential","credentials","keychain","ca"],"gitHead":"846cc6db7de14d26398dabe080ed76328f102763","_id":"trusted-cert@1.0.4-beta.1","_nodeVersion":"12.14.0","_npmVersion":"6.14.13","dist":{"integrity":"sha512-N1YjZCqcwtXQWZlW+Wqa8Jz0FDoJsWZG5s1Nu6UDegu9Ags3Ut12ToetSJwhTm9zxvJpGa67tDpzE773qaIE7g==","shasum":"b6c23aa0fc701e376cda9eb93faf779ca70e0fb0","tarball":"https://registry.npmjs.org/trusted-cert/-/trusted-cert-1.0.4-beta.1.tgz","fileCount":18,"unpackedSize":77650,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgs5M4CRA9TVsSAnZWagAA4FQP/3G5qJ6eK46Wc99mG1pW\nmzN7RJWilhreNgp7b7Y5DHvvhhbPdhO3++t6rDJF5fvpDLheKEEmm5FbMxOx\nV3E/RQP3lfMf97+B84x+rnb/E1EfIklFe4CFlieqSMsvgLJZ/DvKxUNmOcXE\nnGNvTBPV6wOstJ9RGzH5GtpjgFyQea0tGDCxTzxlBckVy8e70ondTU++6F1B\n2M8pHRHLxH6oBT1EQDpZ3X7zkBMgznNPwcFytCCoqrkiYsOIY8Ktiwdmn5dS\nzmVVjHiCA6dyvDJJfD0EpU1MUyVMsiKBal2g3pMbNvWY7n6IbsQUfMFPZOBb\niPd/pub/oWb2MkRuFOYk8CqCqyduUpQz3rVdnILZVd+uSC+A63H4OcIinJJg\nEI/anLFEVjhwyR9g0HALqXAOauAhE2fDRDDSaEDHJqXx7dpVpnMN7sUWV8kj\nQjIXN/MXGxWsDS7msS1+2Q/OPLLiaF63b+h7Lr3EuLED1nhF+2xfXmGDY7zG\nPZL/WjDCY7scG/pkmXzv8ceIJ0m9oyZJEwwNLXyw+PuSsK6JprnTYmdBPv6x\nUiRyQoQtBwMm7XIo4f90E1H8lP3xdGBJlzKzh5mfiByRkRJhIv5G2UGjFq9u\n9mKsrg48MMEFI/YQNPy5iDDBm7/zHTTj77kmkXje4PEMHTMd8ZGNBOGxqh9q\nHIa6\r\n=0dOm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCchk15YF3Zw1GU85Kyfs9bllsFEhxkgtqF/uO7RAYUuQIgFtqb0UB4yvlLWmgSnaeA9BBTGzUge7jwgMMqLhVi1Ok="}]},"_npmUser":{"name":"sprying","email":"sprying.fang@gmail.com"},"directories":{},"maintainers":[{"name":"sprying","email":"sprying.fang@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trusted-cert_1.0.4-beta.1_1622381367663_0.052999028219833155"},"_hasShrinkwrap":false},"1.0.4":{"name":"trusted-cert","version":"1.0.4","description":"A simple tool to generate self signed x509 certificate","bin":{"trusted-cert":"cli.js"},"main":"./dist/index.js","module":"./dist/index.esm.js","types":"./types/index.d.ts","scripts":{"clean":"rm -rf dist types","build":"npm run clean && rollup -c","watch":"npm run clean && rollup -c -w","release":"npm run clean && cross-env NODE_ENV=production rollup -c && npm publish","prepublishOnly":"npm run clean && cross-env NODE_ENV=production rollup -c","madge":"madge --image ./source-file-deps-analysis.png src/index.ts","madge:watch":"nodemon --verbose --ext js,ts,tsx,json --watch lib --exec 'yarn run madge'"},"dependencies":{"command-exists":"^1.2.9","commander":"^5.0.0","debug":"^4.3.1","fs-extra":"^9.0.0","inquirer":"^7.1.0","moment":"^2.29.1","rimraf":"^3.0.2"},"devDependencies":{"@babel/core":"^7.13.16","@babel/plugin-transform-runtime":"^7.13.15","@babel/preset-env":"^7.13.15","@rollup/plugin-commonjs":"^18.0.0","@rollup/plugin-node-resolve":"^11.2.1","@types/command-exists":"^1.2.0","@types/debug":"^4.1.5","@types/fs-extra":"^9.0.11","@types/inquirer":"^7.3.1","@types/rimraf":"^3.0.0","@typescript-eslint/parser":"^4.22.0","cross-env":"^7.0.3","eslint":"^7.24.0","madge":"^4.0.2","nodemon":"^2.0.7","rollup":"^2.45.2","rollup-plugin-babel":"^4.4.0","rollup-plugin-terser":"^7.0.2","rollup-plugin-typescript2":"^0.30.0","ts-standard":"^10.0.0","typescript":"^4.2.4"},"engines":{"node":">=10"},"author":{"name":"慧知","email":"sprying.fang@qq.com","url":"https://sprying.cnblogs.com"},"license":"MIT","homepage":"https://github.com/sprying/trusted-cert/README.md","repository":{"type":"git","url":"git+https://github.com/sprying/trusted-cert.git"},"bugs":{"url":"https://github.com/sprying/trusted-cert/issues"},"tnpm":{"lockfile":"enable","mode":"yarn"},"keywords":["ssl","openssl","certificate","trust","https","trust store","x509","certificates","self-signed","self-signing","credential","credentials","keychain","ca"],"gitHead":"9e009956180ccae40ba4f60f0bb8390c4a34cdbb","_id":"trusted-cert@1.0.4","_nodeVersion":"12.14.0","_npmVersion":"6.14.13","dist":{"integrity":"sha512-vG9qi5jE0USrejWwp+OKs/UZQX7i1t3p+6s1kpcAmw89YWuxBUwz8veZskzFSOL5x3arphYakMUEjUuCi13YvQ==","shasum":"9e78ef72df524a0c63b85bc006d9b308a4b43431","tarball":"https://registry.npmjs.org/trusted-cert/-/trusted-cert-1.0.4.tgz","fileCount":18,"unpackedSize":77654,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgs5XICRA9TVsSAnZWagAAoJUP/0mNjcH7q27Ud7WlgXW3\nOZz4hFJ39cojCUg9c82MDpdoF9ymy2AVNu4tAsHJqu3NSM8PcpMreQgrCiUZ\nno5qrPo0zK43Mp4MDW+dm0iqvhpUX7wlrstExSTUTn2/1MrI4gFDm+S8wGpB\nClW5SkA7Qr1JZ6UeYfeyxV1ErWW4vQCEnIwSaRMpi0ntGy5944XDYWN4HTLT\nG+KBXK7etMkXML1FBKd+1smNClMPGmPUXL7T38bj4z3w3ne38wqAzYsPUje4\nVj7QKJpbhGl1SKxzt+6IahVnxpSyLr8r/SC2H1iyZof6euxvLg2KFvMjpLW6\nig35//a/AUeDMMHuQhnhcq/97saiKo1o+H90MhE1nTbkjT9fAIj8z2FatuOd\nbc8s6PPwuwqh/FvispjcQsVTJ3DIyxdO3WD6ucoEBdzA8xCCnPyDiLiXJGej\nMuSAYFEtONXRFmgMOmElsJcubEMdaMrFX9m5N994W0Ju9zag5PVQzpTMw0Lz\n2SKQAc5PoExTXI16fqiKiWYNM4d77jKnTZHN/0FYIGty4Rkm642mGEmXn8pW\nYPiSM8SR6O5UnDvJSJdIF//zFW+HPfOLDZQ460KgKN//1dsN/45m9fgXxFjW\n2Rzmz6x2MTgzxyuha1/GQh8EcarAV+NmwBDR8SjF4C2ov5i/RedY34rsQgy0\n1jm9\r\n=0xIo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBwCy20t4JGlsXrE4qgj6JENcTSFr5eVTrDw9PKZKHa3AiEA5Xbay43D2XIO43tUc6aWxSIe7AI/HlBeJu9fpPbtAPQ="}]},"_npmUser":{"name":"sprying","email":"sprying.fang@gmail.com"},"directories":{},"maintainers":[{"name":"sprying","email":"sprying.fang@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trusted-cert_1.0.4_1622382023891_0.3575189542619446"},"_hasShrinkwrap":false},"1.0.5":{"name":"trusted-cert","version":"1.0.5","description":"A simple tool to generate self signed x509 certificate","bin":{"trusted-cert":"cli.js"},"main":"./dist/index.js","module":"./dist/index.esm.js","types":"./types/index.d.ts","scripts":{"clean":"rm -rf dist types","build":"npm run clean && rollup -c","watch":"npm run clean && rollup -c -w","release":"npm run clean && cross-env NODE_ENV=production rollup -c && npm publish","prepublishOnly":"npm run clean && cross-env NODE_ENV=production rollup -c","madge":"madge --image ./source-file-deps-analysis.png src/index.ts","madge:watch":"nodemon --verbose --ext js,ts,tsx,json --watch lib --exec 'yarn run madge'"},"dependencies":{"command-exists":"^1.2.9","commander":"^5.0.0","debug":"^4.3.1","fs-extra":"^9.0.0","inquirer":"^7.1.0","moment":"^2.29.1","rimraf":"^3.0.2"},"devDependencies":{"@babel/core":"^7.13.16","@babel/plugin-transform-runtime":"^7.13.15","@babel/preset-env":"^7.13.15","@rollup/plugin-commonjs":"^18.0.0","@rollup/plugin-node-resolve":"^11.2.1","@types/command-exists":"^1.2.0","@types/debug":"^4.1.5","@types/fs-extra":"^9.0.11","@types/inquirer":"^7.3.1","@types/rimraf":"^3.0.0","@typescript-eslint/parser":"^4.22.0","cross-env":"^7.0.3","eslint":"^7.24.0","madge":"^4.0.2","nodemon":"^2.0.7","rollup":"^2.45.2","rollup-plugin-babel":"^4.4.0","rollup-plugin-terser":"^7.0.2","rollup-plugin-typescript2":"^0.30.0","ts-standard":"^10.0.0","typescript":"^4.2.4"},"engines":{"node":">=10"},"author":{"name":"慧知","email":"sprying.fang@qq.com","url":"https://sprying.cnblogs.com"},"license":"MIT","homepage":"https://github.com/sprying/trusted-cert/README.md","repository":{"type":"git","url":"git+https://github.com/sprying/trusted-cert.git"},"bugs":{"url":"https://github.com/sprying/trusted-cert/issues"},"tnpm":{"lockfile":"enable","mode":"yarn"},"keywords":["ssl","openssl","certificate","trust","https","trust store","x509","certificates","self-signed","self-signing","credential","credentials","keychain","ca"],"gitHead":"9e009956180ccae40ba4f60f0bb8390c4a34cdbb","_id":"trusted-cert@1.0.5","_nodeVersion":"12.14.0","_npmVersion":"6.14.13","dist":{"integrity":"sha512-hnYMrB3VorMa+x/WVJ63zUKVcIEFd1EVTRg7cgHeAZwdEBBFwUa8Mk64ccw7bv9AjnH9ccJ5p9RFDCZAYGCj4w==","shasum":"7a08395acabed2fc67c43808aa4eee99298820c2","tarball":"https://registry.npmjs.org/trusted-cert/-/trusted-cert-1.0.5.tgz","fileCount":18,"unpackedSize":78242,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgtSMKCRA9TVsSAnZWagAAJ+8P/24dVt9bF8f2qpGY1zgf\nbgrL4mUJlsY3atED5Sf4CvggP8p4WKeGYP6SO2J0rKpucNI5Cwlyy4owisPw\n8FpB72DkywpH/h9GD0KMWn/GBGst2919PuHGOltjHR+OZ3DTKKBJbXNb2vJI\nSf1Jz7q/ukPDbc/9a4W/EatVH5rB7vgwVqPGqKfacwQkzlOJ+gR3mkmKyyqG\nm4NIXh7YI12iKwdXsGdOI4AgZOgqa9JTdeoYujDNtM54jiEX4MVhuKvg3vAh\n2nUHzlAJkmA1MCuATGP7YFslKSDxx/kiS32SsudPy12Z3AjQ21wg9JI2qmR6\ndwzF4nSDYNXJ4114uQOYbs/eP6SoEDkNInH4MQXF4On4QpO11cqrIaFor2X2\nW1APMOnvox6VqcUq4ImBF39rW6puyF/CNjU34UnCxsOmXaxiCaNVd3ZyTx6i\njIdkCKoz9JZ7HX28pWXTSKijH9ciLoGGH1cVn8qxHU13M7S/KcsCq0sfPNTB\nmxqI2xM5w5zHCLPn4n088jP9u1FWrnLt79UiKp7BWfx1U0waH8/aj2B8gLOg\no8wK3WU4aQzHtqk06KdsvWbHoqKDuGOmwkCUZr6fTyREoiLXFuy/bnhkCJ+3\nZs27Zm9wlI3Z4I3Xm9/eSV/+heeO9Ars7K//30/yuW3lVU98EJmr34mkjkxk\nWJkk\r\n=SyJg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD/m1Uxu5QhXU9cLX1Z6ttsA5oNw1yj/qEHWgJ7DbKRnwIhAJnESd6XgZ0nWKSUCsxBLEMWVCHlRvwnU97YDO9bddZt"}]},"_npmUser":{"name":"sprying","email":"sprying.fang@gmail.com"},"directories":{},"maintainers":[{"name":"sprying","email":"sprying.fang@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trusted-cert_1.0.5_1622483721993_0.017735418306612294"},"_hasShrinkwrap":false},"1.1.0-beta.1":{"name":"trusted-cert","version":"1.1.0-beta.1","description":"A simple tool to generate self signed x509 certificate","bin":{"trusted-cert":"cli.js"},"main":"./dist/index.js","module":"./dist/index.esm.js","types":"./types/index.d.ts","scripts":{"clean":"rm -rf dist types","build":"npm run clean && rollup -c","watch":"npm run clean && rollup -c -w","release":"npm run clean && cross-env NODE_ENV=production rollup -c && npm publish","release:next":"npm run clean && cross-env NODE_ENV=production rollup -c && npm publish --tag next","prepublishOnly":"npm run clean && cross-env NODE_ENV=production rollup -c","madge":"madge --image ./source-file-deps-analysis.png src/index.ts","madge:watch":"nodemon --verbose --ext js,ts,tsx,json --watch lib --exec 'yarn run madge'"},"dependencies":{"@types/node-forge":"^0.9.9","command-exists":"^1.2.9","commander":"^5.0.0","debug":"^4.3.1","fs-extra":"^9.0.0","inquirer":"^7.1.0","is-ip":"^3.1.0","moment":"^2.29.1","node-forge":"^0.10.0","random-int":"^3.0.0","rimraf":"^3.0.2","util":"^0.12.4"},"devDependencies":{"@babel/core":"^7.13.16","@babel/plugin-transform-runtime":"^7.13.15","@babel/preset-env":"^7.13.15","@rollup/plugin-commonjs":"^18.0.0","@rollup/plugin-node-resolve":"^11.2.1","@types/command-exists":"^1.2.0","@types/debug":"^4.1.5","@types/fs-extra":"^9.0.11","@types/inquirer":"^7.3.1","@types/rimraf":"^3.0.0","@typescript-eslint/parser":"^4.22.0","cross-env":"^7.0.3","eslint":"^7.24.0","madge":"^4.0.2","nodemon":"^2.0.7","rollup":"^2.45.2","rollup-plugin-babel":"^4.4.0","rollup-plugin-terser":"^7.0.2","rollup-plugin-typescript2":"^0.30.0","ts-standard":"^10.0.0","typescript":"^4.2.4"},"engines":{"node":">=10"},"author":{"name":"慧知","email":"sprying.fang@qq.com","url":"https://sprying.cnblogs.com"},"license":"MIT","homepage":"https://github.com/sprying/trusted-cert/README.md","repository":{"type":"git","url":"git+https://github.com/sprying/trusted-cert.git"},"bugs":{"url":"https://github.com/sprying/trusted-cert/issues"},"tnpm":{"lockfile":"enable","mode":"yarn"},"keywords":["ssl","openssl","certificate","trust","https","trust store","x509","certificates","self-signed","self-signing","credential","credentials","keychain","ca"],"readme":"# 简介\nHTTPS自签名证书工具，自动生成自签名证书并添加到系统钥匙串，支持mac和windows系统，提供了命令行和供其它命令行调用API的两种使用方式，下面示例是使用mac。\n\n# 使用说明\n## 方式一“命令行”\n### 快速使用\n\n1. **生成密钥和证书** 创建过程会提示输入域名，这里使用默认域名，直接回车；输入密码，向macOS钥匙串里添加证书。\n\t\n\ta. 安装命令行工具\n\t```bash\n\t# 全局安装\n\tnpm install trusted-cert -g\n\t# 或者使用yarn\n\tyarn global add trusted-cert\n\t```\n\t\n\tb. 一键生成自签名证书并添加到macOS钥匙串\n\n\t```bash\n\ttrusted-cert install\n\t```\n\n2. 在nodejs中使用生成的密钥和证书（更多方式参考最后的【附配置服务的HTTPS证书示例】）\n \n\t```javascript\n\tconst https = require('https');\n\tconst fs = require('fs');\n\tconst path = require('path');\n\t\n\tconst options = {\n      key: fs.readFileSync(path.join(process.env.HOME, '.trusted-cert/ssl.key')),\n      cert: fs.readFileSync(path.join(process.env.HOME, '.trusted-cert/ssl.crt')),\n\t};\n\t\n\thttps.createServer(options, (req, res) => {\n\t  res.writeHead(200);\n\t  res.end('hello world\\n');\n\t}).listen(8000);\n\t```\n\n3. 浏览器打开访问<https://localhost:8000/>，发现网址标为了安全\n\n### 命令行功能介绍\n\n```bash\ntrusted-cert --help\n```\n\n```\nUsage: trusted-cert [global options] command\n\nOptions:\n  -v, --version   当前版本\n  -h, --help      display help for command\n\nCommands:\n  install         生成ssl密钥和自签名证书，在系统钥匙串里添加和信任自签名证书\n  info            查看自签名信息\n  trust           信任自签名证书\n  add <host>      添加要支持的域名，支持以,分隔\n  uninstall       删除生成的ssl密钥和自签名证书\n  help [command]  display help for command\n\n先安装，再使用其它命令\n  $ trusted-cert install\n```\n\n### `trusted-cert install`\n一键生成自签名证书并添加到macOS钥匙串，在这个过程中，需要输入本地启动https服务要支持的域名，多个以`,`分隔，然后会提示要输入密码，用来将自签名证书以sudo权限添加到系统钥匙串里，如果添加失败，后面浏览器访问https服务，会提示不安全。\n\n### `trusted-cert trust`\n如果install过程中三次输入密码都错误了，还可以单独运行这个命令重新添加到系统钥匙串。或者发现chrome下访问https还是提醒非安全，可以去查看确认下证书是否已经添加到系统钥匙串，证书是否过期。\n\n### `trusted-cert info`\n生成证书后，可以随时通过这个命令查看密钥等文件的位置，方便你在配置服务器https时需要它，还可以看到支持的域名，是否已经添加到系统钥匙串，证书的有效时间。\n\n### `trusted-cert add <host>`\n通过这个命令新增本地https服务要用的域名，新增时先检测证书是否已经支持了该域名，比如证书支持*.m.taobao.com，本地要使用test.m.taobao.com域名，检测发现已经支持了，会提醒不用新增。如果遇到需要新增的，会先删除原有的密钥等文件和钥匙串里证书，然后再新增。\n\n### `trusted-cert uninstall`\n删除本地存放密钥、证书等文件的目录，删除钥匙串里添加的证书\n\n\n## 方式二“供他方命令行调用的api”\n### 快速使用\n1. 安装依赖  \n\t```bash\n\tnpm install trusted-cert --save\n\t# 或者使用yarn\n\tyarn add trusted-cert\n\t```\n\t\n2. 调用api  \n\n\t```javascript\n\tconst https = require('https')\n\tconst fs = require('fs')\n\tconst { certificateFor } = require('trusted-cert')\n\tconst hosts = ['test.m.taobao.com', '192.168.0.1'] // 本地https服务要使用的domain/ip\n\tcertificateFor(hosts).then((keyAndCert) => {\n\t\thttps.createServer(keyAndCert, (req, res) => {\n\t\t  res.writeHead(200);\n\t\t  res.end('hello world\\n')\n\t\t}).listen(8000)\n\t})\n\t```\n\n3. 浏览器打开访问<https://test.m.taobao.com:8000/>，发现网址标为了安全\n\n### api介绍\n调用api传入要使用的host列表，工具先检测是否安装过证书，没安装过开始安装，安装过的继续检测装过的证书是否已经支持这些host，还有其它检测，针对检测到点一一修复，最后返回密钥和证书的文件路径等信息。\n\n考虑到对于开发者而言，在电脑中只需要一份ssl的密钥和自签名证书就够用了，所以不管是命令行方式还是api，只生成一份文件存放在系统固定位置`~/.trusted-cert`，工具在钥匙串里也只有一份自签名证书，由工具来管理自证书包括生成、销毁、重新生成的生命周期。\n\n# 附配置服务的HTTPS证书示例\n## webpack\n```javascript\n{\n  // ...\n  devServer: {\n    https: {\n      key: fs.readFileSync(path.join(process.env.HOME, '.trusted-cert/ssl.key')),\n      cert: fs.readFileSync(path.join(process.env.HOME, '.trusted-cert/ssl.crt'))\n    }\n  }\n  // ...\n}\n```\n\n## nginx\n```nginx\n# ...\nserver {\n  listen  443;\n  server_name shop.alimama.com;\n \n ssl on;\n  ssl_certificate     /Users/xxx/.trusted-cert/ssl.crt;\n  ssl_certificate_key /Users/xxx/.trusted-cert/ssl.key;\n \n  location  / {\n    proxy_pass  http://127.0.0.1:8002;\n  }\n}\n# ...\n```\n\n\n## nodejs\n```javascript\nconst https = require('https');\nconst fs = require('fs');\nconst path = require('path');\n\nconst options = {\n  key: fs.readFileSync(path.join(process.env.HOME, '.trusted-cert/ssl.key')),\n  cert: fs.readFileSync(path.join(process.env.HOME, '.trusted-cert/ssl.crt')),\n};\n\nhttps.createServer(options, (req, res) => {\n  res.writeHead(200);\n  res.end('hello world\\n');\n}).listen(8000);\n```\n","readmeFilename":"README.md","gitHead":"289cac6f1cb761ee89e56ebb4cd2bc10cf6dec4a","_id":"trusted-cert@1.1.0-beta.1","_nodeVersion":"12.14.0","_npmVersion":"6.14.13","dist":{"integrity":"sha512-ulHixWnOThsa/6JJ7eArVo2TTNQkyiCjhVv6+ezGg0NN/wA9D8E7EdRNiy+EcIIC5kRHlKSIcv132j43SylDAA==","shasum":"c9bbc44efb7c4574eb50e5e75983f9e1d19200cb","tarball":"https://registry.npmjs.org/trusted-cert/-/trusted-cert-1.1.0-beta.1.tgz","fileCount":18,"unpackedSize":661954,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgtT0zCRA9TVsSAnZWagAAhOoP/Arz6LGuM6c3nh5ZXYTB\nFdQNY14N/ZEXFljEfhQn9FPAg/uPKFKJd0Q31ZmxLhBNcAYePtNTAy2rEDT6\nt+tvBQgZkR0qzx9c8xV+r4TxyVXNe0Mmyb54Lm2U/BJamvJX6mcKYLCUPUhy\nR0JhgWvasQ75RJOB/PU1ASEf1ZiJ2z9Wj1Goph9bACnMHb2QHccoy+yjbDTr\nwZ4h65Oe1peJ4K0tOwWbZdPv/uavUcymiZmcjxLNfuzLDyCfFCpXeEep2/uG\nbK+7Hg9f3xXr9x5jAKSEqd3swXt/a5uWx0yA00wp+lfpfVxIS3FdwKuTqSir\nzEIA+jNXYeuRdgx0X9H4np4XK8sxDhskKMu9eBA76KCwBbsjDKLaOjsZiADd\nYqGGthPHZ1W5BjzyJRtypziv+jHiQHzRugFk9B0k07U8c4xILme0DUQYtKau\n2i3eAmDFBCxY20n51/mmKwY1ZyQIMUesDKeJVVYTOTfWBBgbo8ZDjKBzqo3V\nH2eQXPbG0SBjxYinkAtcW9gPAokWD2AIc3Bp2gywipPsDFzuVko8zS7C9lNJ\nMwqAdQpkhVwrHcQCh2qr1OSn9ark0d3O+Tc03IOiVQdqSPXkiv/ipNZCtDO7\n0FZ9fq3BKtNj8zpp2opG5IDVo2pg1q2buMv+gVSWi/FyH2qw5FbumXxvmPo+\nP2Iq\r\n=WBig\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC21JwQNCy9MqzV3z/3Php2s0tRYEtYLaiPfjVBwDNvLQIhAPLr8rFhn1IXbU2IR5n+f1oRlR8hUSZ9gZSPpFEJV4ux"}]},"_npmUser":{"name":"sprying","email":"sprying.fang@gmail.com"},"directories":{},"maintainers":[{"name":"sprying","email":"sprying.fang@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trusted-cert_1.1.0-beta.1_1622490419372_0.9793752907848554"},"_hasShrinkwrap":false},"1.1.0-beta.2":{"name":"trusted-cert","version":"1.1.0-beta.2","description":"A simple tool to generate self signed x509 certificate","bin":{"trusted-cert":"cli.js"},"main":"./dist/index.js","module":"./dist/index.esm.js","types":"./types/index.d.ts","scripts":{"clean":"rm -rf dist types","build":"npm run clean && rollup -c","watch":"npm run clean && rollup -c -w","release":"npm run clean && cross-env NODE_ENV=production rollup -c && npm publish","release:next":"npm run clean && cross-env NODE_ENV=production rollup -c && npm publish --tag next","prepublishOnly":"npm run clean && cross-env NODE_ENV=production rollup -c","madge":"madge --image ./source-file-deps-analysis.png src/index.ts","madge:watch":"nodemon --verbose --ext js,ts,tsx,json --watch lib --exec 'yarn run madge'"},"dependencies":{"@types/node-forge":"^0.9.9","command-exists":"^1.2.9","commander":"^5.0.0","debug":"^4.3.1","fs-extra":"^9.0.0","inquirer":"^7.1.0","is-ip":"^3.1.0","moment":"^2.29.1","node-forge":"^0.10.0","random-int":"^3.0.0","rimraf":"^3.0.2","util":"^0.12.4"},"devDependencies":{"@babel/core":"^7.13.16","@babel/plugin-transform-runtime":"^7.13.15","@babel/preset-env":"^7.13.15","@rollup/plugin-commonjs":"^18.0.0","@rollup/plugin-node-resolve":"^11.2.1","@types/command-exists":"^1.2.0","@types/debug":"^4.1.5","@types/fs-extra":"^9.0.11","@types/inquirer":"^7.3.1","@types/rimraf":"^3.0.0","@typescript-eslint/parser":"^4.22.0","cross-env":"^7.0.3","eslint":"^7.24.0","madge":"^4.0.2","nodemon":"^2.0.7","rollup":"^2.45.2","rollup-plugin-babel":"^4.4.0","rollup-plugin-terser":"^7.0.2","rollup-plugin-typescript2":"^0.30.0","ts-standard":"^10.0.0","typescript":"^4.2.4"},"engines":{"node":">=10"},"author":{"name":"慧知","email":"sprying.fang@qq.com","url":"https://sprying.cnblogs.com"},"license":"MIT","homepage":"https://github.com/sprying/trusted-cert/README.md","repository":{"type":"git","url":"git+https://github.com/sprying/trusted-cert.git"},"bugs":{"url":"https://github.com/sprying/trusted-cert/issues"},"tnpm":{"lockfile":"enable","mode":"yarn"},"keywords":["ssl","openssl","certificate","trust","https","trust store","x509","certificates","self-signed","self-signing","credential","credentials","keychain","ca"],"readme":"# 简介\nHTTPS自签名证书工具，自动生成自签名证书并添加到系统钥匙串，支持mac和windows系统，提供了命令行和供其它命令行调用API的两种使用方式，下面示例是使用mac。\n\n# 使用说明\n## 方式一“命令行”\n### 快速使用\n\n1. **生成密钥和证书** 创建过程会提示输入域名，这里使用默认域名，直接回车；输入密码，向macOS钥匙串里添加证书。\n\t\n\ta. 安装命令行工具\n\t```bash\n\t# 全局安装\n\tnpm install trusted-cert -g\n\t# 或者使用yarn\n\tyarn global add trusted-cert\n\t```\n\t\n\tb. 一键生成自签名证书并添加到macOS钥匙串\n\n\t```bash\n\ttrusted-cert install\n\t```\n\n2. 在nodejs中使用生成的密钥和证书（更多方式参考最后的【附配置服务的HTTPS证书示例】）\n \n\t```javascript\n\tconst https = require('https');\n\tconst fs = require('fs');\n\tconst path = require('path');\n\t\n\tconst options = {\n      key: fs.readFileSync(path.join(process.env.HOME, '.trusted-cert/ssl.key')),\n      cert: fs.readFileSync(path.join(process.env.HOME, '.trusted-cert/ssl.crt')),\n\t};\n\t\n\thttps.createServer(options, (req, res) => {\n\t  res.writeHead(200);\n\t  res.end('hello world\\n');\n\t}).listen(8000);\n\t```\n\n3. 浏览器打开访问<https://localhost:8000/>，发现网址标为了安全\n\n### 命令行功能介绍\n\n```bash\ntrusted-cert --help\n```\n\n```\nUsage: trusted-cert [global options] command\n\nOptions:\n  -v, --version   当前版本\n  -h, --help      display help for command\n\nCommands:\n  install         生成ssl密钥和自签名证书，在系统钥匙串里添加和信任自签名证书\n  info            查看自签名信息\n  trust           信任自签名证书\n  add <host>      添加要支持的域名，支持以,分隔\n  uninstall       删除生成的ssl密钥和自签名证书\n  help [command]  display help for command\n\n先安装，再使用其它命令\n  $ trusted-cert install\n```\n\n### `trusted-cert install`\n一键生成自签名证书并添加到macOS钥匙串，在这个过程中，需要输入本地启动https服务要支持的域名，多个以`,`分隔，然后会提示要输入密码，用来将自签名证书以sudo权限添加到系统钥匙串里，如果添加失败，后面浏览器访问https服务，会提示不安全。\n\n### `trusted-cert trust`\n如果install过程中三次输入密码都错误了，还可以单独运行这个命令重新添加到系统钥匙串。或者发现chrome下访问https还是提醒非安全，可以去查看确认下证书是否已经添加到系统钥匙串，证书是否过期。\n\n### `trusted-cert info`\n生成证书后，可以随时通过这个命令查看密钥等文件的位置，方便你在配置服务器https时需要它，还可以看到支持的域名，是否已经添加到系统钥匙串，证书的有效时间。\n\n### `trusted-cert add <host>`\n通过这个命令新增本地https服务要用的域名，新增时先检测证书是否已经支持了该域名，比如证书支持*.m.taobao.com，本地要使用test.m.taobao.com域名，检测发现已经支持了，会提醒不用新增。如果遇到需要新增的，会先删除原有的密钥等文件和钥匙串里证书，然后再新增。\n\n### `trusted-cert uninstall`\n删除本地存放密钥、证书等文件的目录，删除钥匙串里添加的证书\n\n\n## 方式二“供他方命令行调用的api”\n### 快速使用\n1. 安装依赖  \n\t```bash\n\tnpm install trusted-cert --save\n\t# 或者使用yarn\n\tyarn add trusted-cert\n\t```\n\t\n2. 调用api  \n\n\t```javascript\n\tconst https = require('https')\n\tconst fs = require('fs')\n\tconst { certificateFor } = require('trusted-cert')\n\tconst hosts = ['test.m.taobao.com', '192.168.0.1'] // 本地https服务要使用的domain/ip\n\tcertificateFor(hosts).then((keyAndCert) => {\n\t\thttps.createServer(keyAndCert, (req, res) => {\n\t\t  res.writeHead(200);\n\t\t  res.end('hello world\\n')\n\t\t}).listen(8000)\n\t})\n\t```\n\n3. 浏览器打开访问<https://test.m.taobao.com:8000/>，发现网址标为了安全\n\n### api介绍\n调用api传入要使用的host列表，工具先检测是否安装过证书，没安装过开始安装，安装过的继续检测装过的证书是否已经支持这些host，还有其它检测，针对检测到点一一修复，最后返回密钥和证书的文件路径等信息。\n\n考虑到对于开发者而言，在电脑中只需要一份ssl的密钥和自签名证书就够用了，所以不管是命令行方式还是api，只生成一份文件存放在系统固定位置`~/.trusted-cert`，工具在钥匙串里也只有一份自签名证书，由工具来管理自证书包括生成、销毁、重新生成的生命周期。\n\n# 附配置服务的HTTPS证书示例\n## webpack\n```javascript\n{\n  // ...\n  devServer: {\n    https: {\n      key: fs.readFileSync(path.join(process.env.HOME, '.trusted-cert/ssl.key')),\n      cert: fs.readFileSync(path.join(process.env.HOME, '.trusted-cert/ssl.crt'))\n    }\n  }\n  // ...\n}\n```\n\n## nginx\n```nginx\n# ...\nserver {\n  listen  443;\n  server_name shop.alimama.com;\n \n ssl on;\n  ssl_certificate     /Users/xxx/.trusted-cert/ssl.crt;\n  ssl_certificate_key /Users/xxx/.trusted-cert/ssl.key;\n \n  location  / {\n    proxy_pass  http://127.0.0.1:8002;\n  }\n}\n# ...\n```\n\n\n## nodejs\n```javascript\nconst https = require('https');\nconst fs = require('fs');\nconst path = require('path');\n\nconst options = {\n  key: fs.readFileSync(path.join(process.env.HOME, '.trusted-cert/ssl.key')),\n  cert: fs.readFileSync(path.join(process.env.HOME, '.trusted-cert/ssl.crt')),\n};\n\nhttps.createServer(options, (req, res) => {\n  res.writeHead(200);\n  res.end('hello world\\n');\n}).listen(8000);\n```\n","readmeFilename":"README.md","gitHead":"289cac6f1cb761ee89e56ebb4cd2bc10cf6dec4a","_id":"trusted-cert@1.1.0-beta.2","_nodeVersion":"12.14.0","_npmVersion":"6.14.13","dist":{"integrity":"sha512-uhnDNvmN5qA/69w8B4pqCTvs1u3yLDR13BI2iS9e61rq3bCYpKq8Xtwalth5c0ozP6skFf+DknMifwSvOIgyIg==","shasum":"03400eb085bc71a63099dafe3236d4fbd9cd95b8","tarball":"https://registry.npmjs.org/trusted-cert/-/trusted-cert-1.1.0-beta.2.tgz","fileCount":18,"unpackedSize":87305,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgtT11CRA9TVsSAnZWagAAPwgQAKTejMBHRuTnmtKVt+IP\nqV0aUxbdKRK9BIDFFwkAoQvsXxtyiSXVqYuv+H/XtNWIb+se85ixn5exXxih\nrQ6xgWfdFHPUo5qiDd73mRnSdgyLmd7ybCdNdO4UcsXiBECAayHQP1XIrnx4\nYZ4Yx9zPIRAMtoLH6N07K6fp319f4jYOKRfG+26JkCI/cKJlgiQqPlTpidBY\nZav066vrkIHQwuX9icPpcpSucwIbb8cemAfW8R0vVtLr0IgZxLVBGUgR5PmV\nwcTpBU8H9r3G/eNol+oekBDO9+Sqgmro7hFVLZ8//0j2wT+duM2Qqgb0cyNC\n85HUnjz+StPkLSww4lNEPlPbYe6cWWhK+QvcFige2qcXgsPOFZhc8REJJAEE\nTSZaJZuOCIidppdEzNGi3km6uybOVSQxHSn7mAu3ZEiVEHyrJJ2p/1ke0Mer\nca8JkUrjahF2osTnuu8mrblAeKcXpvrPZ38Mm/KQNEKWTXmORQkgoI/xOU7s\nb6gSNbO/BMtrQ7UVjNhCOyDb+eHmhXsyFC2PFz+WkS9Y7YZ0YPEIRf8z7hAz\nEcPn5Rg9cAYpfQO9Wj/vysRFUe91cjWa4HvDrSI8Kt1jo3f6Mn3E9326YerM\nNY9w76vgliIX6xqv7KKiq5G9yxWJ+g9dp6fZ9f3PGuooehrpTCQo17BSkGmQ\npIhS\r\n=yev/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQClI1T9fr13rvHC4F+N47C/j2OjbIVn5Waj8DOogTCkgwIhAOhWelQqjVQn+K5TBFnzluLHWzr8yfpPN7DSkIRPzfwa"}]},"_npmUser":{"name":"sprying","email":"sprying.fang@gmail.com"},"directories":{},"maintainers":[{"name":"sprying","email":"sprying.fang@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trusted-cert_1.1.0-beta.2_1622490485211_0.31634070718877694"},"_hasShrinkwrap":false},"1.1.0":{"name":"trusted-cert","version":"1.1.0","description":"A simple tool to generate self signed x509 certificate","bin":{"trusted-cert":"cli.js"},"main":"./dist/index.js","module":"./dist/index.esm.js","types":"./types/index.d.ts","scripts":{"clean":"rm -rf dist types","build":"npm run clean && rollup -c","watch":"npm run clean && rollup -c -w","release":"npm run clean && cross-env NODE_ENV=production rollup -c && npm publish","release:next":"npm run clean && cross-env NODE_ENV=production rollup -c && npm publish --tag next","prepublishOnly":"npm run clean && cross-env NODE_ENV=production rollup -c","madge":"madge --image ./source-file-deps-analysis.png src/index.ts","madge:watch":"nodemon --verbose --ext js,ts,tsx,json --watch lib --exec 'yarn run madge'"},"dependencies":{"@types/node-forge":"^0.9.9","command-exists":"^1.2.9","commander":"^5.0.0","debug":"^4.3.1","fs-extra":"^9.0.0","inquirer":"^7.1.0","is-ip":"^3.1.0","moment":"^2.29.1","node-forge":"^0.10.0","random-int":"^3.0.0","rimraf":"^3.0.2","util":"^0.12.4"},"devDependencies":{"@babel/core":"^7.13.16","@babel/plugin-transform-runtime":"^7.13.15","@babel/preset-env":"^7.13.15","@rollup/plugin-commonjs":"^18.0.0","@rollup/plugin-node-resolve":"^11.2.1","@types/command-exists":"^1.2.0","@types/debug":"^4.1.5","@types/fs-extra":"^9.0.11","@types/inquirer":"^7.3.1","@types/rimraf":"^3.0.0","@typescript-eslint/parser":"^4.22.0","cross-env":"^7.0.3","eslint":"^7.24.0","madge":"^4.0.2","nodemon":"^2.0.7","rollup":"^2.45.2","rollup-plugin-babel":"^4.4.0","rollup-plugin-terser":"^7.0.2","rollup-plugin-typescript2":"^0.30.0","ts-standard":"^10.0.0","typescript":"^4.2.4"},"engines":{"node":">=10"},"author":{"name":"慧知","email":"sprying.fang@qq.com","url":"https://sprying.cnblogs.com"},"license":"MIT","homepage":"https://github.com/sprying/trusted-cert/README.md","repository":{"type":"git","url":"git+https://github.com/sprying/trusted-cert.git"},"bugs":{"url":"https://github.com/sprying/trusted-cert/issues"},"tnpm":{"lockfile":"enable","mode":"yarn"},"keywords":["ssl","openssl","certificate","trust","https","trust store","x509","certificates","self-signed","self-signing","credential","credentials","keychain","ca"],"gitHead":"289cac6f1cb761ee89e56ebb4cd2bc10cf6dec4a","_id":"trusted-cert@1.1.0","_nodeVersion":"12.14.0","_npmVersion":"6.14.13","dist":{"integrity":"sha512-JWTcc2BZT2M/6qbVI2s8FzuZoeVMdmADCFNcWE2KjWZ5Zm4kjvQ4/gqHBCLLD8Sj+qGfs0A9Z9mhLcNfdz9T5Q==","shasum":"5582ff59988b7e854d90fca5a9655dd0a0c30983","tarball":"https://registry.npmjs.org/trusted-cert/-/trusted-cert-1.1.0.tgz","fileCount":18,"unpackedSize":87284,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgtZIZCRA9TVsSAnZWagAAbkUP/0QUG9vddiCDNQGo1cT2\nw/HuxWFqc9cHWGpDcMjj3K7ytACDlVciEhPmG4UJpVBzUiCyDqt91o86N93n\nFKQzJ7QelX4ejeijViuH89fvofqt2O7ODbBbEMtqw8GwIsHEPFxjDpV7fRA4\nnKrPpI71MNM3rPOQvIYbh5hBDseV/X+WbNPNdGlMFlTOArEIw2LGzmAViHzT\nXW4wt1poZPCnY1Az9ToMGm99TvTJ9NQ8KLSRQysy5GBJNxUq+RnjtmUIm0uL\nk9hvPDGDxBkQGYttVsIMIipfK6SwsbbNXz9aaWlBIcLMjw0VQZ2momkIAnBB\neKsen27aYpW2VNLtJ5pXU4qNHYHq9SQ/SEe69uW1BnQ9pTJb7YAIFQYHQyUi\nJ1NhAqStMVQKHmwIcFAD89xZQOPtaXe5NOjTIRk1bqjEH6YQBujRu55ntT+o\nV70rM3Z5lwqA2MwHfUKrgB7NClz86buiP0ewy4JC+fdOFf/i+TuLpDPvSLa3\nprSYL02ROZNhtPduIVyOx8RyrZsTBQpmbLafrKkmGCbSNv7r3BsvK2S57SGg\nZAISsE3ZCZyz/QMjej/iKNMYEFM9l9NVSyOEQYqRzVn2IsUgjPSGT8izHcCK\nzwHoBW2y7D6Kjs4lSkHtvAjvJmlyjL52uMXz+hxGAe5tB38TGbVT5B0syDrQ\nD6pa\r\n=PkOE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCzSIh3h/tkaeH61QGl9/gZXIEVkzxp0LHeOps/NAIgeQIhAKA//dG14kB4Abi5QAXQJr1VK6NgK+gSouRCNSMXh90Y"}]},"_npmUser":{"name":"sprying","email":"sprying.fang@gmail.com"},"directories":{},"maintainers":[{"name":"sprying","email":"sprying.fang@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trusted-cert_1.1.0_1622512152494_0.6684006391280941"},"_hasShrinkwrap":false},"1.1.1":{"name":"trusted-cert","version":"1.1.1","description":"A simple tool to generate self signed x509 certificate","bin":{"trusted-cert":"cli.js"},"main":"./dist/index.js","module":"./dist/index.esm.js","types":"./types/index.d.ts","scripts":{"clean":"rm -rf dist types","build":"npm run clean && rollup -c","watch":"npm run clean && rollup -c -w","release":"npm run clean && cross-env NODE_ENV=production rollup -c && npm publish","release:next":"npm run clean && cross-env NODE_ENV=production rollup -c && npm publish --tag next","prepublishOnly":"npm run clean && cross-env NODE_ENV=production rollup -c","madge":"madge --image ./source-file-deps-analysis.png src/index.ts","madge:watch":"nodemon --verbose --ext js,ts,tsx,json --watch lib --exec 'yarn run madge'"},"dependencies":{"command-exists":"^1.2.9","commander":"^5.0.0","debug":"^4.3.1","fs-extra":"^9.0.0","inquirer":"^7.1.0","is-ip":"^3.1.0","moment":"^2.29.1","node-forge":"^0.10.0","random-int":"^3.0.0","rimraf":"^3.0.2","util":"^0.12.4"},"devDependencies":{"@babel/core":"^7.13.16","@babel/plugin-transform-runtime":"^7.13.15","@babel/preset-env":"^7.13.15","@rollup/plugin-commonjs":"^18.0.0","@rollup/plugin-node-resolve":"^11.2.1","@types/command-exists":"^1.2.0","@types/debug":"^4.1.5","@types/fs-extra":"^9.0.11","@types/inquirer":"^7.3.1","@types/rimraf":"^3.0.0","@typescript-eslint/parser":"^4.22.0","cross-env":"^7.0.3","eslint":"^7.24.0","madge":"^4.0.2","nodemon":"^2.0.7","rollup":"^2.45.2","rollup-plugin-babel":"^4.4.0","rollup-plugin-terser":"^7.0.2","rollup-plugin-typescript2":"^0.30.0","ts-standard":"^10.0.0","typescript":"^4.2.4"},"engines":{"node":">=10"},"author":{"name":"慧知","email":"sprying.fang@qq.com","url":"https://sprying.cnblogs.com"},"license":"MIT","homepage":"https://github.com/sprying/trusted-cert/README.md","repository":{"type":"git","url":"git+https://github.com/sprying/trusted-cert.git"},"bugs":{"url":"https://github.com/sprying/trusted-cert/issues"},"tnpm":{"lockfile":"enable","mode":"yarn"},"keywords":["ssl","openssl","certificate","trust","https","trust store","x509","certificates","self-signed","self-signing","credential","credentials","keychain","ca"],"gitHead":"289cac6f1cb761ee89e56ebb4cd2bc10cf6dec4a","_id":"trusted-cert@1.1.1","_nodeVersion":"12.14.0","_npmVersion":"6.14.13","dist":{"integrity":"sha512-MWq0tjG5XVzzueRbibQr9KEurrbbL1Tk5PqA4sOTeP8b9OsZkFyJl03AVWNyD5hiLeKWVdyKxCVL8Syj3wVETw==","shasum":"36fd02b061c21d14eb384f14053bec7345c86df7","tarball":"https://registry.npmjs.org/trusted-cert/-/trusted-cert-1.1.1.tgz","fileCount":18,"unpackedSize":87249,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgtbukCRA9TVsSAnZWagAAbagP/3eVe+okXguUKCWwgvTu\nEo2qWBjO6esU74Tfy4H570yy6wFJKzDXfgQ1ZFUmKuB4REWE5kEIlj8tE/Mm\nw/JIL1Bb2NTcpC7KAw4EG9p1CscvflHPVbIjeBHrOMYRo5Z0EYU8AQnRdYvB\nD8+ftoX+6RdAso3DEqXzSSY0RLSG6qGuQxrxTr+lSUTUHwPBXC/Rq2rkUONk\nnJ1/agbhvHO/HLjMW+BeqdQkhByeB/vWLgwsKhJ6LbhCcQciJ6rGVRoc8jzl\nd/8EnIbzq7i78bP+vHs4c/2nv5Vn/aEPsurAlE77yrehE4mhJeaZ6Y5j7N20\nfWrewvBVJGt2JWJdlEdFFUmJKhiy06nixIarjGY8whQQ/r81VpmOS01gitP5\nxpkLDlp/i29Ic596PTMhP7kGEzLxJo5X/+bZhZp1WPFFz9ktMxsK0tf61fRy\n+sNdCFiTmRexlCtB0LF/6hr3/Vf3WxsE/RqjRXPkP/l/l8v8n0CWok4j3MaW\nIYYwYzdbxwyL4G98q9W6PfNxeXypmcAc3F3vYVXKG++ZXQ0IkNdgDRzXo1OC\n5gvzA/58hNXpXxx30uzG98pdE+jEQixWW8rWOTQ6QHWi2SOdgG0rWuK3Uoqg\n1IKKr9vMJAGzQEH/uJKRmDrFQ43pPc36ymS9FiqLLVU2jKl/u96XJLaLMmGl\ncwI+\r\n=QKob\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFwKJGRQBJD4P2ZNmkyERYF2jf9+qV6M68xWNo/o5wKtAiBMoJA5zlXy1lR9JMxPeoW9NuSJVa9zwce+v7H1agdAsA=="}]},"_npmUser":{"name":"sprying","email":"sprying.fang@gmail.com"},"directories":{},"maintainers":[{"name":"sprying","email":"sprying.fang@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trusted-cert_1.1.1_1622522788025_0.7317895918427608"},"_hasShrinkwrap":false},"1.1.2-beta.1":{"name":"trusted-cert","version":"1.1.2-beta.1","description":"A simple tool to generate self signed x509 certificate","bin":{"trusted-cert":"cli.js"},"main":"./dist/index.js","module":"./dist/index.esm.js","types":"./types/index.d.ts","scripts":{"clean":"rm -rf dist types","build":"npm run clean && rollup -c","watch":"npm run clean && rollup -c -w","release":"npm run clean && cross-env NODE_ENV=production rollup -c && npm publish","release:next":"npm run clean && cross-env NODE_ENV=production rollup -c && npm publish --tag next","prepublishOnly":"npm run clean && cross-env NODE_ENV=production rollup -c","madge":"madge --image ./source-file-deps-analysis.png src/index.ts","madge:watch":"nodemon --verbose --ext js,ts,tsx,json --watch lib --exec 'yarn run madge'"},"dependencies":{"command-exists":"^1.2.9","commander":"^5.0.0","debug":"^4.3.1","fs-extra":"^9.0.0","inquirer":"^7.1.0","is-ip":"^3.1.0","moment":"^2.29.1","node-forge":"^0.10.0","random-int":"^2.0.1","rimraf":"^3.0.2","util":"^0.12.4"},"devDependencies":{"@babel/core":"^7.13.16","@babel/plugin-transform-runtime":"^7.13.15","@babel/preset-env":"^7.13.15","@rollup/plugin-commonjs":"^18.0.0","@rollup/plugin-node-resolve":"^11.2.1","@types/command-exists":"^1.2.0","@types/debug":"^4.1.5","@types/fs-extra":"^9.0.11","@types/inquirer":"^7.3.1","@types/rimraf":"^3.0.0","@typescript-eslint/parser":"^4.22.0","cross-env":"^7.0.3","eslint":"^7.24.0","madge":"^4.0.2","nodemon":"^2.0.7","rollup":"^2.45.2","rollup-plugin-babel":"^4.4.0","rollup-plugin-terser":"^7.0.2","rollup-plugin-typescript2":"^0.30.0","ts-standard":"^10.0.0","typescript":"^4.2.4"},"engines":{"node":">=10"},"author":{"name":"慧知","email":"sprying.fang@qq.com","url":"https://sprying.cnblogs.com"},"license":"MIT","homepage":"https://github.com/sprying/trusted-cert/README.md","repository":{"type":"git","url":"git+https://github.com/sprying/trusted-cert.git"},"bugs":{"url":"https://github.com/sprying/trusted-cert/issues"},"tnpm":{"lockfile":"enable","mode":"yarn"},"keywords":["ssl","openssl","certificate","trust","https","trust store","x509","certificates","self-signed","self-signing","credential","credentials","keychain","ca"],"readme":"# 简介\nHTTPS自签名证书工具，自动生成自签名证书并添加到系统钥匙串，支持mac和windows系统，提供了命令行和供其它命令行调用API的两种使用方式，下面示例是使用mac。\n\n# 使用说明\n## 方式一“命令行”\n### 快速使用\n\n1. **生成密钥和证书** 创建过程会提示输入域名，这里使用默认域名，直接回车；输入密码，向macOS钥匙串里添加证书。\n\t\n\ta. 安装命令行工具\n\t```bash\n\t# 全局安装\n\tnpm install trusted-cert -g\n\t# 或者使用yarn\n\tyarn global add trusted-cert\n\t```\n\t\n\tb. 一键生成自签名证书并添加到macOS钥匙串\n\n\t```bash\n\ttrusted-cert install\n\t```\n\n2. 在nodejs中使用生成的密钥和证书（更多方式参考最后的【附配置服务的HTTPS证书示例】）\n \n\t```javascript\n\tconst https = require('https');\n\tconst fs = require('fs');\n\tconst path = require('path');\n\t\n\tconst options = {\n      key: fs.readFileSync(path.join(process.env.HOME, '.trusted-cert/ssl.key')),\n      cert: fs.readFileSync(path.join(process.env.HOME, '.trusted-cert/ssl.crt')),\n\t};\n\t\n\thttps.createServer(options, (req, res) => {\n\t  res.writeHead(200);\n\t  res.end('hello world\\n');\n\t}).listen(8000);\n\t```\n\n3. 浏览器打开访问<https://localhost:8000/>，发现网址标为了安全\n\n### 命令行功能介绍\n\n```bash\ntrusted-cert --help\n```\n\n```\nUsage: trusted-cert [global options] command\n\nOptions:\n  -v, --version   当前版本\n  -h, --help      display help for command\n\nCommands:\n  install         生成ssl密钥和自签名证书，在系统钥匙串里添加和信任自签名证书\n  info            查看自签名信息\n  trust           信任自签名证书\n  add <host>      添加要支持的域名，支持以,分隔\n  uninstall       删除生成的ssl密钥和自签名证书\n  help [command]  display help for command\n\n先安装，再使用其它命令\n  $ trusted-cert install\n```\n\n### `trusted-cert install`\n一键生成自签名证书并添加到macOS钥匙串，在这个过程中，需要输入本地启动https服务要支持的域名，多个以`,`分隔，然后会提示要输入密码，用来将自签名证书以sudo权限添加到系统钥匙串里，如果添加失败，后面浏览器访问https服务，会提示不安全。\n\n### `trusted-cert trust`\n如果install过程中三次输入密码都错误了，还可以单独运行这个命令重新添加到系统钥匙串。或者发现chrome下访问https还是提醒非安全，可以去查看确认下证书是否已经添加到系统钥匙串，证书是否过期。\n\n### `trusted-cert info`\n生成证书后，可以随时通过这个命令查看密钥等文件的位置，方便你在配置服务器https时需要它，还可以看到支持的域名，是否已经添加到系统钥匙串，证书的有效时间。\n\n### `trusted-cert add <host>`\n通过这个命令新增本地https服务要用的域名，新增时先检测证书是否已经支持了该域名，比如证书支持*.m.taobao.com，本地要使用test.m.taobao.com域名，检测发现已经支持了，会提醒不用新增。如果遇到需要新增的，会先删除原有的密钥等文件和钥匙串里证书，然后再新增。\n\n### `trusted-cert uninstall`\n删除本地存放密钥、证书等文件的目录，删除钥匙串里添加的证书\n\n\n## 方式二“供他方命令行调用的api”\n### 快速使用\n1. 安装依赖  \n\t```bash\n\tnpm install trusted-cert --save\n\t# 或者使用yarn\n\tyarn add trusted-cert\n\t```\n\t\n2. 调用api  \n\n\t```javascript\n\tconst https = require('https')\n\tconst fs = require('fs')\n\tconst { certificateFor } = require('trusted-cert')\n\tconst hosts = ['test.m.taobao.com', '192.168.0.1'] // 本地https服务要使用的domain/ip\n\tcertificateFor(hosts).then((keyAndCert) => {\n\t\thttps.createServer(keyAndCert, (req, res) => {\n\t\t  res.writeHead(200);\n\t\t  res.end('hello world\\n')\n\t\t}).listen(8000)\n\t})\n\t```\n\n3. 浏览器打开访问<https://test.m.taobao.com:8000/>，发现网址标为了安全\n\n### api介绍\n调用api传入要使用的host列表，工具先检测是否安装过证书，没安装过开始安装，安装过的继续检测装过的证书是否已经支持这些host，还有其它检测，针对检测到点一一修复，最后返回密钥和证书的文件路径等信息。\n\n考虑到对于开发者而言，在电脑中只需要一份ssl的密钥和自签名证书就够用了，所以不管是命令行方式还是api，只生成一份文件存放在系统固定位置`~/.trusted-cert`，工具在钥匙串里也只有一份自签名证书，由工具来管理自证书包括生成、销毁、重新生成的生命周期。\n\n# 附配置服务的HTTPS证书示例\n## webpack\n```javascript\n{\n  // ...\n  devServer: {\n    https: {\n      key: fs.readFileSync(path.join(process.env.HOME, '.trusted-cert/ssl.key')),\n      cert: fs.readFileSync(path.join(process.env.HOME, '.trusted-cert/ssl.crt'))\n    }\n  }\n  // ...\n}\n```\n\n## nginx\n```nginx\n# ...\nserver {\n  listen  443;\n  server_name shop.alimama.com;\n \n ssl on;\n  ssl_certificate     /Users/xxx/.trusted-cert/ssl.crt;\n  ssl_certificate_key /Users/xxx/.trusted-cert/ssl.key;\n \n  location  / {\n    proxy_pass  http://127.0.0.1:8002;\n  }\n}\n# ...\n```\n\n\n## nodejs\n```javascript\nconst https = require('https');\nconst fs = require('fs');\nconst path = require('path');\n\nconst options = {\n  key: fs.readFileSync(path.join(process.env.HOME, '.trusted-cert/ssl.key')),\n  cert: fs.readFileSync(path.join(process.env.HOME, '.trusted-cert/ssl.crt')),\n};\n\nhttps.createServer(options, (req, res) => {\n  res.writeHead(200);\n  res.end('hello world\\n');\n}).listen(8000);\n```\n","readmeFilename":"README.md","gitHead":"289cac6f1cb761ee89e56ebb4cd2bc10cf6dec4a","_id":"trusted-cert@1.1.2-beta.1","_nodeVersion":"12.14.0","_npmVersion":"6.14.13","dist":{"integrity":"sha512-GjeRGj6IyNR9ZPX9Nuj5kNjCfC8bXuTnP9CosHlafKsq4xJFfTFnn2rEcFjdwwhT2hocW+bEWMl9Ivs2P7X2zg==","shasum":"613fe0f7a742bb62df3adc325f0f0e804698099c","tarball":"https://registry.npmjs.org/trusted-cert/-/trusted-cert-1.1.2-beta.1.tgz","fileCount":18,"unpackedSize":87270,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJguEOVCRA9TVsSAnZWagAA3ggP/0NhfM/kXClnuBghOtK6\n+XjaGl1NXk+XHLvCaB0IM1giHUO/t+R6E0A3eYm/LQmFx/jU5yMzvE8UpOCV\nsuqwnYkMkmWqBVroWcGKcRrnIjw1/2fsJMfjNyJEUdgkEuh97OApEOAhsbkB\ninpsJowm4SWe6s498LQ61kNXHYHmbaIuUhHi8TKUexN24v3hEaKk8Y9w5LSn\nRkYArlpH5Pu3svLWIxpv6q9phkj+aU89VVQlmzBe0XHl2cyfTpQAVcxeqqVy\nvJjsVeE3TLxMtFtpFEqQimIFm6XpQefwQvN5hzffKsjGaV6dI1Y5kQf5oCVZ\nhQ2t1crtMzn9RPe3UlLX6vUgApUHxw+Y1hknbjaaNZSsXAuI2EclNI9u6upO\n9hnZzH0seFvsmDy+282JN2FiZRuMsEAjGrk/AFKM1tj71i7bvrw4wSwcyeYm\n6Zp4EFwx8i7Zl/kefTJ7GcrXR1hHzpxG5q6gP4XzlZPMVw5KmXazdznyWhPN\ncf/Ps+c3pOd9T4hjqAhmIAWP6qlw3y+EXKHxDitsw3Czrg7UDH4kEME9/tbU\n7apO8I2jeWNn29zPJcM8eASsHNfhI+maKx2IK1irpjzF5q2O91X9uY0rx+Qd\nqPxxB/FTHl9dthOlqIuszcAFz4cjGG1yHZgvQFs4JxEYctQCdagknYFSrFXA\n3QqQ\r\n=KBDm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQClMfMQOTnpgX2TklqdvVdIISQC62VRBhUOTsuGecO4rgIgH30tIustpm8QweUOXbhlpmoZbLe1gIBkxx5LZ8Z3hUs="}]},"_npmUser":{"name":"sprying","email":"sprying.fang@gmail.com"},"directories":{},"maintainers":[{"name":"sprying","email":"sprying.fang@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trusted-cert_1.1.2-beta.1_1622688661125_0.5025015558331392"},"_hasShrinkwrap":false},"1.1.2":{"name":"trusted-cert","version":"1.1.2","description":"A simple tool to generate self signed x509 certificate","bin":{"trusted-cert":"cli.js"},"main":"./dist/index.js","module":"./dist/index.esm.js","types":"./types/index.d.ts","scripts":{"clean":"rm -rf dist types","build":"npm run clean && rollup -c","watch":"npm run clean && rollup -c -w","release":"npm run clean && cross-env NODE_ENV=production rollup -c && npm publish","release:next":"npm run clean && cross-env NODE_ENV=production rollup -c && npm publish --tag next","prepublishOnly":"npm run clean && cross-env NODE_ENV=production rollup -c","madge":"madge --image ./source-file-deps-analysis.png src/index.ts","madge:watch":"nodemon --verbose --ext js,ts,tsx,json --watch lib --exec 'yarn run madge'"},"dependencies":{"command-exists":"^1.2.9","commander":"^5.0.0","debug":"^4.3.1","fs-extra":"^9.0.0","inquirer":"^7.1.0","is-ip":"^3.1.0","moment":"^2.29.1","node-forge":"^0.10.0","random-int":"^2.0.1","rimraf":"^3.0.2","util":"^0.12.4"},"devDependencies":{"@babel/core":"^7.13.16","@babel/plugin-transform-runtime":"^7.13.15","@babel/preset-env":"^7.13.15","@rollup/plugin-commonjs":"^18.0.0","@rollup/plugin-node-resolve":"^11.2.1","@types/command-exists":"^1.2.0","@types/debug":"^4.1.5","@types/fs-extra":"^9.0.11","@types/inquirer":"^7.3.1","@types/rimraf":"^3.0.0","@typescript-eslint/parser":"^4.22.0","cross-env":"^7.0.3","eslint":"^7.24.0","madge":"^4.0.2","nodemon":"^2.0.7","rollup":"^2.45.2","rollup-plugin-babel":"^4.4.0","rollup-plugin-terser":"^7.0.2","rollup-plugin-typescript2":"^0.30.0","ts-standard":"^10.0.0","typescript":"^4.2.4"},"engines":{"node":">=10"},"author":{"name":"慧知","email":"sprying.fang@qq.com","url":"https://sprying.cnblogs.com"},"license":"MIT","homepage":"https://github.com/sprying/trusted-cert/README.md","repository":{"type":"git","url":"git+https://github.com/sprying/trusted-cert.git"},"bugs":{"url":"https://github.com/sprying/trusted-cert/issues"},"tnpm":{"lockfile":"enable","mode":"yarn"},"keywords":["ssl","openssl","certificate","trust","https","trust store","x509","certificates","self-signed","self-signing","credential","credentials","keychain","ca"],"gitHead":"289cac6f1cb761ee89e56ebb4cd2bc10cf6dec4a","_id":"trusted-cert@1.1.2","_nodeVersion":"12.14.0","_npmVersion":"6.14.13","dist":{"integrity":"sha512-fKy0N6Y+duxitdQGb0kngX0ICvPn9vXNEwA6PW8BWqGqCBbYdciKzu5qOaMJvKwZFQYCFS0oYBM8lOQ4bIAN+g==","shasum":"e0a58226f01a5b3cb1d0b3a76fbbdb29e491ca7b","tarball":"https://registry.npmjs.org/trusted-cert/-/trusted-cert-1.1.2.tgz","fileCount":18,"unpackedSize":87249,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJguESHCRA9TVsSAnZWagAA5y0P/3z+NmsTvrwY8AQx+T6u\nsqCpAgvfcgGQa3gUUArYehHatabts99o2RDOm5Z6WO0rkleaYnRqzdku6rw9\ns5QX9GSWlF66Gkoef/Dau0kZ3ipMj/bUT1xVG5XUYPNV9jmB6UZt+HbqF1x3\nfbb6y2z13fmOaiQWctN94M4V4oOsnEsSJOmIIhVY1ijlSM1JMQ3MoDGhxz9i\nJFjuqLz1uq8/gd/9NTO7h4wnKYQoQmeN73mszMZny47znIQEtvJvo3GuqY1G\nqniOBJ5qkaPk/KR3sub67d6u3W83PeAlMhm6gAgbTcPO4ynvu63f4n2sA1OU\n1V8fhPtJbAiRcJxRjsunzW2HMw+br7LvHgjkslHqhb8ZSXcnd20HPn3kwv5m\nnuX0wilh9kBgTZ14ftGdpd7rokv9nbhxwnNLBJe+FJ6W0gunnF9MrUK8tIHu\nFFR7GUVxg1hJHHCD15BJEiABBfrxr/pw8DOyX3obGal9pk//Z9Bm3atw+cB4\nCR6EuPGlltFo1nZjeB7UuQRYHgFllpKkQxmgrM+zbbfKg6JJpCYdnSH+A/Dv\nWkE8lTAv7vfeMcF1EtWA5wf6DEHiErfToLmf4z+BR0DT9jBdRskCiln+chku\nxRB+ESTmSwn4kzkp7gKVEs2l1vK8lRNZH7tnU/IkeQLv5V8Df3jE8r8wb9pB\nLTMW\r\n=wG+a\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDu+YhbuntToWymyS8t9/jHM4QdCaBJ/gTb+TEI42Me4QIhAKQiwxV1uzIkaZERSiN5DV+ojdQuOcswGtMyHpBBlR1t"}]},"_npmUser":{"name":"sprying","email":"sprying.fang@gmail.com"},"directories":{},"maintainers":[{"name":"sprying","email":"sprying.fang@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trusted-cert_1.1.2_1622688903350_0.5081850325996111"},"_hasShrinkwrap":false},"1.1.3":{"name":"trusted-cert","version":"1.1.3","description":"A simple tool to generate self signed x509 certificate","bin":{"trusted-cert":"cli.js"},"main":"./dist/index.js","module":"./dist/index.esm.js","types":"./types/index.d.ts","scripts":{"clean":"rm -rf dist types","build":"npm run clean && rollup -c","watch":"npm run clean && rollup -c -w","release":"npm run clean && cross-env NODE_ENV=production rollup -c && npm publish","release:next":"npm run clean && cross-env NODE_ENV=production rollup -c && npm publish --tag next","prepublishOnly":"npm run clean && cross-env NODE_ENV=production rollup -c","madge":"madge --image ./source-file-deps-analysis.png src/index.ts","madge:watch":"nodemon --verbose --ext js,ts,tsx,json --watch lib --exec 'yarn run madge'"},"dependencies":{"command-exists":"^1.2.9","commander":"^5.0.0","debug":"^4.3.1","fs-extra":"^9.0.0","inquirer":"^7.1.0","is-ip":"^3.1.0","moment":"^2.29.1","node-forge":"^0.10.0","random-int":"^2.0.1","rimraf":"^3.0.2","util":"^0.12.4"},"devDependencies":{"@babel/core":"^7.13.16","@babel/plugin-transform-runtime":"^7.13.15","@babel/preset-env":"^7.13.15","@rollup/plugin-commonjs":"^18.0.0","@rollup/plugin-node-resolve":"^11.2.1","@types/command-exists":"^1.2.0","@types/debug":"^4.1.5","@types/fs-extra":"^9.0.11","@types/inquirer":"^7.3.1","@types/rimraf":"^3.0.0","@typescript-eslint/parser":"^4.22.0","cross-env":"^7.0.3","eslint":"^7.24.0","madge":"^4.0.2","nodemon":"^2.0.7","rollup":"^2.45.2","rollup-plugin-babel":"^4.4.0","rollup-plugin-terser":"^7.0.2","rollup-plugin-typescript2":"^0.30.0","ts-standard":"^10.0.0","typescript":"^4.2.4"},"engines":{"node":">=10"},"author":{"name":"慧知","email":"sprying.fang@qq.com","url":"https://sprying.cnblogs.com"},"license":"MIT","homepage":"https://github.com/sprying/trusted-cert/README.md","repository":{"type":"git","url":"git+https://github.com/sprying/trusted-cert.git"},"bugs":{"url":"https://github.com/sprying/trusted-cert/issues"},"tnpm":{"lockfile":"enable","mode":"yarn"},"keywords":["ssl","openssl","certificate","trust","https","trust store","x509","certificates","self-signed","self-signing","credential","credentials","keychain","ca"],"gitHead":"50fee91d5dafa48ac8f897fd96fa25145e4c3d20","_id":"trusted-cert@1.1.3","_nodeVersion":"12.14.0","_npmVersion":"6.14.13","dist":{"integrity":"sha512-4+r0NIuZqhamHYojQZETlTFGH0cG0Wm++E7iZKOAYgf8ivGXDknpmFrXA+F7n04ORMw6xsGuFjhLfQJ7wEa9UQ==","shasum":"4b0d07d9e1e51d8b5b94e8b82621917cd5f83500","tarball":"https://registry.npmjs.org/trusted-cert/-/trusted-cert-1.1.3.tgz","fileCount":18,"unpackedSize":87346,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJguxMuCRA9TVsSAnZWagAAgdAQAJJNGUerYw5CwDhYnCGP\n39/+nsSpfweeAiLDIe+Iss2SZPkVsHoBs1XUXawgtLOcan7eWnifjV/p6ugy\nZ9QCbfPCu5RbjaguXV/7p+q7w1kgmH3FFMuuWnqpkHH2GScih82klr1S6fKk\nHbA6l00hwSEgiom9u69JOsNEu0D9MoWE+UFLtlbsqLd9BuHceThzReUBxw5W\n9mPwIrSy7bVbw2AEQFixEFGi482wRVrwyM9DjTMhBExY+TmvFDDqkEE4QxyW\nE6vov8JsLZW6382cXM0Pv9KPS2efsMldSyc7owA5/daCvpz4YJ2gf4VmGfIG\nLWGp8yDV4wlOSshY6QqhSXRon3g3XRym8cXjaIKt2WxJ+QTuWVScDW0Jgfo2\nAKCnneEmPpCLmxS01EaqScUs2tCIX6V2eXsO55ip0zQEVwXlbBCBSG17sXyf\nrY3rEOC6W5yrtJrE7hmBETn/6mbGCQVRhq4wDOgMXYnsxO7AzqwAMlIPwHX3\nAKkExQV3F+HOGWKofLDYf5Lu9JyRg6qOrtbAE1VKqP9meYq33QMJs3pdVxsh\n0FQJdjAmwNdVA6uqsspxrPZpxo2yFAO6hA0NJzAisB4r24v5vvm/0wvKDMSD\nS1/e0LEAEpbUh07Kg7A/QfadNoy4QvOLSvaq0ifvNrmS26qKVQ/3qKwKKng9\niibq\r\n=un45\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHy8ylJOOplNtZp8NlqO0gIDtPtFbrwDOY5yML03AzQ4AiEAltPH1V0WQ1uqE9uTHY1xkPhtrXGD1NEszbhN3/1cfcA="}]},"_npmUser":{"name":"sprying","email":"sprying.fang@gmail.com"},"directories":{},"maintainers":[{"name":"sprying","email":"sprying.fang@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trusted-cert_1.1.3_1622872878556_0.9990414195091628"},"_hasShrinkwrap":false},"1.1.4-beta.1":{"name":"trusted-cert","version":"1.1.4-beta.1","description":"A simple tool to generate self signed x509 certificate","bin":{"trusted-cert":"cli.js"},"main":"./dist/index.js","module":"./dist/index.esm.js","types":"./types/index.d.ts","scripts":{"clean":"rm -rf dist types","build":"npm run clean && rollup -c","watch":"npm run clean && rollup -c -w","release":"npm run clean && cross-env NODE_ENV=production rollup -c && npm publish","release:next":"npm run clean && cross-env NODE_ENV=production rollup -c && npm publish --tag next","prepublishOnly":"npm run clean && cross-env NODE_ENV=production rollup -c","madge":"madge --image ./source-file-deps-analysis.png src/index.ts","madge:watch":"nodemon --verbose --ext js,ts,tsx,json --watch lib --exec 'yarn run madge'"},"dependencies":{"command-exists":"^1.2.9","commander":"^5.0.0","debug":"^4.3.1","fs-extra":"^9.0.0","inquirer":"^7.1.0","is-ip":"^3.1.0","moment":"^2.29.1","node-forge":"^0.10.0","random-int":"^2.0.1","rimraf":"^3.0.2","util":"^0.12.4"},"devDependencies":{"@babel/core":"^7.13.16","@babel/plugin-transform-runtime":"^7.13.15","@babel/preset-env":"^7.13.15","@rollup/plugin-commonjs":"^18.0.0","@rollup/plugin-node-resolve":"^11.2.1","@types/command-exists":"^1.2.0","@types/debug":"^4.1.5","@types/fs-extra":"^9.0.11","@types/inquirer":"^7.3.1","@types/rimraf":"^3.0.0","@typescript-eslint/parser":"^4.22.0","cross-env":"^7.0.3","eslint":"^7.24.0","madge":"^4.0.2","nodemon":"^2.0.7","rollup":"^2.45.2","rollup-plugin-babel":"^4.4.0","rollup-plugin-terser":"^7.0.2","rollup-plugin-typescript2":"^0.30.0","ts-standard":"^10.0.0","typescript":"^4.2.4"},"engines":{"node":">=10"},"author":{"name":"慧知","email":"sprying.fang@qq.com","url":"https://sprying.cnblogs.com"},"license":"MIT","homepage":"https://github.com/sprying/trusted-cert/README.md","repository":{"type":"git","url":"git+https://github.com/sprying/trusted-cert.git"},"bugs":{"url":"https://github.com/sprying/trusted-cert/issues"},"tnpm":{"lockfile":"enable","mode":"yarn"},"keywords":["ssl","openssl","certificate","trust","https","trust store","x509","certificates","self-signed","self-signing","credential","credentials","keychain","ca"],"readme":"# 简介\nHTTPS自签名证书工具，自动生成自签名证书并添加到系统钥匙串，支持mac和windows系统，提供了命令行和供其它命令行调用API的两种使用方式，下面示例是使用mac。\n\n# 使用说明\n## 方式一“命令行”\n### 快速使用\n\n1. **生成密钥和证书** 创建过程会提示输入域名，这里使用默认域名，直接回车；输入密码，向macOS钥匙串里添加证书。\n\t\n\ta. 安装命令行工具\n\t```bash\n\t# 全局安装\n\tnpm install trusted-cert -g\n\t# 或者使用yarn\n\tyarn global add trusted-cert\n\t```\n\t\n\tb. 一键生成自签名证书并添加到macOS钥匙串\n\n\t```bash\n\ttrusted-cert install\n\t```\n\n2. 在nodejs中使用生成的密钥和证书（更多方式参考最后的【附配置服务的HTTPS证书示例】）\n \n\t```javascript\n\tconst https = require('https');\n\tconst fs = require('fs');\n\tconst path = require('path');\n\t\n\tconst options = {\n      key: fs.readFileSync(path.join(process.env.HOME, '.trusted-cert/ssl.key')),\n      cert: fs.readFileSync(path.join(process.env.HOME, '.trusted-cert/ssl.crt')),\n\t};\n\t\n\thttps.createServer(options, (req, res) => {\n\t  res.writeHead(200);\n\t  res.end('hello world\\n');\n\t}).listen(8000);\n\t```\n\n3. 浏览器打开访问<https://localhost:8000/>，发现网址标为了安全\n\n### 命令行功能介绍\n\n```bash\ntrusted-cert --help\n```\n\n```\nUsage: trusted-cert [global options] command\n\nOptions:\n  -v, --version   当前版本\n  -h, --help      display help for command\n\nCommands:\n  install         生成ssl密钥和自签名证书，在系统钥匙串里添加和信任自签名证书\n  info            查看自签名信息\n  trust           信任自签名证书\n  add <host>      添加要支持的域名，支持以,分隔\n  uninstall       删除生成的ssl密钥和自签名证书\n  help [command]  display help for command\n\n先安装，再使用其它命令\n  $ trusted-cert install\n```\n\n### `trusted-cert install`\n一键生成自签名证书并添加到macOS钥匙串，在这个过程中，需要输入本地启动https服务要支持的域名，多个以`,`分隔，然后会提示要输入密码，用来将自签名证书以sudo权限添加到系统钥匙串里，如果添加失败，后面浏览器访问https服务，会提示不安全。\n\n### `trusted-cert trust`\n如果install过程中三次输入密码都错误了，还可以单独运行这个命令重新添加到系统钥匙串。或者发现chrome下访问https还是提醒非安全，可以去查看确认下证书是否已经添加到系统钥匙串，证书是否过期。\n\n### `trusted-cert info`\n生成证书后，可以随时通过这个命令查看密钥等文件的位置，方便你在配置服务器https时需要它，还可以看到支持的域名，是否已经添加到系统钥匙串，证书的有效时间。\n\n### `trusted-cert add <host>`\n通过这个命令新增本地https服务要用的域名，新增时先检测证书是否已经支持了该域名，比如证书支持*.m.taobao.com，本地要使用test.m.taobao.com域名，检测发现已经支持了，会提醒不用新增。如果遇到需要新增的，会先删除原有的密钥等文件和钥匙串里证书，然后再新增。\n\n### `trusted-cert uninstall`\n删除本地存放密钥、证书等文件的目录，删除钥匙串里添加的证书\n\n\n## 方式二“供他方命令行调用的api”\n### 快速使用\n1. 安装依赖  \n\t```bash\n\tnpm install trusted-cert --save\n\t# 或者使用yarn\n\tyarn add trusted-cert\n\t```\n\t\n2. 调用api  \n\n\t```javascript\n\tconst https = require('https')\n\tconst fs = require('fs')\n\tconst { certificateFor } = require('trusted-cert')\n\tconst hosts = ['test.m.taobao.com', '192.168.0.1'] // 本地https服务要使用的domain/ip\n\tcertificateFor(hosts).then((keyAndCert) => {\n\t\thttps.createServer(keyAndCert, (req, res) => {\n\t\t  res.writeHead(200);\n\t\t  res.end('hello world\\n')\n\t\t}).listen(8000)\n\t})\n\t```\n\n3. 浏览器打开访问<https://test.m.taobao.com:8000/>，发现网址标为了安全\n\n### api介绍\n调用api传入要使用的host列表，工具先检测是否安装过证书，没安装过开始安装，安装过的继续检测装过的证书是否已经支持这些host，还有其它检测，针对检测到点一一修复，最后返回密钥和证书的文件路径等信息。\n\n考虑到对于开发者而言，在电脑中只需要一份ssl的密钥和自签名证书就够用了，所以不管是命令行方式还是api，只生成一份文件存放在系统固定位置`~/.trusted-cert`，工具在钥匙串里也只有一份自签名证书，由工具来管理自证书包括生成、销毁、重新生成的生命周期。\n\n# 附配置服务的HTTPS证书示例\n## webpack\n```javascript\n{\n  // ...\n  devServer: {\n    https: {\n      key: fs.readFileSync(path.join(process.env.HOME, '.trusted-cert/ssl.key')),\n      cert: fs.readFileSync(path.join(process.env.HOME, '.trusted-cert/ssl.crt'))\n    }\n  }\n  // ...\n}\n```\n\n## nginx\n```nginx\n# ...\nserver {\n  listen  443;\n  server_name shop.alimama.com;\n \n ssl on;\n  ssl_certificate     /Users/xxx/.trusted-cert/ssl.crt;\n  ssl_certificate_key /Users/xxx/.trusted-cert/ssl.key;\n \n  location  / {\n    proxy_pass  http://127.0.0.1:8002;\n  }\n}\n# ...\n```\n\n\n## nodejs\n```javascript\nconst https = require('https');\nconst fs = require('fs');\nconst path = require('path');\n\nconst options = {\n  key: fs.readFileSync(path.join(process.env.HOME, '.trusted-cert/ssl.key')),\n  cert: fs.readFileSync(path.join(process.env.HOME, '.trusted-cert/ssl.crt')),\n};\n\nhttps.createServer(options, (req, res) => {\n  res.writeHead(200);\n  res.end('hello world\\n');\n}).listen(8000);\n```\n\n# 其它\n该工具生成的证书不支持Firefox、chrome on linux","readmeFilename":"README.md","gitHead":"2d2afd07e14379f9a08c28e7c763050a5e295ad3","_id":"trusted-cert@1.1.4-beta.1","_nodeVersion":"12.14.0","_npmVersion":"6.14.13","dist":{"integrity":"sha512-1/iSMFqJ0brGlFkUby1Wu3lzjk7YlYE9vE6/ALNxp2q32XX0gLgijUHsySekWrPl4H3muZUPyHXcF6brFOVJjw==","shasum":"72bb4710988f466e8d2d9c54da559e5a773801cf","tarball":"https://registry.npmjs.org/trusted-cert/-/trusted-cert-1.1.4-beta.1.tgz","fileCount":18,"unpackedSize":87720,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg4bnBCRA9TVsSAnZWagAAXWgP+wdnsFe6NWwPJfuq/76E\nYbGZpFLsnHaSZ8niKKP+EF8O7OyclenOcVOeoVfhaUjZNkoMoiLZOjrs505m\nXof6JVWY22+1+TKDKfMxAO/t5eXfjnMlf28CNdscljYD9ow2rIYhGX21/Zf0\n2Rf6h9vPX4XNJNsjfNhE+Dmo+wML3hqoibVG2XVS6fI57EAO/5i0gXpjJfRP\nSXL0opb2Cw/oVjd+ReBoeci0PAgx4QCfXu1wR5TFFBN+NS+cK3uhyJym1r2O\nk127HehYexmV2royyzEiSXVZRLFnqYoMNe2GOSuk/qqPh3zQEnbWEVHH0tV/\n4ISdoDhYhVApyA6HvBE+dIfsgg7xVQ1ZEt19lsm8E5VsVmsORubcnggYulAI\npHDwOfmBoO6NX72maVr1qtlRBJYN4uR8tYCKB8eh9G+GVk/ip8Xvfuv626/X\n1coVG6VAxSZ0KHzVw7L25Zr51apO9ZPjTiw+9pRvKtAk09G4w6JjFa5skVsu\nB56Uut/v1sZOcQEn550/6DfdaXygs22ob4sI9AofVPtncP48JXDkZaYUdRhk\nvJh0Sl0JXiRW8E7SKdlP/28yiSDm6l1+fVZrC+JBGj3CKrLjnBEIAQfs7xfr\novzETonR4rjytEb8VSfb1qh1xaPQNf8KUSNPK7X741naWFcpQDU517b3lN7Q\nXJeE\r\n=HIl+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHL/WUTSS6GofMJdsDKU7vf1YfuAu6vsKKw7ybJ7ce1nAiBI2V+rHei9moaLkGQt+KMQ+He+ZfJVIvLmbUOvWzG6UA=="}]},"_npmUser":{"name":"sprying","email":"sprying.fang@gmail.com"},"directories":{},"maintainers":[{"name":"sprying","email":"sprying.fang@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trusted-cert_1.1.4-beta.1_1625405889080_0.06521151601821584"},"_hasShrinkwrap":false},"1.1.4-beta.2":{"name":"trusted-cert","version":"1.1.4-beta.2","description":"A simple tool to generate self signed x509 certificate","bin":{"trusted-cert":"cli.js"},"main":"./dist/index.js","module":"./dist/index.esm.js","types":"./types/index.d.ts","scripts":{"clean":"rm -rf dist types","build":"npm run clean && rollup -c","watch":"npm run clean && rollup -c -w","release":"npm run clean && cross-env NODE_ENV=production rollup -c && npm publish","release:next":"npm run clean && cross-env NODE_ENV=production rollup -c && npm publish --tag next","prepublishOnly":"npm run clean && cross-env NODE_ENV=production rollup -c","madge":"madge --image ./source-file-deps-analysis.png src/index.ts","madge:watch":"nodemon --verbose --ext js,ts,tsx,json --watch lib --exec 'yarn run madge'"},"dependencies":{"command-exists":"^1.2.9","commander":"^5.0.0","debug":"^4.3.1","fs-extra":"^9.0.0","inquirer":"^7.1.0","is-ip":"^3.1.0","moment":"^2.29.1","node-forge":"^0.10.0","random-int":"^2.0.1","rimraf":"^3.0.2","util":"^0.12.4"},"devDependencies":{"@babel/core":"^7.13.16","@babel/plugin-transform-runtime":"^7.13.15","@babel/preset-env":"^7.13.15","@rollup/plugin-commonjs":"^18.0.0","@rollup/plugin-node-resolve":"^11.2.1","@types/command-exists":"^1.2.0","@types/debug":"^4.1.5","@types/fs-extra":"^9.0.11","@types/inquirer":"^7.3.1","@types/rimraf":"^3.0.0","@typescript-eslint/parser":"^4.22.0","cross-env":"^7.0.3","eslint":"^7.24.0","madge":"^4.0.2","nodemon":"^2.0.7","rollup":"^2.45.2","rollup-plugin-babel":"^4.4.0","rollup-plugin-terser":"^7.0.2","rollup-plugin-typescript2":"^0.30.0","ts-standard":"^10.0.0","typescript":"^4.2.4"},"engines":{"node":">=10"},"author":{"name":"慧知","email":"sprying.fang@qq.com","url":"https://sprying.cnblogs.com"},"license":"MIT","homepage":"https://github.com/sprying/trusted-cert/README.md","repository":{"type":"git","url":"git+https://github.com/sprying/trusted-cert.git"},"bugs":{"url":"https://github.com/sprying/trusted-cert/issues"},"tnpm":{"lockfile":"enable","mode":"yarn"},"keywords":["ssl","openssl","certificate","trust","https","trust store","x509","certificates","self-signed","self-signing","credential","credentials","keychain","ca"],"readme":"# 简介\nHTTPS自签名证书工具，自动生成自签名证书并添加到系统钥匙串，支持mac和windows系统，提供了命令行和供其它命令行调用API的两种使用方式，下面示例是使用mac。\n\n# 使用说明\n## 方式一“命令行”\n### 快速使用\n\n1. **生成密钥和证书** 创建过程会提示输入域名，这里使用默认域名，直接回车；输入密码，向macOS钥匙串里添加证书。\n\t\n\ta. 安装命令行工具\n\t```bash\n\t# 全局安装\n\tnpm install trusted-cert -g\n\t# 或者使用yarn\n\tyarn global add trusted-cert\n\t```\n\t\n\tb. 一键生成自签名证书并添加到macOS钥匙串\n\n\t```bash\n\ttrusted-cert install\n\t```\n\n2. 在nodejs中使用生成的密钥和证书（更多方式参考最后的【附配置服务的HTTPS证书示例】）\n \n\t```javascript\n\tconst https = require('https');\n\tconst fs = require('fs');\n\tconst path = require('path');\n\t\n\tconst options = {\n      key: fs.readFileSync(path.join(process.env.HOME, '.trusted-cert/ssl.key')),\n      cert: fs.readFileSync(path.join(process.env.HOME, '.trusted-cert/ssl.crt')),\n\t};\n\t\n\thttps.createServer(options, (req, res) => {\n\t  res.writeHead(200);\n\t  res.end('hello world\\n');\n\t}).listen(8000);\n\t```\n\n3. 浏览器打开访问<https://localhost:8000/>，发现网址标为了安全\n\n### 命令行功能介绍\n\n```bash\ntrusted-cert --help\n```\n\n```\nUsage: trusted-cert [global options] command\n\nOptions:\n  -v, --version   当前版本\n  -h, --help      display help for command\n\nCommands:\n  install         生成ssl密钥和自签名证书，在系统钥匙串里添加和信任自签名证书\n  info            查看自签名信息\n  trust           信任自签名证书\n  add <host>      添加要支持的域名，支持以,分隔\n  uninstall       删除生成的ssl密钥和自签名证书\n  help [command]  display help for command\n\n先安装，再使用其它命令\n  $ trusted-cert install\n```\n\n### `trusted-cert install`\n一键生成自签名证书并添加到macOS钥匙串，在这个过程中，需要输入本地启动https服务要支持的域名，多个以`,`分隔，然后会提示要输入密码，用来将自签名证书以sudo权限添加到系统钥匙串里，如果添加失败，后面浏览器访问https服务，会提示不安全。\n\n### `trusted-cert trust`\n如果install过程中三次输入密码都错误了，还可以单独运行这个命令重新添加到系统钥匙串。或者发现chrome下访问https还是提醒非安全，可以去查看确认下证书是否已经添加到系统钥匙串，证书是否过期。\n\n### `trusted-cert info`\n生成证书后，可以随时通过这个命令查看密钥等文件的位置，方便你在配置服务器https时需要它，还可以看到支持的域名，是否已经添加到系统钥匙串，证书的有效时间。\n\n### `trusted-cert add <host>`\n通过这个命令新增本地https服务要用的域名，新增时先检测证书是否已经支持了该域名，比如证书支持*.m.taobao.com，本地要使用test.m.taobao.com域名，检测发现已经支持了，会提醒不用新增。如果遇到需要新增的，会先删除原有的密钥等文件和钥匙串里证书，然后再新增。\n\n### `trusted-cert uninstall`\n删除本地存放密钥、证书等文件的目录，删除钥匙串里添加的证书\n\n\n## 方式二“供他方命令行调用的api”\n### 快速使用\n1. 安装依赖  \n\t```bash\n\tnpm install trusted-cert --save\n\t# 或者使用yarn\n\tyarn add trusted-cert\n\t```\n\t\n2. 调用api  \n\n\t```javascript\n\tconst https = require('https')\n\tconst fs = require('fs')\n\tconst { certificateFor } = require('trusted-cert')\n\tconst hosts = ['test.m.taobao.com', '192.168.0.1'] // 本地https服务要使用的domain/ip\n\tcertificateFor(hosts).then((keyAndCert) => {\n\t\thttps.createServer(keyAndCert, (req, res) => {\n\t\t  res.writeHead(200);\n\t\t  res.end('hello world\\n')\n\t\t}).listen(8000)\n\t})\n\t```\n\n3. 浏览器打开访问<https://test.m.taobao.com:8000/>，发现网址标为了安全\n\n### api介绍\n调用api传入要使用的host列表，工具先检测是否安装过证书，没安装过开始安装，安装过的继续检测装过的证书是否已经支持这些host，还有其它检测，针对检测到点一一修复，最后返回密钥和证书的文件路径等信息。\n\n考虑到对于开发者而言，在电脑中只需要一份ssl的密钥和自签名证书就够用了，所以不管是命令行方式还是api，只生成一份文件存放在系统固定位置`~/.trusted-cert`，工具在钥匙串里也只有一份自签名证书，由工具来管理自证书包括生成、销毁、重新生成的生命周期。\n\n# 附配置服务的HTTPS证书示例\n## webpack\n```javascript\n{\n  // ...\n  devServer: {\n    https: {\n      key: fs.readFileSync(path.join(process.env.HOME, '.trusted-cert/ssl.key')),\n      cert: fs.readFileSync(path.join(process.env.HOME, '.trusted-cert/ssl.crt'))\n    }\n  }\n  // ...\n}\n```\n\n## nginx\n```nginx\n# ...\nserver {\n  listen  443;\n  server_name shop.alimama.com;\n \n ssl on;\n  ssl_certificate     /Users/xxx/.trusted-cert/ssl.crt;\n  ssl_certificate_key /Users/xxx/.trusted-cert/ssl.key;\n \n  location  / {\n    proxy_pass  http://127.0.0.1:8002;\n  }\n}\n# ...\n```\n\n\n## nodejs\n```javascript\nconst https = require('https');\nconst fs = require('fs');\nconst path = require('path');\n\nconst options = {\n  key: fs.readFileSync(path.join(process.env.HOME, '.trusted-cert/ssl.key')),\n  cert: fs.readFileSync(path.join(process.env.HOME, '.trusted-cert/ssl.crt')),\n};\n\nhttps.createServer(options, (req, res) => {\n  res.writeHead(200);\n  res.end('hello world\\n');\n}).listen(8000);\n```\n\n# 其它\n该工具生成的证书不支持Firefox、chrome on linux","readmeFilename":"README.md","gitHead":"a44814cf21c446c374a9ee27e4e4548d51194181","_id":"trusted-cert@1.1.4-beta.2","_nodeVersion":"12.14.0","_npmVersion":"6.14.13","dist":{"integrity":"sha512-S37bStb/W5NNmOOMcRg/mfj7gBKN5Cc+1B+eQMJjvII5n8qENCfyAXXq8Am9plhjUub5DMccyd4f86JVHD4ZUw==","shasum":"66bbb873b34a5bb3e0574fd1e0de9a9a683c7700","tarball":"https://registry.npmjs.org/trusted-cert/-/trusted-cert-1.1.4-beta.2.tgz","fileCount":18,"unpackedSize":87758,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg4by0CRA9TVsSAnZWagAAKxkP/RnBRQMxspCi6LcJ/vEm\nqcrECUrFaOKVDuRTHU4VsCI9Axkw0ebxNX552l7RKzijdxF/8V3zX8i9NAdj\nEjz7oXKtF94OzZNlHKNe/8vcznY6SlpF3WUJoTsPN2FfigAb4vdY9KN1Mwdv\nnUvYuADw5/N4LvRK/wVN6pudTlc9pLySPtz742x6TTReVSmWoo3Pm8vAZLCU\nOvwij5CdhCsMs+7ilWQhmYHcidtfv2aJa6R5Xq4yZZXAYJdHH2BPi0g7C2IU\nevfxyGPi6m33eqWC0FsXAPMgGK0K2/Bp0PgzqwJo6IVrl9EGTrWa6dHxlpbT\nyMd+tMkjtRVwyMd9hks2UCXkBc0Xd5NPGbQ/XFKgzeP8og48zpK4DsIWROw/\noxus6bSfsgf+L5TqYugAfQmBnEgYNqYPp2Nz2ysmnXANoiXcQm80Fv20GiBs\n/di6A7UaPN5/B7J8AUoikvmUk9q8EZ+oCODDwj6aN6dW1rH9Pz+Hil6Lk170\n5iI/58W7k0I4H36ngsBIc008x0uwml4ycL0+lJ9K1f5TLS5+Lve1K46Mxcxr\nMaC+QpbxQ7VfUImlqNMPin90Gtj6vU0Osz1mLtJniF7QMh+KmielrZ8cG/JB\nxLilUvMZVGBq0SHSCZFtZCQuMfL/5mTKtGNcjCy7l2JkbJSwyGUAlIEoR/uY\nofpV\r\n=5f6t\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD4/lzLHOC7MdTWt0rpDGedgoUDPLbErlpS1s9iE1hSBQIgfz6n91/NQ3djnIO6VUL4crGRnip8I30qMP4QRzz3CiI="}]},"_npmUser":{"name":"sprying","email":"sprying.fang@gmail.com"},"directories":{},"maintainers":[{"name":"sprying","email":"sprying.fang@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trusted-cert_1.1.4-beta.2_1625406644054_0.27872881921117987"},"_hasShrinkwrap":false},"1.1.4-beta.3":{"name":"trusted-cert","version":"1.1.4-beta.3","description":"A simple tool to generate self signed x509 certificate","bin":{"trusted-cert":"cli.js"},"main":"./dist/index.js","module":"./dist/index.esm.js","types":"./types/index.d.ts","scripts":{"clean":"rm -rf dist types","build":"npm run clean && rollup -c","watch":"npm run clean && rollup -c -w","release":"npm run clean && cross-env NODE_ENV=production rollup -c && npm publish","release:next":"npm run clean && cross-env NODE_ENV=production rollup -c && npm publish --tag next","prepublishOnly":"npm run clean && cross-env NODE_ENV=production rollup -c","madge":"madge --image ./source-file-deps-analysis.png src/index.ts","madge:watch":"nodemon --verbose --ext js,ts,tsx,json --watch lib --exec 'yarn run madge'"},"dependencies":{"commander":"^5.0.0","debug":"^4.3.1","fs-extra":"^9.0.0","is-ip":"^3.1.0","node-forge":"^1.3.1"},"devDependencies":{"@babel/core":"^7.13.16","@babel/plugin-transform-runtime":"^7.13.15","@babel/preset-env":"^7.13.15","@rollup/plugin-commonjs":"^18.0.0","@rollup/plugin-node-resolve":"^11.2.1","@types/debug":"^4.1.5","@types/fs-extra":"^9.0.11","@types/inquirer":"^7.3.1","@types/node-forge":"^1.3.0","@types/rimraf":"^3.0.0","@typescript-eslint/parser":"^4.22.0","cross-env":"^7.0.3","eslint":"^7.24.0","madge":"^4.0.2","nodemon":"^2.0.7","rollup":"^2.45.2","rollup-plugin-babel":"^4.4.0","rollup-plugin-terser":"^7.0.2","rollup-plugin-typescript2":"^0.30.0","ts-standard":"^10.0.0","typescript":"^4.2.4"},"engines":{"node":">=10"},"author":{"name":"慧知","email":"sprying.fang@qq.com","url":"https://sprying.cnblogs.com"},"license":"MIT","homepage":"https://github.com/sprying/trusted-cert/README.md","repository":{"type":"git","url":"git+https://github.com/sprying/trusted-cert.git"},"bugs":{"url":"https://github.com/sprying/trusted-cert/issues"},"tnpm":{"lockfile":"enable","mode":"yarn"},"prettier":{"singleQuote":true,"tabWidth":2},"keywords":["ssl","openssl","certificate","trust","https","trust store","x509","certificates","self-signed","self-signing","credential","credentials","keychain","ca"],"readme":"# 简介\nHTTPS自签名证书工具，自动生成自签名证书并添加到系统钥匙串，支持mac和windows系统，提供了命令行和供其它命令行调用API的两种使用方式，下面示例是使用mac。\n\n# 使用说明\n## 方式一“命令行”\n### 快速使用\n\n1. **生成密钥和证书** 创建过程会提示输入域名，这里使用默认域名，直接回车；输入密码，向macOS钥匙串里添加证书。\n\t\n\ta. 安装命令行工具\n\t```bash\n\t# 全局安装\n\tnpm install trusted-cert -g\n\t# 或者使用yarn\n\tyarn global add trusted-cert\n\t```\n\t\n\tb. 一键生成自签名证书并添加到macOS钥匙串\n\n\t```bash\n\ttrusted-cert install\n\t```\n\n2. 在nodejs中使用生成的密钥和证书（更多方式参考最后的【附配置服务的HTTPS证书示例】）\n \n\t```javascript\n\tconst https = require('https');\n\tconst fs = require('fs');\n\tconst path = require('path');\n\t\n\tconst options = {\n      key: fs.readFileSync(path.join(process.env.HOME, '.trusted-cert/ssl.key')),\n      cert: fs.readFileSync(path.join(process.env.HOME, '.trusted-cert/ssl.crt')),\n\t};\n\t\n\thttps.createServer(options, (req, res) => {\n\t  res.writeHead(200);\n\t  res.end('hello world\\n');\n\t}).listen(8000);\n\t```\n\n3. 浏览器打开访问<https://localhost:8000/>，发现网址标为了安全\n\n### 命令行功能介绍\n\n```bash\ntrusted-cert --help\n```\n\n```\nUsage: trusted-cert [global options] command\n\nOptions:\n  -v, --version   当前版本\n  -h, --help      display help for command\n\nCommands:\n  install         生成ssl密钥和自签名证书，在系统钥匙串里添加和信任自签名证书\n  info            查看自签名信息\n  trust           信任自签名证书\n  add <host>      添加要支持的域名，支持以,分隔\n  uninstall       删除生成的ssl密钥和自签名证书\n  help [command]  display help for command\n\n先安装，再使用其它命令\n  $ trusted-cert install\n```\n\n### `trusted-cert install`\n一键生成自签名证书并添加到macOS钥匙串，在这个过程中，需要输入本地启动https服务要支持的域名，多个以`,`分隔，然后会提示要输入密码，用来将自签名证书以sudo权限添加到系统钥匙串里，如果添加失败，后面浏览器访问https服务，会提示不安全。\n\n### `trusted-cert trust`\n如果install过程中三次输入密码都错误了，还可以单独运行这个命令重新添加到系统钥匙串。或者发现chrome下访问https还是提醒非安全，可以去查看确认下证书是否已经添加到系统钥匙串，证书是否过期。\n\n### `trusted-cert info`\n生成证书后，可以随时通过这个命令查看密钥等文件的位置，方便你在配置服务器https时需要它，还可以看到支持的域名，是否已经添加到系统钥匙串，证书的有效时间。\n\n### `trusted-cert add <host>`\n通过这个命令新增本地https服务要用的域名，新增时先检测证书是否已经支持了该域名，比如证书支持*.m.taobao.com，本地要使用test.m.taobao.com域名，检测发现已经支持了，会提醒不用新增。如果遇到需要新增的，会先删除原有的密钥等文件和钥匙串里证书，然后再新增。\n\n### `trusted-cert uninstall`\n删除本地存放密钥、证书等文件的目录，删除钥匙串里添加的证书\n\n\n## 方式二“供他方命令行调用的api”\n### 快速使用\n1. 安装依赖  \n\t```bash\n\tnpm install trusted-cert --save\n\t# 或者使用yarn\n\tyarn add trusted-cert\n\t```\n\t\n2. 调用api  \n\n\t```javascript\n\tconst https = require('https')\n\tconst fs = require('fs')\n\tconst { certificateFor } = require('trusted-cert')\n\tconst hosts = ['test.m.taobao.com', '192.168.0.1'] // 本地https服务要使用的domain/ip\n\tcertificateFor(hosts).then((keyAndCert) => {\n\t\thttps.createServer(keyAndCert, (req, res) => {\n\t\t  res.writeHead(200);\n\t\t  res.end('hello world\\n')\n\t\t}).listen(8000)\n\t})\n\t```\n\n3. 浏览器打开访问<https://test.m.taobao.com:8000/>，发现网址标为了安全\n\n### api介绍\n调用api传入要使用的host列表，工具先检测是否安装过证书，没安装过开始安装，安装过的继续检测装过的证书是否已经支持这些host，还有其它检测，针对检测到点一一修复，最后返回密钥和证书的文件路径等信息。\n\n考虑到对于开发者而言，在电脑中只需要一份ssl的密钥和自签名证书就够用了，所以不管是命令行方式还是api，只生成一份文件存放在系统固定位置`~/.trusted-cert`，工具在钥匙串里也只有一份自签名证书，由工具来管理自证书包括生成、销毁、重新生成的生命周期。\n\n# 附配置服务的HTTPS证书示例\n## webpack\n```javascript\n{\n  // ...\n  devServer: {\n    https: {\n      key: fs.readFileSync(path.join(process.env.HOME, '.trusted-cert/ssl.key')),\n      cert: fs.readFileSync(path.join(process.env.HOME, '.trusted-cert/ssl.crt'))\n    }\n  }\n  // ...\n}\n```\n\n## nginx\n```nginx\n# ...\nserver {\n  listen  443;\n  server_name shop.alimama.com;\n \n ssl on;\n  ssl_certificate     /Users/xxx/.trusted-cert/ssl.crt;\n  ssl_certificate_key /Users/xxx/.trusted-cert/ssl.key;\n \n  location  / {\n    proxy_pass  http://127.0.0.1:8002;\n  }\n}\n# ...\n```\n\n\n## nodejs\n```javascript\nconst https = require('https');\nconst fs = require('fs');\nconst path = require('path');\n\nconst options = {\n  key: fs.readFileSync(path.join(process.env.HOME, '.trusted-cert/ssl.key')),\n  cert: fs.readFileSync(path.join(process.env.HOME, '.trusted-cert/ssl.crt')),\n};\n\nhttps.createServer(options, (req, res) => {\n  res.writeHead(200);\n  res.end('hello world\\n');\n}).listen(8000);\n```\n","readmeFilename":"README.md","gitHead":"981af197188b2aad682c01724cca32c9c0f82aa5","_id":"trusted-cert@1.1.4-beta.3","_nodeVersion":"16.18.0","_npmVersion":"8.1.3","dist":{"integrity":"sha512-Hjwq9pIeDXNi1cZF/6x6y9JD0PMU40UpmmtYuqnx55Tn6jyBxI1Rpz9oFrbLQQnYG8T4TqkkR0RBj4CeMM5gew==","shasum":"68196bf24cff9673baaae28218fd07db50cd60c4","tarball":"https://registry.npmjs.org/trusted-cert/-/trusted-cert-1.1.4-beta.3.tgz","fileCount":18,"unpackedSize":70383,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCrwfHF/+eu/plSUqWveWSw2t7EWOV5BH15igTfkxl+CwIhAICxnRXg33JGX3Pyd3mJFB6e/naNDdUKu/MaCFtRKFad"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjdHf8ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpRShAAmYnaywJ+8Vs0ralSEyS459w0wtc9ydYcfR1OsScNn/q8TKE3\r\nsP5XCs0qg8KDT8OfxguwXA+dbEBKWUjO4oTF8dWLW9PkpxQSfcwfAchu8Ad9\r\n981jAbh8//b9c77jZy/AwElFF6yk8ca18qS8l/oOinNP1qfAHYkNo8pAZJMQ\r\nwXoqmWQrZ3pshxu03Ioik7v4Zjn4efSMqnNAOm0mqih8w2ZpW4z/FQtY17Vp\r\nLvSOaCkInp6cRq6L1JJqOsqjXIqVAEMqHhteM3NX/2XGlZJKMM78lyDDARtT\r\nKKApjxmAIhzT7Jjya9XSPCIv0p4ikTBU82IP2d1W9j1WSf9LBMeN4hmhLssm\r\nNITocwINBdqQ/9EdycK2WfbkV+GwoTFCmXhlEmrCZSyC3zH3ZGq2edYeuAjQ\r\nrGaNOIq63Rf9i2IMAjlQNJvPVAU0rUpEAIrqXx20vP1rrnSDYv3Z/PWaTsqh\r\n2wiQatA5fIw1d+79GjmZGOSqYPRSAx97TXRdnWfTDgU7nmpcT0wS3mrizF1b\r\nph//4ilCr519J3EluYIsdLkZV755sruS0u5ikgnXf1cdJ5cpvwhLpR6fDkZb\r\n0JMgttttHvAGRoaElboMtlvwImg9XEVmhzuW8u+tvI0liUt3Q7I1WKfjarmp\r\n26MkLzpFd7AusvYS6rxVojmyMjl/Nv7CJbo=\r\n=PPrb\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"clarkxia","email":"xiawenwu41@gmail.com"},"directories":{},"maintainers":[{"name":"sprying","email":"fang12377@163.com"},{"name":"clarkxia","email":"xiawenwu41@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trusted-cert_1.1.4-beta.3_1668577276676_0.09014721371585033"},"_hasShrinkwrap":false},"1.1.4-beta.4":{"name":"trusted-cert","version":"1.1.4-beta.4","description":"A simple tool to generate self signed x509 certificate","bin":{"trusted-cert":"cli.js"},"main":"./dist/index.js","module":"./dist/index.esm.js","types":"./types/index.d.ts","scripts":{"clean":"rm -rf dist types","build":"npm run clean && rollup -c","watch":"npm run clean && rollup -c -w","release":"npm run clean && cross-env NODE_ENV=production rollup -c && npm publish","release:next":"npm run clean && cross-env NODE_ENV=production rollup -c && npm publish --tag next","prepublishOnly":"npm run clean && cross-env NODE_ENV=production rollup -c","madge":"madge --image ./source-file-deps-analysis.png src/index.ts","madge:watch":"nodemon --verbose --ext js,ts,tsx,json --watch lib --exec 'yarn run madge'"},"dependencies":{"commander":"^5.0.0","debug":"^4.3.1","fs-extra":"^9.0.0","is-ip":"^3.1.0","node-forge":"^1.3.1"},"devDependencies":{"@babel/core":"^7.13.16","@babel/plugin-transform-runtime":"^7.13.15","@babel/preset-env":"^7.13.15","@rollup/plugin-commonjs":"^18.0.0","@rollup/plugin-node-resolve":"^11.2.1","@types/debug":"^4.1.5","@types/fs-extra":"^9.0.11","@types/inquirer":"^7.3.1","@types/node-forge":"^1.3.0","@types/rimraf":"^3.0.0","@typescript-eslint/parser":"^4.22.0","cross-env":"^7.0.3","eslint":"^7.24.0","madge":"^4.0.2","nodemon":"^2.0.7","rollup":"^2.45.2","rollup-plugin-babel":"^4.4.0","rollup-plugin-terser":"^7.0.2","rollup-plugin-typescript2":"^0.30.0","ts-standard":"^10.0.0","typescript":"^4.2.4"},"engines":{"node":">=10"},"author":{"name":"慧知","email":"sprying.fang@qq.com","url":"https://sprying.cnblogs.com"},"license":"MIT","homepage":"https://github.com/sprying/trusted-cert/README.md","repository":{"type":"git","url":"git+https://github.com/sprying/trusted-cert.git"},"bugs":{"url":"https://github.com/sprying/trusted-cert/issues"},"tnpm":{"lockfile":"enable","mode":"yarn"},"prettier":{"singleQuote":true,"tabWidth":2},"keywords":["ssl","openssl","certificate","trust","https","trust store","x509","certificates","self-signed","self-signing","credential","credentials","keychain","ca"],"readme":"# 简介\nHTTPS自签名证书工具，自动生成自签名证书并添加到系统钥匙串，支持mac和windows系统，提供了命令行和供其它命令行调用API的两种使用方式，下面示例是使用mac。\n\n# 使用说明\n## 方式一“命令行”\n### 快速使用\n\n1. **生成密钥和证书** 创建过程会提示输入域名，这里使用默认域名，直接回车；输入密码，向macOS钥匙串里添加证书。\n\t\n\ta. 安装命令行工具\n\t```bash\n\t# 全局安装\n\tnpm install trusted-cert -g\n\t# 或者使用yarn\n\tyarn global add trusted-cert\n\t```\n\t\n\tb. 一键生成自签名证书并添加到macOS钥匙串\n\n\t```bash\n\ttrusted-cert install test.example.com\n\t```\n\n2. 在nodejs中使用生成的密钥和证书（更多方式参考最后的【附配置服务的HTTPS证书示例】）\n \n\t```javascript\n\tconst https = require('https');\n\tconst fs = require('fs');\n\tconst path = require('path');\n\t\n\tconst options = {\n      key: fs.readFileSync(path.join(process.env.HOME, '.trusted-cert/ssl.key')),\n      cert: fs.readFileSync(path.join(process.env.HOME, '.trusted-cert/ssl.crt')),\n\t};\n\t\n\thttps.createServer(options, (req, res) => {\n\t  res.writeHead(200);\n\t  res.end('hello world\\n');\n\t}).listen(8000);\n\t```\n\n3. 浏览器打开访问<https://localhost:8000/>，发现网址标为了安全\n\n### 命令行功能介绍\n\n```bash\n$ trusted-cert --help\nUsage: trusted-cert [global option] | [command]\n\nOptions:\n  -v, --version      当前版本\n  -h, --help         display help for command\n\nCommands:\n  install <host...>  生成密钥和自签名证书，并添加至系统钥匙串。多个 host 以空格分隔\n  info               查看自签名信息\n  trust              信任自签名证书\n  uninstall          删除生成的ssl密钥和自签名证书\n  help [command]     display help for command\n```\n\n### `trusted-cert install <host...>`\n一键生成自签名证书并添加到macOS钥匙串，在这个过程中，需要输入本地启动https服务要支持的域名，多个以`,`分隔，然后会提示要输入密码，用来将自签名证书以sudo权限添加到系统钥匙串里，如果添加失败，后面浏览器访问https服务，会提示不安全。\n\n### `trusted-cert trust`\n如果install过程中三次输入密码都错误了，还可以单独运行这个命令重新添加到系统钥匙串。或者发现chrome下访问https还是提醒非安全，可以去查看确认下证书是否已经添加到系统钥匙串，证书是否过期。\n\n### `trusted-cert info`\n生成证书后，可以随时通过这个命令查看密钥等文件的位置，方便你在配置服务器https时需要它，还可以看到支持的域名，是否已经添加到系统钥匙串，证书的有效时间。\n\n### `trusted-cert uninstall`\n删除本地已生成的密钥和证书\n\n\n## 方式二“供他方命令行调用的api”\n### 快速使用\n1. 安装依赖  \n\t```bash\n\tnpm install trusted-cert --save\n\t# 或者使用yarn\n\tyarn add trusted-cert\n\t```\n\t\n2. 调用api  \n\n\t```javascript\n\tconst https = require('https')\n\tconst fs = require('fs')\n\tconst { certificateFor } = require('trusted-cert')\n\tconst hosts = ['test.example.com', '192.168.0.1'] // 本地https服务要使用的domain/ip\n\tcertificateFor(hosts).then((keyAndCert) => {\n\t\thttps.createServer(keyAndCert, (req, res) => {\n\t\t  res.writeHead(200);\n\t\t  res.end('hello world\\n')\n\t\t}).listen(8000)\n\t})\n\t```\n\n3. 浏览器打开访问<https://test.m.taobao.com:8000/>，发现网址标为了安全\n\n### api介绍\n调用api传入要使用的host列表，工具先检测是否安装过证书，没安装过开始安装，安装过的继续检测装过的证书是否已经支持这些host，还有其它检测，针对检测到点一一修复，最后返回密钥和证书的文件路径等信息。\n\n考虑到对于开发者而言，在电脑中只需要一份ssl的密钥和自签名证书就够用了，所以不管是命令行方式还是api，只生成一份文件存放在系统固定位置`~/.trusted-cert`，工具在钥匙串里也只有一份自签名证书，由工具来管理自证书包括生成、销毁、重新生成的生命周期。\n\n# 附配置服务的HTTPS证书示例\n## webpack\n```javascript\n{\n  // ...\n  devServer: {\n    https: {\n      key: fs.readFileSync(path.join(process.env.HOME, '.trusted-cert/ssl.key')),\n      cert: fs.readFileSync(path.join(process.env.HOME, '.trusted-cert/ssl.crt'))\n    }\n  }\n  // ...\n}\n```\n\n## nginx\n```nginx\n# ...\nserver {\n  listen  443;\n  server_name test.example.com;\n \n ssl on;\n  ssl_certificate     /Users/xxx/.trusted-cert/ssl.crt;\n  ssl_certificate_key /Users/xxx/.trusted-cert/ssl.key;\n \n  location  / {\n    proxy_pass  http://127.0.0.1:8002;\n  }\n}\n# ...\n```\n\n## nodejs\n```javascript\nconst https = require('https');\nconst fs = require('fs');\nconst path = require('path');\n\nconst options = {\n  key: fs.readFileSync(path.join(process.env.HOME, '.trusted-cert/ssl.key')),\n  cert: fs.readFileSync(path.join(process.env.HOME, '.trusted-cert/ssl.crt')),\n};\n\nhttps.createServer(options, (req, res) => {\n  res.writeHead(200);\n  res.end('hello world\\n');\n}).listen(8000);\n```\n","readmeFilename":"README.md","gitHead":"95bbc88508c60d18a0baaa6b6ddc1b8ee3e9aa9b","_id":"trusted-cert@1.1.4-beta.4","_nodeVersion":"16.18.0","_npmVersion":"8.1.3","dist":{"integrity":"sha512-OBySXXPGt9hXaQookPpSW0eJvcZtooJHMtWAu5GLUHgBqnKwjtlZhgQ1Wn7vJWmJbYSLROJmdm9YJzatnGoZaQ==","shasum":"753c5884a3fa3fc8fe452ed031797c7e4d7aaeb0","tarball":"https://registry.npmjs.org/trusted-cert/-/trusted-cert-1.1.4-beta.4.tgz","fileCount":18,"unpackedSize":70930,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC0n0MUNxJoPmPmygtFV6yVuC/mItOA/exBEkRq7X/J5QIga3BFv8Vwia72by/PCY1w0udsC+71uVWXKm+ybVQnpK8="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjdI8yACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpV7RAApQyMWYZAL9ZOLPBFOe9YlnBKDoySDk4tclYaxKoHZsj28pQQ\r\nYplsQm5FO5XK1ZUptyyA1IzKNVxQ2blZgV12R2YJF0hFaNkMiC0eTcNmh1lm\r\n8aL5WuLOX4N9AxXzAeNBAJCDWC1aJcfXYIotfH9MWf/y8zOjTkf2rCSv5ry5\r\nkgZmZozysyf1+WQtin0MpxJFtz6lthqJN3W32SUEbyNt9EIGhWOVE0bnNZIM\r\nVIaSyASwQPWceYsidTbxagfWfcN9DGF1jD8U+kf0rSFPfES/gwXNuu1DGFBP\r\nYBP7oWa9XchWzsN/9QzNAo1S4bvTcBLAFtFXKt/pA3/qDLmD86jv3x79xn4E\r\nNg2CVblIWihFN19AvyAtoBG5KgEVVXh17yD9AYvAzpQSxDn6JzYKd0KN1+J8\r\neh6KD0MHhTcIMtLuVrCdANf0sAfxBjDqSArpUeh2HsrUJFV8cO0b8+ZDyenU\r\n3NTSUwGCpJhG/IbHMGUNq+VVDVKBPKw7xImiI7OEzU+uHafjpCY4RigApW4B\r\nrmNvpBFLs+OQdkXzzDGCLBxZJ9BfWZpoNiYliRD++OpV9oLNKxGcefQT+Kb3\r\nW/VvtShncrwRUUlAD4t9rg6bEKa5eqqvX/G/Emg5msyr52EnusnLawcxcvtC\r\nHl1mY6g3fgBKQo2sH4vhYhvCDvnIQwOVonM=\r\n=E9Aw\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"clarkxia","email":"xiawenwu41@gmail.com"},"directories":{},"maintainers":[{"name":"sprying","email":"fang12377@163.com"},{"name":"clarkxia","email":"xiawenwu41@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trusted-cert_1.1.4-beta.4_1668583218496_0.09224712503580634"},"_hasShrinkwrap":false},"1.1.4":{"name":"trusted-cert","version":"1.1.4","description":"A simple tool to generate self signed x509 certificate","bin":{"trusted-cert":"cli.js"},"main":"./dist/index.js","module":"./dist/index.esm.js","types":"./types/index.d.ts","scripts":{"clean":"rm -rf dist types","build":"npm run clean && rollup -c","watch":"npm run clean && rollup -c -w","release":"npm run clean && cross-env NODE_ENV=production rollup -c && npm publish","release:next":"npm run clean && cross-env NODE_ENV=production rollup -c && npm publish --tag next","prepublishOnly":"npm run clean && cross-env NODE_ENV=production rollup -c","madge":"madge --image ./source-file-deps-analysis.png src/index.ts","madge:watch":"nodemon --verbose --ext js,ts,tsx,json --watch lib --exec 'yarn run madge'"},"dependencies":{"commander":"^5.0.0","debug":"^4.3.1","fs-extra":"^9.0.0","is-ip":"^3.1.0","node-forge":"^1.3.1"},"devDependencies":{"@babel/core":"^7.13.16","@babel/plugin-transform-runtime":"^7.13.15","@babel/preset-env":"^7.13.15","@rollup/plugin-commonjs":"^18.0.0","@rollup/plugin-node-resolve":"^11.2.1","@types/debug":"^4.1.5","@types/fs-extra":"^9.0.11","@types/inquirer":"^7.3.1","@types/node-forge":"^1.3.0","@types/rimraf":"^3.0.0","@typescript-eslint/parser":"^4.22.0","cross-env":"^7.0.3","eslint":"^7.24.0","madge":"^4.0.2","nodemon":"^2.0.7","rollup":"^2.45.2","rollup-plugin-babel":"^4.4.0","rollup-plugin-terser":"^7.0.2","rollup-plugin-typescript2":"^0.30.0","ts-standard":"^10.0.0","typescript":"^4.2.4"},"engines":{"node":">=10"},"author":{"name":"慧知","email":"sprying.fang@qq.com","url":"https://sprying.cnblogs.com"},"license":"MIT","homepage":"https://github.com/sprying/trusted-cert/README.md","repository":{"type":"git","url":"git+https://github.com/sprying/trusted-cert.git"},"bugs":{"url":"https://github.com/sprying/trusted-cert/issues"},"tnpm":{"lockfile":"enable","mode":"yarn"},"prettier":{"singleQuote":true,"tabWidth":2},"keywords":["ssl","openssl","certificate","trust","https","trust store","x509","certificates","self-signed","self-signing","credential","credentials","keychain","ca"],"gitHead":"95bbc88508c60d18a0baaa6b6ddc1b8ee3e9aa9b","_id":"trusted-cert@1.1.4","_nodeVersion":"16.18.0","_npmVersion":"8.1.3","dist":{"integrity":"sha512-aV6JFsWjCe7B4gAoC3kiN+UEBU8c8Z1q0EMCZhNaf5TBtdNi0kiVHPlHQwFw0FbnWEBCbNjthJ9BpYsmFewccg==","shasum":"bc76c139a5f3c23ed72fbd24ea2995a0d10feeb3","tarball":"https://registry.npmjs.org/trusted-cert/-/trusted-cert-1.1.4.tgz","fileCount":18,"unpackedSize":70909,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEjXFB7rQJ1xMoxgVU50sUHJ5cnEQHHtXOc3ZoH2gSnAAiAU1+rBvFOdcacEhWpO6EaXQzS9RP9OV7hFYx3vEgc7Vg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjhWmgACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoeNQ/+JzbAjlhJL/0NpeUKBvjr7et74tcQ5nl8TAS/qTxK/QS2OQJJ\r\n7VaoVR2HpisA3/c9XXYY7IxGbVIQkqas8WxKSEJjKk85NRaC711nvhagl3dJ\r\nPJtRmu9Fw/BmNEt6g96H5XchZ0KULSGTRRTcXrK3ZPrPtMXS8TTZvJB0n8TA\r\nTum0kOwP4p7fxc8Vn7exkkEKHsKKhybvYPnuddVMQOpmgE3+TBxyQi3Inblt\r\nHOmL9KM2Js7XJbR6uV7o93LYRMYlyvP5Xdx1MkD0O1D+Yk6pSE/apMqsm6S8\r\nFmt+nsMNacntsJR94FMlpgHK8x+Sse8xxONMwqSMuQCfNvFCV7WthC4mg1kI\r\ntuH9k2fxpJqOczClyIeLYYlbYBceQC8YqHj/rw7H2sTkMs+N8qefV1gtg5wu\r\nwQQD8QxOskK5FNM2MIquSRqXGXe6Th22hk40smJRAnqoNfkv1mHeVPjQz0TG\r\nX/kSCNPDo6Gt8j2AH4KNeeLkyoGpl17nFaRNqOV2qGZyEOKXUX11vw6LvzF3\r\nEJtMskbwQLftj2NtLIxTZEuAO/Uut1FVB3ZM2rbmc8ZzdO/LAM2RRX10ceuZ\r\n3RynuQkaVWSENAtaEbBCxNkhhxlB8JS2PFpmdBE4giaGig/ckmr5oUlaWAjp\r\nm0KLoyLObIfosBFzXHCN4/OSHAMu9Eb1yOc=\r\n=MgVj\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"clarkxia","email":"xiawenwu41@gmail.com"},"directories":{},"maintainers":[{"name":"sprying","email":"fang12377@163.com"},{"name":"clarkxia","email":"xiawenwu41@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trusted-cert_1.1.4_1669687711954_0.00984462315051493"},"_hasShrinkwrap":false}},"time":{"created":"2020-04-14T17:27:22.273Z","0.0.1-3":"2020-04-14T17:27:22.530Z","modified":"2022-11-29T02:08:32.221Z","0.0.1-4":"2020-04-15T17:28:28.699Z","0.0.1-5":"2020-04-15T19:13:49.503Z","0.0.1-6":"2020-04-15T19:14:58.302Z","0.0.1":"2020-04-15T19:19:11.949Z","0.0.2":"2020-04-28T03:42:12.819Z","1.0.0-1":"2020-07-11T20:03:22.157Z","1.0.0-2":"2020-07-11T20:28:41.117Z","1.0.0-3":"2020-07-11T20:39:10.759Z","1.0.0-4":"2020-07-11T20:54:02.239Z","1.0.0-5":"2020-07-11T21:28:55.316Z","1.0.0-6":"2020-07-11T22:09:17.134Z","1.0.0-7":"2020-07-12T03:30:40.532Z","1.0.0-8":"2020-07-12T03:36:36.494Z","1.0.0-9":"2020-07-12T09:05:09.255Z","1.0.0-10":"2020-07-12T13:12:41.573Z","1.0.0-11":"2020-07-12T14:34:50.273Z","1.0.0-12":"2020-07-12T14:44:07.383Z","1.0.0-13":"2020-07-12T15:30:08.630Z","1.0.0-14":"2020-07-12T15:37:58.012Z","1.0.0-15":"2020-07-12T16:00:16.825Z","1.0.0-16":"2020-07-12T17:42:52.346Z","1.0.0-17":"2020-07-12T18:10:03.721Z","1.0.0-18":"2020-07-12T18:23:52.302Z","1.0.0-20":"2020-07-15T06:40:00.525Z","1.0.0-21":"2020-07-18T18:18:04.895Z","1.0.0-22":"2021-04-15T11:31:49.153Z","1.0.0-23":"2021-04-15T13:51:44.241Z","1.0.0":"2021-04-19T01:36:54.682Z","1.0.1":"2021-04-25T00:59:27.017Z","1.0.2":"2021-05-13T05:47:56.897Z","1.0.3":"2021-05-19T14:42:14.035Z","1.0.4-beta.1":"2021-05-30T13:29:27.766Z","1.0.4":"2021-05-30T13:40:24.064Z","1.0.5":"2021-05-31T17:55:22.156Z","1.1.0-beta.1":"2021-05-31T19:46:59.518Z","1.1.0-beta.2":"2021-05-31T19:48:05.333Z","1.1.0":"2021-06-01T01:49:12.693Z","1.1.1":"2021-06-01T04:46:28.204Z","1.1.2-beta.1":"2021-06-03T02:51:01.329Z","1.1.2":"2021-06-03T02:55:03.513Z","1.1.3":"2021-06-05T06:01:18.701Z","1.1.4-beta.1":"2021-07-04T13:38:09.285Z","1.1.4-beta.2":"2021-07-04T13:50:44.186Z","1.1.4-beta.3":"2022-11-16T05:41:16.846Z","1.1.4-beta.4":"2022-11-16T07:20:18.691Z","1.1.4":"2022-11-29T02:08:32.134Z"},"maintainers":[{"name":"sprying","email":"fang12377@163.com"},{"name":"clarkxia","email":"xiawenwu41@gmail.com"}],"description":"A simple tool to generate self signed x509 certificate","readme":"# 简介\nHTTPS自签名证书工具，自动生成自签名证书并添加到系统钥匙串，支持mac和windows系统，提供了命令行和供其它命令行调用API的两种使用方式，下面示例是使用mac。\n\n# 使用说明\n## 方式一“命令行”\n### 快速使用\n\n1. **生成密钥和证书** 创建过程会提示输入域名，这里使用默认域名，直接回车；输入密码，向macOS钥匙串里添加证书。\n\t\n\ta. 安装命令行工具\n\t```bash\n\t# 全局安装\n\tnpm install trusted-cert -g\n\t# 或者使用yarn\n\tyarn global add trusted-cert\n\t```\n\t\n\tb. 一键生成自签名证书并添加到macOS钥匙串\n\n\t```bash\n\ttrusted-cert install test.example.com\n\t```\n\n2. 在nodejs中使用生成的密钥和证书（更多方式参考最后的【附配置服务的HTTPS证书示例】）\n \n\t```javascript\n\tconst https = require('https');\n\tconst fs = require('fs');\n\tconst path = require('path');\n\t\n\tconst options = {\n      key: fs.readFileSync(path.join(process.env.HOME, '.trusted-cert/ssl.key')),\n      cert: fs.readFileSync(path.join(process.env.HOME, '.trusted-cert/ssl.crt')),\n\t};\n\t\n\thttps.createServer(options, (req, res) => {\n\t  res.writeHead(200);\n\t  res.end('hello world\\n');\n\t}).listen(8000);\n\t```\n\n3. 浏览器打开访问<https://localhost:8000/>，发现网址标为了安全\n\n### 命令行功能介绍\n\n```bash\n$ trusted-cert --help\nUsage: trusted-cert [global option] | [command]\n\nOptions:\n  -v, --version      当前版本\n  -h, --help         display help for command\n\nCommands:\n  install <host...>  生成密钥和自签名证书，并添加至系统钥匙串。多个 host 以空格分隔\n  info               查看自签名信息\n  trust              信任自签名证书\n  uninstall          删除生成的ssl密钥和自签名证书\n  help [command]     display help for command\n```\n\n### `trusted-cert install <host...>`\n一键生成自签名证书并添加到macOS钥匙串，在这个过程中，需要输入本地启动https服务要支持的域名，多个以`,`分隔，然后会提示要输入密码，用来将自签名证书以sudo权限添加到系统钥匙串里，如果添加失败，后面浏览器访问https服务，会提示不安全。\n\n### `trusted-cert trust`\n如果install过程中三次输入密码都错误了，还可以单独运行这个命令重新添加到系统钥匙串。或者发现chrome下访问https还是提醒非安全，可以去查看确认下证书是否已经添加到系统钥匙串，证书是否过期。\n\n### `trusted-cert info`\n生成证书后，可以随时通过这个命令查看密钥等文件的位置，方便你在配置服务器https时需要它，还可以看到支持的域名，是否已经添加到系统钥匙串，证书的有效时间。\n\n### `trusted-cert uninstall`\n删除本地已生成的密钥和证书\n\n\n## 方式二“供他方命令行调用的api”\n### 快速使用\n1. 安装依赖  \n\t```bash\n\tnpm install trusted-cert --save\n\t# 或者使用yarn\n\tyarn add trusted-cert\n\t```\n\t\n2. 调用api  \n\n\t```javascript\n\tconst https = require('https')\n\tconst fs = require('fs')\n\tconst { certificateFor } = require('trusted-cert')\n\tconst hosts = ['test.example.com', '192.168.0.1'] // 本地https服务要使用的domain/ip\n\tcertificateFor(hosts).then((keyAndCert) => {\n\t\thttps.createServer(keyAndCert, (req, res) => {\n\t\t  res.writeHead(200);\n\t\t  res.end('hello world\\n')\n\t\t}).listen(8000)\n\t})\n\t```\n\n3. 浏览器打开访问<https://test.m.taobao.com:8000/>，发现网址标为了安全\n\n### api介绍\n调用api传入要使用的host列表，工具先检测是否安装过证书，没安装过开始安装，安装过的继续检测装过的证书是否已经支持这些host，还有其它检测，针对检测到点一一修复，最后返回密钥和证书的文件路径等信息。\n\n考虑到对于开发者而言，在电脑中只需要一份ssl的密钥和自签名证书就够用了，所以不管是命令行方式还是api，只生成一份文件存放在系统固定位置`~/.trusted-cert`，工具在钥匙串里也只有一份自签名证书，由工具来管理自证书包括生成、销毁、重新生成的生命周期。\n\n# 附配置服务的HTTPS证书示例\n## webpack\n```javascript\n{\n  // ...\n  devServer: {\n    https: {\n      key: fs.readFileSync(path.join(process.env.HOME, '.trusted-cert/ssl.key')),\n      cert: fs.readFileSync(path.join(process.env.HOME, '.trusted-cert/ssl.crt'))\n    }\n  }\n  // ...\n}\n```\n\n## nginx\n```nginx\n# ...\nserver {\n  listen  443;\n  server_name test.example.com;\n \n ssl on;\n  ssl_certificate     /Users/xxx/.trusted-cert/ssl.crt;\n  ssl_certificate_key /Users/xxx/.trusted-cert/ssl.key;\n \n  location  / {\n    proxy_pass  http://127.0.0.1:8002;\n  }\n}\n# ...\n```\n\n## nodejs\n```javascript\nconst https = require('https');\nconst fs = require('fs');\nconst path = require('path');\n\nconst options = {\n  key: fs.readFileSync(path.join(process.env.HOME, '.trusted-cert/ssl.key')),\n  cert: fs.readFileSync(path.join(process.env.HOME, '.trusted-cert/ssl.crt')),\n};\n\nhttps.createServer(options, (req, res) => {\n  res.writeHead(200);\n  res.end('hello world\\n');\n}).listen(8000);\n```\n","readmeFilename":"README.md","homepage":"https://github.com/sprying/trusted-cert/README.md","repository":{"type":"git","url":"git+https://github.com/sprying/trusted-cert.git"},"author":{"name":"慧知","email":"sprying.fang@qq.com","url":"https://sprying.cnblogs.com"},"bugs":{"url":"https://github.com/sprying/trusted-cert/issues"},"keywords":["ssl","openssl","certificate","trust","https","trust store","x509","certificates","self-signed","self-signing","credential","credentials","keychain","ca"],"license":"MIT"}