{"id":19123024,"url":"https://github.com/digitalbazaar/le-store-redis","last_synced_at":"2025-05-05T18:29:35.993Z","repository":{"id":66015261,"uuid":"76873015","full_name":"digitalbazaar/le-store-redis","owner":"digitalbazaar","description":"Redis certificate storage back-end for Node Let's Encrypt","archived":false,"fork":false,"pushed_at":"2020-05-02T07:06:01.000Z","size":31,"stargazers_count":4,"open_issues_count":3,"forks_count":0,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-15T14:21:33.002Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/digitalbazaar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2016-12-19T15:22:03.000Z","updated_at":"2023-06-10T06:11:58.000Z","dependencies_parsed_at":"2023-03-02T19:00:19.063Z","dependency_job_id":null,"html_url":"https://github.com/digitalbazaar/le-store-redis","commit_stats":{"total_commits":39,"total_committers":2,"mean_commits":19.5,"dds":"0.41025641025641024","last_synced_commit":"67f8fe5e5548bfe863f5a446f174c6e5c4eb7b6e"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitalbazaar%2Fle-store-redis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitalbazaar%2Fle-store-redis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitalbazaar%2Fle-store-redis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitalbazaar%2Fle-store-redis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/digitalbazaar","download_url":"https://codeload.github.com/digitalbazaar/le-store-redis/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252552742,"owners_count":21766757,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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-11-09T05:23:58.670Z","updated_at":"2025-05-05T18:29:35.975Z","avatar_url":"https://github.com/digitalbazaar.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# le-store-redis\n\nThe Redis storage strategy for node-letsencrypt is capable of storing\nand retrieving keypairs, accounts, certificates, and certificate\nkeypairs from a Redis database. It is most useful in production setups\nwhere multiple load balancers need to provide HTTPS-based proxying for\na number of application front-end systems.\n\n## Security Warning\n\nIt is strongly advised that any production Redis system is deployed\nusing at least password-based authentication in addition to\nprotections like IP-based request limiting and client-side TLS\ncertificates. Unauthorized access to the Redis database enables an\nattacker to spoof any certificate stored in the database.\n\n## Options\n\nThe following options may be set in the `options` parameter:\n\n* {boolean} debug - set to ```true``` if debug output is desired.\n* {integer} certExpiry - delete certificate entries from\n    database after this many seconds, default is 100 days.\n* {object} redisOptions - options passed to the\n  [Redis driver](http://redis.js.org/#api-rediscreateclient)\n\n## Usage Example\n\nTo instantiate a Redis-based Let's Encrypt plugin:\n\n```javascript\n  // configure Redis-based Let's Encrypt storage backend for storing keys and certs\n  var leStore = require('le-store-redis').create({\n    debug: true\n    redisOptions: {\n      db: 2,\n      password: 'M3C1lSO1kLBdPd95tJGu1I0OtTp4c5Rz'\n    }\n  });\n```\n\nThis object may then be used in the Let's Encrypt constructor.\n\n# Database Layout\n\n The Redis database is designed to be scalable to at least thousands of\n domains. Scalability past tens of thousands of domains has not been tested,\n but should work (in theory) based on the indexing layout and available\n memory.\n\n There are three primary types of data that are stored in the database:\n\n * Keypairs are stored in **keypair-HASH** entries.\n * Accounts are stored in **account-HASH** entries.\n * Certificates are stored in **cert-HASH** entries.\n\nThere are five types of indexes in the database:\n\n * **idx-e2a-HASH** entries store email to account mappings.\n * **idx-e2k-HASH** entries store email to keypair mappings.\n * **idx-e2c-HASH** entries store email to certificate mappings.\n * **idx-a2c-HASH** entries store account to certificate mappings.\n * **idx-d2c-HASH** entries store domain to certificate mappings.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdigitalbazaar%2Fle-store-redis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdigitalbazaar%2Fle-store-redis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdigitalbazaar%2Fle-store-redis/lists"}