{"id":23160564,"url":"https://github.com/ventx/ler53s3","last_synced_at":"2026-04-26T12:32:11.362Z","repository":{"id":94189039,"uuid":"120896642","full_name":"ventx/ler53s3","owner":"ventx","description":"ler53s3 is a nodejs tool to request let's encrypt certificates and store the issued certificates in s3","archived":false,"fork":false,"pushed_at":"2018-05-14T09:32:48.000Z","size":376,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-09-16T06:17:42.676Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://ventx.github.io/ler53s3/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ventx.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-02-09T11:16:42.000Z","updated_at":"2018-05-14T09:32:49.000Z","dependencies_parsed_at":"2023-03-06T13:00:22.728Z","dependency_job_id":null,"html_url":"https://github.com/ventx/ler53s3","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ventx/ler53s3","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ventx%2Fler53s3","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ventx%2Fler53s3/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ventx%2Fler53s3/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ventx%2Fler53s3/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ventx","download_url":"https://codeload.github.com/ventx/ler53s3/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ventx%2Fler53s3/sbom","scorecard":{"id":918622,"data":{"date":"2025-08-11","repo":{"name":"github.com/ventx/ler53s3","commit":"34ce1a335d6eb157bcf286c54306d136a8d27c7f"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.6,"checks":[{"name":"Code-Review","score":0,"reason":"Found 0/7 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":0,"reason":"license file not detected","details":["Warn: project does not have a license file"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}}]},"last_synced_at":"2025-08-24T23:12:19.968Z","repository_id":94189039,"created_at":"2025-08-24T23:12:19.968Z","updated_at":"2025-08-24T23:12:19.968Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32297893,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T09:34:17.070Z","status":"ssl_error","status_checked_at":"2026-04-26T09:34:00.993Z","response_time":129,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-17T23:11:20.053Z","updated_at":"2026-04-26T12:32:11.339Z","avatar_url":"https://github.com/ventx.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ler53s3\n\nler53s3 is a nodejs tool to request let's encrypt certificates and store the issued certificates in s3\n\n## CLI usage\n```bash\nnpm install -g @ventx/ler53s3\n\nler53s3 -d \"host.myreallycoolanduniquedomainnamethatguaranteeddoesexistspromised.com\" \\\n        -e \"no@name.org\" \\\n        -z \"myreallycoolanduniquedomainnamethatguaranteeddoesexistspromised.com\" \\\n        -b \"mybucket\"\n        -k \"cert/host.myreallycoolanduniquedomainnamethatguaranteeddoesexistspromised.com/\"\n```\nParameters\n- **d** The Domain to issue an certificate for\n- **e** The Email to use for the certificate\n- **z** The route53 zone name which manages the domain. **You need write access here**\n- **b** A bucket to store the certificate to\n- **k** A s3 key prefix to use \n\n## Lambda\n```bash\ngit clone https://github.com/ventx/ler53s3.git\ncd ler53s3\nnpm install\nzip -r lambda.zip 'lambda.js' 'cert.js' './node_modules'\n```\nYou have two options for using this as a lambda function. \n### Lambda proxy function\nYou may use the handler \"lambda.proxy_handle\". This function you can use with an API Gateway as a proxy\nmethod. It will only accept POST requests and you need to provide the following parameters in the request body (The options just have other names than in the cli, but are the same. So see the description from above):  \n\n- domain\n- email\n- zoneName\n- bucketName\n- keyPrefix\n\nAll Options are required. You will get a 200 response, if everything worked and the certificate is stored\nin s3. For security reasons you won't get the certificate in the output of the function call. So the certificate won't leave the AWS infrastructure.\n### Regular lambda function\nYou may use the handler \"lambda.handle\". Parameters are the same as in the proxy handler function.\n\n## Programmatic usage\nYou may also use the library in your modules/projects/scripts/whatever\n\n```javascript\nconst ler53s3 = require('ler53s3');\n\nler53s3(domain, email, zoneName, bucketName, keyPrefix)\n    .then(() =\u003e console.log('Sucess!!'))\n    .catch((err) =\u003e console.log('Error :( ', err));\n\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fventx%2Fler53s3","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fventx%2Fler53s3","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fventx%2Fler53s3/lists"}