3个不稳定版本
0.2.0 | 2022年6月20日 |
---|---|
0.2.0-beta.1 |
|
0.1.1 | 2021年4月19日 |
0.1.0 | 2021年3月21日 |
#1160 in HTTP服务器
每月下载量36次
在 3 工具包 中使用
11KB
56 行
tide-acme
帮助您使用自动证书通过Let's Encrypt和ACME tls-alpn-01挑战,使用Tide提供HTTPS服务。
要使用 tide-acme
,请使用 tide_rustls
正常设置Tide的HTTPS,但不要指定证书和密钥,而是调用 acme
方法来配置TLS监听器的自动证书。
use tide_acme::{AcmeConfig, TideRustlsExt};
use tide_acme::rustls_acme::caches::DirCache;
let mut app = tide::new();
app.at("/").get(|_| async { Ok("Hello TLS") });
app.listen(
tide_rustls::TlsListener::build().addrs("0.0.0.0:443").acme(
AcmeConfig::new(vec!["domain.example"])
.contact_push("mailto:[email protected]")
.cache(DirCache::new("/srv/example/tide-acme-cache-dir")),
),
)
.await?;
这将为域名 domain.example
获取证书,该域名必须是您的Tide服务器处理的HTTPS流量域名。
在首次启动时,您的服务器将通过Let's Encrypt注册证书。Let's Encrypt将通过 ACME tls-alpn-01挑战 验证您的服务器对域的控制权,该挑战将由 tide-acme
配置的TLS监听器响应。
您必须通过 AcmeConfig::cache
或其他缓存方法提供一个缓存。此缓存将在运行之间保持ACME账户密钥和已注册证书,以避免达到速率限制。您可以使用 rustls_acme::caches::DirCache
用于简单的文件系统缓存,或使用 rustls_acme
缓存特质实现自己的缓存。
默认情况下,tide-acme
将使用Let's Encrypt的测试环境,适用于测试目的;它产生由测试根签名的证书,这样您可以验证您的堆栈是否正常工作,但那些证书在浏览器或其他HTTPS客户端中不被信任。测试环境在测试期间具有更慷慨的速率限制。
当您准备好部署到生产环境时,可以通过调用 .directory_lets_encrypt(true)
切换到生产环境下的 Let's Encrypt 环境,该环境生成的证书在浏览器和其他 HTTPS 客户端中被信任。生产环境具有更严格的 速率限制。
tide-acme
基于 tide-rustls
和 rustls-acme
构建。
依赖项
~22–34MB
~642K SLoC