{%- from "salt/map.jinja" import minion with context %} x509_signing_policies: {%- for ca_name,ca in minion.ca.items() %} {%- for signing_policy_name, signing_policy in ca.signing_policy.iteritems() %} {{ ca_name }}_{{ signing_policy_name }}: - minions: '{{ signing_policy.minions }}' - signing_private_key: /etc/pki/ca/{{ ca_name }}/ca.key - signing_cert: /etc/pki/ca/{{ ca_name }}/ca.crt {%- if ca.country is defined %} - C: {{ ca.country }} {%- endif %} {%- if ca.state is defined %} - ST: {{ ca.state }} {%- endif %} {%- if ca.locality is defined %} - L: {{ ca.locality }} {%- endif %} {%- if ca.organization is defined %} - O: {{ ca.organization }} {%- endif %} {%- if ca.organization_unit is defined %} - OU: {{ ca.organization_unit }} {%- endif %} {%- if signing_policy.type == 'v3_edge_cert_client' %} - basicConstraints: "CA:FALSE" - keyUsage: "critical digitalSignature,nonRepudiation,keyEncipherment" - extendedKeyUsage: "critical clientAuth" {%- elif signing_policy.type == 'v3_edge_cert_server' %} - basicConstraints: "CA:FALSE" - keyUsage: "critical digitalSignature,nonRepudiation,keyEncipherment" - extendedKeyUsage: "critical,serverAuth" {%- elif signing_policy.type == 'v3_intermediate_ca' %} - basicConstraints: "CA:TRUE" - keyUsage: "critical cRLSign,keyCertSign" {%- elif signing_policy.type == 'v3_edge_ca' %} - basicConstraints: "CA:TRUE,pathlen:0" - keyUsage: "critical cRLSign,keyCertSign" {%- endif %} - subjectKeyIdentifier: hash - authorityKeyIdentifier: keyid,issuer:always - days_valid: {{ ca.days_valid.certificate }} - copypath: /etc/pki/ca/{{ ca_name }}/certs/ {%- endfor %} {%- endfor %}