Skip to content

Policy Rules Reference

Each policy contains one or more rules. Each rule has the following structure:

{
  "action": "<rule_action>",
  "fail": "hard",
  "values": { }
}
Field Description
action The rule type (see tables below)
fail "hard" blocks issuance; "soft" generates a warning only
values Rule-specific parameters; omitted for rules that take no parameters

Subject / Value Enforcement

Action values keys Description
enforce_values organization, organizational_unit, country, state, locality (any subset) Enforces exact values for certificate subject fields
enforce_key_usage key_usage (array), extended_key_usage (array) Enforces specific key usage extensions

Domain Restrictions

Action Description
disable_wildcard Blocks wildcard certificates (*.example.com)
block_subdomains Blocks subdomain certificates
block_other_domains Alerts or blocks domains outside the policy's matching scope
enforce_domain_suffix Requires all domains to end with a specified suffix (e.g. .corp.example.com)

Key and Algorithm Policies

Action values keys Description
enforce_minimum_key_size minimum_bits ("2048" to "8192") Minimum RSA key size; for EC, checks curve size
enforce_algorithm algorithm ("rsa" or "ecdsa") Restricts to a specific algorithm family
enforce_digest digest ("sha256", "sha384", "sha512") Requires a specific digest algorithm

Validity Policies

Action values keys Description
enforce_max_validity max_days Maximum certificate validity in days
enforce_min_validity min_days Minimum certificate validity in days

SAN Restrictions

Action values keys Description
block_ip_in_san (none) Blocks IP addresses in Subject Alternative Names
enforce_max_san_count max_count Limits the total number of SANs
require_san (none) Requires at least one SAN entry
block_email_in_san (none) Blocks email addresses (RFC 822 names) in SANs

Naming Policies

Action values keys Description
enforce_common_name_pattern pattern (regex) Requires the common name to match the given pattern

Security and Compliance

Action values keys Description
require_certificate_transparency (none) Requires Certificate Transparency logging
enforce_renewal_window days_before_expiry Restricts renewal to a window before expiry
block_ca_flag (none) Prevents CA:TRUE in Basic Constraints, blocking CA certificate issuance

Purpose Restrictions

Action values keys Description
enforce_certificate_purpose purpose ("server", "client", "both") Restricts Extended Key Usage to the specified purpose

Integration

Action values keys Description
enforce_integration_ca integration_ca (CA identifier string) Requires issuance via a specific CA integration

Rate Limiting

Action values keys Description
rate_limit_per_domain max_certificates, period_days Limits the number of certificates issued per domain within a rolling time window

Example Policy with Multiple Rules

{
  "name": "Production Security Baseline",
  "matching_criteria": {
    "action": "certificate.generate",
    "domains": ["*.prod.example.com"]
  },
  "rules": [
    {
      "action": "enforce_algorithm",
      "fail": "hard",
      "values": { "algorithm": "rsa" }
    },
    {
      "action": "enforce_minimum_key_size",
      "fail": "hard",
      "values": { "minimum_bits": "3072" }
    },
    {
      "action": "enforce_digest",
      "fail": "hard",
      "values": { "digest": "sha256" }
    },
    {
      "action": "enforce_max_validity",
      "fail": "hard",
      "values": { "max_days": "365" }
    },
    {
      "action": "block_ca_flag",
      "fail": "hard"
    },
    {
      "action": "require_san",
      "fail": "soft"
    }
  ],
  "is_enabled": true
}