ivkcs_cert ресурсы
ivkcs_cert ресурсы виртуалды машиналарда SSL-сертификаттарды автоматты түрде жасауға және басқаруға арналған.
Атауы | Сипаттамасы | Форматы | Міндетті | Мәні өзгерген кезде ресурсты қайта жасау |
|---|---|---|---|---|
| image-based қолданба инстансының UUID | string | ||
| Сертификат шығарылатын доменнің FQDN атауы | string | ||
| Сертификат пен кілт файлдары сақталатын директорияға жол | string | ||
| Сертификат әр жаңартылғаннан кейін орындалатын bash-скриптке жол | string | ||
| Сертификат пен кілт файлдарының иесі | string | ||
| Сертификат пен кілт файлдарының тобы | string | ||
| Сертификатты жасау тайм-ауты. Тайм-аут аяқталғаннан кейін процесс қателікпен аяқталады | string | ||
| Сертификатты жаңарту тайм-ауты. Тайм-аут аяқталғаннан кейін процесс қателікпен аяқталады | string | ||
| Сертификатты жою тайм-ауты. Пайдаланушы өз қолданба инстансын жойған сәттен бастап есептеледі. Тайм-аут аяқталғаннан кейін процесс қателікпен аяқталады | string |
renewal_hook_path аргументінде көрсетілген скрипт сертификат әр жаңартылғаннан кейін орындалады:
- егер бұл аргумент берілсе,
cert_files_ownerаргументінде көрсетілген пайдаланушы атынан; - егер
cert_files_ownerаргументі берілмесе,rootпайдаланушысы атынан.
Nginx серверін қайта жүктеуге арналған скрипт мысалы:
#!/bin/bash# /opt/scripts/reload_nginx.sh# Проверяем конфигурацию nginxif nginx -t; then# Перезагружаем nginxsystemctl reload nginxecho "$(date): Nginx reloaded successfully after certificate renewal"elseecho "$(date): Nginx configuration test failed, not reloading"exit 1fi
Атауы | Сипаттамасы | Форматы |
|---|---|---|
| Сертификаттың бірегей идентификаторы | string |
| Сертификаттың мазмұны (құпия деректер) | string |
| Жеке кілт (құпия деректер) | string |
resource "ivkcs_cert" "website" {uuid = "550e8400-e29b-41d4-a716-446655440000"domain = "www.mysite.com"path_cert = "/etc/nginx/ssl/"renewal_hook_path = "/usr/local/bin/reload_nginx.sh"}# Использование сертификата в конфигурации nginxresource "ivkcs_user_data" "nginx_config" {uuid = ivkcs_cert.website.uuid# ... другие параметры}
2-мысал. Қолжетімділік құқықтарын баптауы бар микросервис:
resource "ivkcs_cert" "api_service" {uuid = var.deployment_uuiddomain = "api.service.internal"path_cert = "/opt/service/certs/"renewal_hook_path = "/opt/service/scripts/restart.sh"cert_files_owner = "service"cert_files_group = "service"timeouts {create = "45m"}}
3-мысал. Бірнеше сертификат:
variable "domains" {type = list(string)default = ["app.example.com", "api.example.com", "admin.example.com"]}resource "ivkcs_cert" "multi_certs" {for_each = toset(var.domains)uuid = var.instance_uuiddomain = each.valuepath_cert = "/etc/ssl/${each.value}/"renewal_hook_path = "/opt/scripts/reload_services.sh"cert_files_owner = "www-data"cert_files_group = "ssl-cert"}