{"id":13726776,"url":"https://github.com/http-rs/tide-acme","last_synced_at":"2025-07-29T05:34:08.485Z","repository":{"id":57669770,"uuid":"349906048","full_name":"http-rs/tide-acme","owner":"http-rs","description":"Automatic HTTPS certificates for Tide, via Let's Encrypt and ACME tls-alpn-01 challenges","archived":false,"fork":false,"pushed_at":"2022-06-20T08:33:55.000Z","size":12,"stargazers_count":157,"open_issues_count":1,"forks_count":8,"subscribers_count":11,"default_branch":"main","last_synced_at":"2025-07-05T20:12:01.655Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","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/http-rs.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}},"created_at":"2021-03-21T05:12:46.000Z","updated_at":"2024-11-23T10:37:43.000Z","dependencies_parsed_at":"2022-09-26T20:40:36.685Z","dependency_job_id":null,"html_url":"https://github.com/http-rs/tide-acme","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/http-rs/tide-acme","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/http-rs%2Ftide-acme","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/http-rs%2Ftide-acme/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/http-rs%2Ftide-acme/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/http-rs%2Ftide-acme/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/http-rs","download_url":"https://codeload.github.com/http-rs/tide-acme/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/http-rs%2Ftide-acme/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267633670,"owners_count":24118777,"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","status":"online","status_checked_at":"2025-07-29T02:00:12.549Z","response_time":2574,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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-08-03T01:03:21.455Z","updated_at":"2025-07-29T05:34:08.453Z","avatar_url":"https://github.com/http-rs.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"`tide-acme` helps you serve HTTPS with Tide using automatic certificates, via\nLet's Encrypt and ACME tls-alpn-01 challenges.\n\n[Documentation](https://docs.rs/tide-acme)\n\nTo use `tide-acme`, set up HTTPS with Tide normally using `tide_rustls`, but\ninstead of specifying a certificate and key, call the `acme` method to\nconfigure automatic certificates in the TLS listener:\n\n```rust\nuse tide_acme::{AcmeConfig, TideRustlsExt};\nuse tide_acme::rustls_acme::caches::DirCache;\n\nlet mut app = tide::new();\napp.at(\"/\").get(|_| async { Ok(\"Hello TLS\") });\napp.listen(\n    tide_rustls::TlsListener::build().addrs(\"0.0.0.0:443\").acme(\n        AcmeConfig::new(vec![\"domain.example\"])\n            .contact_push(\"mailto:admin@example.org\")\n            .cache(DirCache::new(\"/srv/example/tide-acme-cache-dir\")),\n    ),\n)\n.await?;\n```\n\nThis will configure the TLS stack to obtain a certificate for the domain\n`domain.example`, which must be a domain for which your Tide server handles\nHTTPS traffic.\n\nOn initial startup, your server will register a certificate via Let's Encrypt.\nLet's Encrypt will verify your server's control of the domain via an [ACME\ntls-alpn-01 challenge](https://tools.ietf.org/html/rfc8737), which the TLS\nlistener configured by `tide-acme` will respond to.\n\nYou must supply a cache via [`AcmeConfig::cache`] or one of the other cache\nmethods. This cache will keep the ACME account key and registered certificates\nbetween runs, needed to avoid hitting rate limits. You can use\n[`rustls_acme::caches::DirCache`] for a simple filesystem cache, or implement\nyour own caching using the `rustls_acme` cache traits.\n\nBy default, `tide-acme` will use the Let's Encrypt staging environment, which\nis suitable for testing purposes; it produces certificates signed by a staging\nroot so that you can verify your stack is working, but those certificates will\nnot be trusted in browsers or other HTTPS clients. The staging environment has\nmore generous rate limits for use while testing.\n\nWhen you're ready to deploy to production, you can call\n`.directory_lets_encrypt(true)` to switch to the production Let's Encrypt\nenvironment, which produces certificates trusted in browsers and other HTTPS\nclients. The production environment has [stricter rate\nlimits](https://letsencrypt.org/docs/rate-limits/).\n\n`tide-acme` builds upon [`tide-rustls`](https://crates.io/crates/tide-rustls)\nand [`rustls-acme`](https://crates.io/crates/rustls-acme).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhttp-rs%2Ftide-acme","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhttp-rs%2Ftide-acme","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhttp-rs%2Ftide-acme/lists"}