# acme-client-rs ACME Client in Rust Acme client help: ```shell $ acme-client --help acme-client 1.0.1 Hatter Jiang Acme auto challenge client, acme-client can issue certificates from Let's encrypt USAGE: acme-client [FLAGS] [OPTIONS] FLAGS: --check Check cert config -h, --help Prints help information --hide-logo Hide logo -K, --skip-verify-certificate Skip verify certificate -k, --skip-verify-ip Skip verify public ip -v, --verbose Verbose -V, --version Print version OPTIONS: -a, --algo Pki algo [default: ec384] --cert-dir Certificate dir -c, --config Cert config --dir Account key dir [default: acme_dir] -d, --domain ... Domains --email Contract email -m, --mode Mode [default: prod] -p, --port Http port [default: 80] --timeout Timeout (ms) [default: 5000] -t, --type Type http or dns [default: http] ``` 签发一张证书示例 * 先将域名指向对应的服务器,保证服务器上的 `80` 端口可被互联网访问 * `acme-client --email your-email@example.com --domain your-domain.example.com` 使用参数 `--config` 时的配置文件示例: ```json { "port": 18342, "triggerAfterUpdate": ["/usr/local/nginx/nginx", "-s", "reload"], "notifyToken": "dingtalk:access_token?sec_token", "certItems": [{ "path": "dir_cryptofan_org", "dnsNames": ["cryptofan.org", "www.cryptofan.org"] }] } ``` Nginx.conf 配置: ```nginx.conf location /.well-known/acme-challenge/ { proxy_http_version 1.1; proxy_pass http://127.0.0.1:18342/.well-known/acme-challenge/; } ```
Cross build uses: https://github.com/messense/rust-musl-cross