
msvechla/vaultbot轻量级Hashicorp Vault PKI客户端,专为基础设施自动化构建。可自动请求和续期通过PKI后端在Vault中生成的证书。
默认情况下,Vaultbot仅续期在指定时间段内即将到期的证书。因此,Vaultbot非常适合以固定间隔运行(如crontab)。该工具的设计也受到了知名的certbot(用于letsencrypt)的启发。
${MAJOR}${MAJOR}.${MINOR}${MAJOR}.${MINOR}.${PATCH}请求和续期证书非常简单。以下是自解释示例:
sh./vaultbot --vault_addr=http://localhost:1234 --vault_token=myroot --pki_mount=pki --pki_role_name=example-dot-com --pki_common_name=mydomain.com --pki_ttl=24h --pki_renew_time=4h --pki_alt_names=otherdomain.com,testing.com --pki_ip_sans=127.0.0.1
也可通过运行./vaultbot --help查看更多使用信息。
除了Docker镜像外,还提供所有主要平台的自动化构建。可在标签部分找到所有版本。点击"下载"并选择"制品"即可获取所需版本。也可从master分支自行构建最新版本。
可通过指定命令行选项或对应的环境变量配置Vaultbot。
用法: vaultbot [选项] 应用选项: -v, --verbose 显示详细调试信息 Vault选项: --vault_addr= Vault服务器地址(URL和端口形式)(默认: [***] [$VAULT_ADDR] --vault_cacert= 用于验证Vault服务器SSL证书的PEM编码CA证书文件路径。 [$VAULT_CACERT] --vault_capath= 包含用于验证Vault服务器SSL证书的PEM编码CA证书文件的目录路径。若指定了VAULT_CACERT,则其优先级更高。 [$VAULT_CAPATH] --vault_client_cert= 用于TLS认证Vault服务器的PEM编码客户端证书路径。 [$VAULT_CLIENT_CERT] --vault_client_key= 与客户端证书匹配的未加密PEM编码私钥路径。 [$VAULT_CLIENT_KEY] --vault_client_timeout= Vault客户端超时时间。 [$VAULT_CLIENT_TIMEOUT] --vault_skip_verify 若设置,不验证Vault提供的证书。除非测试环境,否则不建议设置。 [$VAULT_SKIP_VERIFY] --vault_tls_server_name= 若设置,TLS连接时使用指定名称作为SNI主机。 [$VAULT_TLS_SERVER_NAME] --vault_max_retries= 遇到5xx错误时的最大重试次数。 [$VAULT_MAX_RETRIES] --vault_token= Vault认证令牌。 [$VAULT_TOKEN] --vault_renew_token 若设置,Vaultbot会尝试自动续期当前令牌 [$RENEW_TOKEN] PKI选项: --pki_mount= 指定PKI后端挂载路径 (默认: pki) [$PKI_MOUNT] --pki_role_name= 指定用于创建证书的角色名称 [$PKI_ROLE_NAME] --pki_common_name= 指定请求证书的通用名称(CN) [$PKI_ROLE_NAME] --pki_alt_names= 指定请求的DNS主题备用名称,以逗号分隔列表形式 [$PKI_ALT_NAMES] --pki_ip_sans= 指定请求的IP主题备用名称,以逗号分隔列表形式 [$PKI_IP_SANS] --pki_ttl= 指定请求的证书有效期 [$PKI_TTL] --pki_exclude_cn_from_sans 若设置,通用名称(CN)将不包含在DNS或Email主题备用名称中(如适用) [$EXCLUDE_CN_FROM_SANS] --pki_renew_percent= 触发续期的证书生命周期百分比(>0.00,<1.00)(默认: 0.75) [$PKI_RENEW_TIME] --pki_renew_time= 证书到期前触发续期的固定时间(如12h、1m)。设置后优先级高于renew_percent。 [$PKI_RENEW_TIME] --pki_force_renew 若设置,将无条件续期证书,不检查过期时间 [$PKI_FORCE_RENEW] --pki_cert_path= 请求/更新的证书路径 (默认: cert.pem) [$PKI_CERT_PATH] --pki_cachain_path= 请求/更新的CA链路径 (默认: chain.pem) [$PKI_CACHAIN_PATH] --pki_privkey_path= 请求/更新的私钥路径 (默认: key.pem) [$PKI_PRIVKEY_PATH] -y, --auto_confirm 若设置,自动确认所有用户提示 [$AUTO_CONFIRM] 帮助选项: -h, --help 显示此帮助信息
当运行Vaultbot且pki_cert_path指向现有证书时,仅当满足特定条件时才会续期并覆盖证书。
可通过指定pki_renew_percent(如0.75),在证书生命周期达到75%时触发续期。或通过pki_renew_time设置证书到期前的固定时间,当剩余时间小于该值时触发续期。
若需每次运行都续期证书,可指定pki_force_renew标志。
默认情况下,Vaultbot在覆盖pki_(cert/cachain/privkey/_path)位置的现有证书前,会执行一系列健全性检查。
若新请求的证书数据(通用名称、DNS备用名称、IP备用名称)与现有证书中的数据不一致,将提示用户确认。
在自动化环境中,可通过指定-y或--auto_confirm标志跳过这些检查。
请阅读CONTRIBUTING.md了解我们的行为准则和提交拉取请求的流程。
我们使用SemVer进行版本控制。可用版本请参见本仓库的标签或CHANGELOG.md。
另见参与本项目的贡献者列表。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务