Research
Security News
Threat Actor Exposes Playbook for Exploiting npm to Build Blockchain-Powered Botnets
A threat actor's playbook for exploiting the npm ecosystem was exposed on the dark web, detailing how to build a blockchain-powered botnet.
node-easy-cert
Advanced tools
本插件可以生成自签名的root证书,并基于该root证书,生成各个域名的HTTPS证书。
const CertManager = require('cert-manager');
const options = {
rootDirPath: '/the/full/path/of/the/dir', // default to /{USER_HOME}/{.node_easy_certs}/
// the default attrs of a generated cert, you can change it here
defaultCertAttrs: [
{ name: 'countryName', value: 'CN' },
{ name: 'organizationName', value: 'CertManager' },
{ shortName: 'ST', value: 'SH' },
{ shortName: 'OU', value: 'CertManager SSL' }
]
}
const crtMgr = new CertManager(options);
const rootOptions = {
commonName: 'theNameYouLike'
};
crtMgr.generateRootCA(rootOptions);
证书目录的全路径,如果配置,优先级高于rootDirName
默认情况下,证书都会生成在 {USER_HOME}/.node_easy_certs/
。
如果配置了rootDirPath
, 那么所有的证书都会生成在该目录下。
在证书根目录下面生成根证书rootCA.crt 和 rootCA.key。生成后,请选择rootCA.crt,安装并信任,否则您的组件可能工作失败。
options object
string
required
rootCA的commonName,安装后,将会作为系统里面的证书名称显示在列表中
bool
optional
default
: false
是否覆盖已经存在的rootCA,默认为false。在false的情形下,如果遇到已经存在的rootCA,会返回错误
ROOT_CA_EXISTED
并终止创建。
callback function
optional
const options = {
commonName: 'yourPreference'
};
crtMgr.generateRootCA(options, (error, keyPath, crtPath) {
// 如果根证书已经存在,且没有设置overwrite为true,则需要捕获
if (error === 'ROOT_CA_EXISTED') {
// 处理当证书已经存在的情形
}
if(!error) {
// 证书需要被安装并信任,可以在此打开该目录并给出提示,也可以进行其他操作
const isWin = /^win/.test(process.platform);
const certDir = path.dirname(keyPath);
if(isWin){
exec("start .",{ cwd : certDir });
}else{
exec("open .",{ cwd : certDir });
}
}
});
获取指定域名下的证书的key和crt内容,如果证书还不存在,则会先创建该证书。
证书的生成基于生成的rootCA根证书来签名,如果rootCA根证书还未创建,则会终止并抛出错误:
ROOT_CA_NOT_EXISTS
hostname
string
所要获取证书内容的hostname
callback
function
获取到内容后的回调函数,主要包含key的内容和crt的内容,如果获取过程中出现异常,则放入error变量中
获取子域名的证书,要求已经存在根证书,否则会提示失败。组件会抛出对应的异常。您可以捕获并通过
generateRootCA()
来生成根证书。并安装并请信任该根证书
certManager.getCertificate('localhost', (error, keyContent, crtContent) => {
// 如果根证书还没有生成,需要先生成根证书
if (error === 'ROOT_CA_NOT_EXISTS') {
// handle the issue
}
// 正常操作
// ...
});
获取由当前cert-manager实例所管理的证书的根目录
string
当前cert-manager实例所管理的证书所对应的根目录。默认为{USER_HOME}/.node_easy_certs/获取根证书的全路径
string
根证书的全路径,如果根证书不存在,将返回空字符串获取根证书是否存在的状态
检测RootCA是否已经被信任
1.2.1 新增对Windows平台的支持
bool
是否存在根证书清除当前目录下所有的证书文件
callback
function
删除结束后的回调函数,如果删除过程中有错误,将会被放入error对象中在运行过程中,会根据错误原因抛出指定错误码,包括如下
错误码 | 释义 | 备注 |
---|---|---|
ROOT_CA_NOT_EXISTS | root根证书不存在。当我们执行的某个操作依赖于根证书,而根证书不存在时,就会抛出该异常。我们可以尝试生成根证书 | |
ROOT_CA_COMMON_NAME_UNSPECIFIED | commonName未设置。比如当我们调用genearteRootCA() 时,commonName是必传的。 | |
ROOT_CA_EXISTED | rootCA 根证书已经存在。当我们重新生成证书,如果证书已经存在,会抛出该异常。 | 可以在调用generateRootCA 时,传入 option.overwirte=true 来覆盖 |
FAQs
A tool for managing self-signed certifications
We found that node-easy-cert demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
A threat actor's playbook for exploiting the npm ecosystem was exposed on the dark web, detailing how to build a blockchain-powered botnet.
Security News
NVD’s backlog surpasses 20,000 CVEs as analysis slows and NIST announces new system updates to address ongoing delays.
Security News
Research
A malicious npm package disguised as a WhatsApp client is exploiting authentication flows with a remote kill switch to exfiltrate data and destroy files.