{"id":22394108,"url":"https://github.com/flant/cert-manager-webhook-nicru","last_synced_at":"2026-02-24T20:04:42.945Z","repository":{"id":145579644,"uuid":"587657592","full_name":"flant/cert-manager-webhook-nicru","owner":"flant","description":null,"archived":false,"fork":false,"pushed_at":"2024-08-20T08:27:06.000Z","size":168,"stargazers_count":3,"open_issues_count":1,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-07T00:41:30.882Z","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":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/flant.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":"2023-01-11T09:19:52.000Z","updated_at":"2025-01-11T13:44:00.000Z","dependencies_parsed_at":"2024-06-21T03:59:11.609Z","dependency_job_id":"b1765d8b-6c92-4651-b83e-adcb8ef07306","html_url":"https://github.com/flant/cert-manager-webhook-nicru","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/flant/cert-manager-webhook-nicru","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flant%2Fcert-manager-webhook-nicru","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flant%2Fcert-manager-webhook-nicru/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flant%2Fcert-manager-webhook-nicru/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flant%2Fcert-manager-webhook-nicru/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/flant","download_url":"https://codeload.github.com/flant/cert-manager-webhook-nicru/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flant%2Fcert-manager-webhook-nicru/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268024585,"owners_count":24183149,"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-31T02:00:08.723Z","response_time":66,"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-12-05T05:08:59.846Z","updated_at":"2026-02-24T20:04:42.940Z","avatar_url":"https://github.com/flant.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Cert-manager webhook для API nic.ru\n\nЭтот solver позволяет использовать cert-manager с API nic.ru. Документация по API доступна [здесь](https://www.nic.ru/help/upload/file/API_DNS-hosting.pdf).\n\n# Использование\n\n### Подготовка\n\nСначала необходимо [зарегистрировать](http://nic.ru/api/oauth/register_app.html) приложение в личном кабинете nic.ru.\nПосле регистрации вы получите `app_id` и `app_secret` протокола OAuth 2.0, которые нужны для получения токенов. Эти два токена нужно использовать для получения ACCESS_TOKEN \u0026\u0026 REFRESH_TOKEN, помимо них нужен административный ( или технический пароль) и номер договора.\n\nДля получения ACCESS_TOKEN \u0026\u0026 REFRESH_TOKEN выполните команду:\n\n```shell\ncurl --location --request POST 'https://api.nic.ru/oauth/token' \\\n--header 'Content-Type: application/x-www-form-urlencoded' \\\n--data-urlencode 'grant_type=password' \\\n--data-urlencode 'password=\u003cадминистративный_или_технический_пароль\u003e' \\\n--data-urlencode 'client_id=\u003cВАШ_APP_ID\u003e' \\\n--data-urlencode 'client_secret=\u003cВАШ_APP_SECRET\u003e' \\\n--data-urlencode 'username=\u003cномер_договора_например_53XXX/NIC-D\u003e' \\\n--data-urlencode 'scope=.*' \\\n--data-urlencode 'offline=999999'\n```\n\nВ ответ придёт:\n\n```json\n{\"refresh_token\":\"\u003cREFRESH_TOKEN\u003e\",\"expires_in\":14400,\"access_token\":\"\u003cACCESS_TOKEN\u003e\",\"token_type\":\"Bearer\"}\n```\n\n------------------------------\n\n### Установка cert-manager (*необязательный шаг*)\n\n**ВНИМАНИЕ!** Не удаляйте cert-manager, если вы уже им пользуетесь.\n\nДля установки cert-manager в кластер Kubernetes используйте команду из [официальной документации](https://cert-manager.io/docs/installation/):\n\n```shell\nkubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/VERSION/cert-manager.yaml\n```\n\n### Установка webhook\n\n**ВАЖНО**: Ресурсы Kubernetes для установки webhook должны быть развёрнуты в том же namespace, что и cert-manager.\n\n```shell\ngit clone https://github.com/flant/cert-manager-webhook-nicru.git\n```\n\nУкажите ваш namespace с cert-manager:\n\n```yaml\ncertManager:\n  namespace: ваш-namespace-cert-manager\n  serviceAccountName: cert-manager\n```\n\n### Создание секрета с токенами\n\nСоздайте файл `nicru-tokens.yaml` со следующим содержимым:\n\n```yaml\napiVersion: v1\nkind: Secret\nmetadata:\n  name: nicru-tokens\n  namespace: ваш-namespace-cert-manager\ndata:\n  REFRESH_TOKEN: \u003cREFRESH_TOKEN_В_BASE64\u003e\n  ACCESS_TOKEN: \u003cACCESS_TOKEN_В_BASE64\u003e\n  APP_ID: \u003cAPP_ID\u003e\n  APP_SECRET: \u003cAPP_SECRET\u003e\ntype: Opaque\n```\n\nЗатем выполните команды для установки webhook:\n\n```shell\ncd cert-manager-webhook-nicru\nhelm install -n my-namespace-cert-manager nicru-webhook ./helm\n```\n\n### Выпуск сертификата\n\nСоздайте файл `certificate.yaml` со следующим содержимым:\n\n```yaml\napiVersion: cert-manager.io/v1\nkind: Certificate\nmetadata:\n  name: changeme\n  namespace: changeme\nspec:\n  secretName: changeme\n  issuerRef:\n    name: nicru-dns\n    kind: ClusterIssuer\n  dnsNames:\n    - \"*.my-domain-test.ru\"\n```\n\n### Диагностика проблем\n\nТокены ACCESS_TOKEN \u0026\u0026 REFRESH_TOKEN доступны только 4 часа, соответсвенно их ообновляет наш деплоймент с вебхуком. Об этом, а также о том, что токены вообще валидны - пишется в логах.\n\nВ целом все действия логгируются достаточно подробно - используйте это для дебага ошибок.\n\nВажно также смотреть ордеры и челенджи дескрайбом.\n\n```\nget orders\nget challenges\ndescribe challenges ...\n```\n\nВ них как правило вообще все ошибки и действия.\n\nАпи у nic.ru меняется регулярно, зачем - спросите у них, соотвественно поломка ишьюра лишь дело времени, обратите на это внимание. \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflant%2Fcert-manager-webhook-nicru","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fflant%2Fcert-manager-webhook-nicru","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflant%2Fcert-manager-webhook-nicru/lists"}