{"id":36590660,"url":"https://github.com/ichenhe/cert-deployer","last_synced_at":"2026-01-12T08:13:37.453Z","repository":{"id":39972911,"uuid":"494323987","full_name":"ichenhe/cert-deployer","owner":"ichenhe","description":"A tool to automatically deploy https certificates to cloud services.","archived":false,"fork":false,"pushed_at":"2025-02-24T08:41:58.000Z","size":308,"stargazers_count":1,"open_issues_count":6,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-09T14:43:44.937Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","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/ichenhe.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":"2022-05-20T04:50:08.000Z","updated_at":"2024-11-03T22:50:01.000Z","dependencies_parsed_at":"2024-04-29T09:35:30.832Z","dependency_job_id":"d4ad4ee6-ba37-43fa-9abf-2e98e8665f3d","html_url":"https://github.com/ichenhe/cert-deployer","commit_stats":{"total_commits":5,"total_committers":1,"mean_commits":5.0,"dds":0.0,"last_synced_commit":"bebba0ddc3545e712af093b943045fcbb081f0a8"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/ichenhe/cert-deployer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ichenhe%2Fcert-deployer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ichenhe%2Fcert-deployer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ichenhe%2Fcert-deployer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ichenhe%2Fcert-deployer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ichenhe","download_url":"https://codeload.github.com/ichenhe/cert-deployer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ichenhe%2Fcert-deployer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28337379,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T06:09:07.588Z","status":"ssl_error","status_checked_at":"2026-01-12T06:05:18.301Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":"2026-01-12T08:13:36.588Z","updated_at":"2026-01-12T08:13:37.448Z","avatar_url":"https://github.com/ichenhe.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Cert Deployer\n\n**A tool to automatically deploy https certificates to cloud services.**\n\n[![Release](https://img.shields.io/github/v/release/ichenhe/cert-deployer?style=flat-square)](https://github.com/ichenhe/cert-deployer/releases)\n[![Go Report Card](https://goreportcard.com/badge/github.com/ichenhe/cert-deployer?style=flat-square)](https://goreportcard.com/report/github.com/ichenhe/cert-deployer)\n[![Build State](https://img.shields.io/github/actions/workflow/status/ichenhe/cert-deployer/check.yml?style=flat-square)](https://github.com/ichenhe/cert-deployer/actions)\n\nThis is not an ACME client and is recommended to be used with an ACME client to fully automate the cert workflow. Of course, you can also use this tool alone.\n\n## Supported Cloud Provider\n\n- Alibaba Cloud (`AlibabaCloud`)\n  - CDN (`cdn`)\n- AWS (`AWS`)\n  - CloudFront (`cloud_front`)\n  \n- Tencent Cloud (`TencentCloud`)\n  - CDN (`cdn`)\n\n## Quick start\n\n```bash\n# deploy cert to all matched cdn in TencentCloud\n./cert-deployer --provider TencentCloud \\\n--secret-id \"xxxxxxxxx\" \\\n--secret-key \"yyyyyyyyyy\" \\\n--cert \"/path/to/fullchain.pem\" \\\n--key \"/path/to/privkey.pem\" \\\n--type cdn[README.md](README.md)\n```\n\nThe value of `provider` / `type` must be in the support list.\n\n## Usage\n\nThe global flag `--profile` can be used to specify the configuration file.\n\nFor more usage, e.g. pre-defined deploy, trigger, logging... See [WiKi](https://github.com/ichenhe/cert-deployer/wiki).\n\n## Integration with ACME client\n\ncert-deployer can work with ACME client in two ways:\n\n- [RECOMMAND] Use trigger feature to monitor the cert file generated by ACME client.\n- Use hook feature of ACME client to execute cert-deployer.\n\nHere's an example to work with [acme.sh](https://github.com/acmesh-official/acme.sh) via hook.\n\n```bash\nacme.sh --issue \\\n  -d www.example.com \\\n  -w /www/wwwroot/www.example.com/ \\\n  --post-hook \"cert-deployer deploy --type cdn --cert /root/.acme.sh/www.example.com/fullchain.cer --key /root/.acme.sh/www.example.com/www.example.com.key --provider TencentCloud --secret-id xxxx --secret-key yyyyy\" --force\n```\n\nAfter that, hook command will be saved and apply to `--renew` or `--cron` commands as well. Try `acme.sh --renew -d www.example.com --force` to test.\n\n## Migrating from v0.1\n\nLegacy usage is no longer supported, which means you shouldn't specify the cloud provider in profile while provide the target asset or cert file via cli.\n\nInstead, you can either:\n\n- Execute fully custom deployment as described in *quck start*.\n- Define everything in profile as described in *pre-defined deployment*.\n\nIn addition this, you are encouraged to use *trigger* to integrate with ACME client instead of hook, which is more easier and clearer.\n\n## Add plugins\n\nIf you want to make some contributions to add more back-end support, in general, the steps are as follows：\n\n1. Add a new package in `plugins/`.\n2. Add necessary data structures. You may probably want to define a const called `Provider` as the name of the back-end and id.\n3. Implement `domain.Deployer`, and register it by calling `registry.MustRegister()` in `init()` function.\n4. Import your new plugin in `plugins/import.go`.\n5. Update the support list in this file.\n\nCongratulations 🥳\n\n\u003e In case you need a new asset type, please add it to `asset/asset_type.go` if it is a generic type (e.g. cdn), otherwise you may want to define them in your package.\n\n## Disclaimer for Mainland China\n\nThis is a statement for Chinese mainland only.\n\n我们不会故意，但亦不能保证整个仓库中不包含（潜在的）敏感内容，因此不鼓励任何人将本仓库镜像到大陆平台。若您执意这么做，后果自行承担。\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fichenhe%2Fcert-deployer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fichenhe%2Fcert-deployer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fichenhe%2Fcert-deployer/lists"}