code: function openssl_req(options, ec) {
    if ('string' === typeof options)
      options = {self_sign: true, subjects: {CN: options}}
  
    return Promise.all([
        tmpfile(options.config),
        tmpfile(ec_pem.encodePrivateKey(ec)) ])
      .then(tmpList => {
        const [tmp_config, tmp_key] = tmpList
        let args = ['req', '-new', '-sha256', '-key', tmp_key.path]
  
  
        if (options.self_sign) {
          args.push('-x509', '-days', options.days || 1)
        }
  
        if (tmp_config) {
          args.push('-config', tmp_config.path, '-extensions', 'v3_req')
        }
  
        args = args.filter(e => e)
        return finallyCleanupTmpList(openssl_stdout(args, 5), tmpList) })}
docs: openssl req -new -key «ec private key» [-x509] -subj "/CN=example.com"