Bez popisu

ca.sls 3.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. {% import 'globals.jinja' as globals %}
  2. include:
  3. - constant_state
  4. - generic_packages.m2crypto
  5. /data/admin/pki/cacerts:
  6. file.directory:
  7. - mode: 755
  8. - require:
  9. - file: /data/admin/pki
  10. # Root CA
  11. /data/admin/pki/root:
  12. file.directory:
  13. - mode: 700
  14. - require:
  15. - file: /data/admin/pki
  16. /data/admin/pki/root/issued_certs:
  17. file.directory:
  18. - mode: 700
  19. - require:
  20. - file: /data/admin/pki/root
  21. {% if grains['id'] == globals.primary_admin_host %}
  22. /data/admin/pki/root/ca.key:
  23. x509.private_key_managed:
  24. - bits: 4096
  25. - backup: True
  26. - require:
  27. - file: /data/admin/pki/root
  28. /data/admin/pki/root/ca.crt:
  29. x509.certificate_managed:
  30. - signing_private_key: /data/admin/pki/root/ca.key
  31. - basicConstraints: "critical CA:true"
  32. - keyUsage: "critical cRLSign, keyCertSign"
  33. - subjectKeyIdentifier: hash
  34. - authorityKeyIdentifier: keyid,issuer:always
  35. - days_valid: 3650
  36. - days_remaining: 0
  37. - backup: True
  38. {%- for attr, value in pillar['global']['certificate_attributes']['root'].items() %}
  39. - {{ attr }}: {{ value }}
  40. {%- endfor %}
  41. - CN: Root Certificate Authority
  42. - require:
  43. - file: /data/admin/pki/cacerts
  44. - x509: /data/admin/pki/root/ca.key
  45. /data/admin/pki/cacerts/ca_root.crt:
  46. file.managed:
  47. - source: /data/admin/pki/root/ca.crt
  48. - require:
  49. - x509: /data/admin/pki/root/ca.crt
  50. - onchanges_in:
  51. - module: mine_send_cacerts
  52. {% endif %}
  53. # Deployment CA
  54. /data/admin/pki/deployment:
  55. file.directory:
  56. - mode: 700
  57. - require:
  58. - file: /data/admin/pki
  59. /data/admin/pki/deployment/issued_certs:
  60. file.directory:
  61. - mode: 700
  62. - require:
  63. - file: /data/admin/pki/deployment
  64. {% if grains['id'] == globals.primary_admin_host %}
  65. /data/admin/pki/deployment/ca.key:
  66. x509.private_key_managed:
  67. - bits: 4096
  68. - backup: True
  69. - require:
  70. - file: /data/admin/pki/deployment
  71. /data/admin/pki/deployment/ca.crt:
  72. x509.certificate_managed:
  73. - signing_cert: /data/admin/pki/root/ca.crt
  74. - signing_private_key: /data/admin/pki/root/ca.key
  75. - public_key: /data/admin/pki/deployment/ca.key
  76. - basicConstraints: "critical CA:true"
  77. - keyUsage: "critical cRLSign, keyCertSign"
  78. - subjectKeyIdentifier: hash
  79. - authorityKeyIdentifier: keyid,issuer:always
  80. - days_valid: 3650
  81. - days_remaining: 0
  82. - backup: True
  83. {%- for attr, value in pillar['global']['certificate_attributes']['deployment'].items() %}
  84. - {{ attr }}: {{ value }}
  85. {%- endfor %}
  86. - CN: Deployment Certificate Authority
  87. - require:
  88. - file: /data/admin/pki/cacerts
  89. - x509: /data/admin/pki/root/ca.key
  90. - x509: /data/admin/pki/root/ca.crt
  91. - x509: /data/admin/pki/deployment/ca.key
  92. /data/admin/pki/cacerts/ca_deployment.crt:
  93. file.managed:
  94. - source: /data/admin/pki/deployment/ca.crt
  95. - require:
  96. - x509: /data/admin/pki/deployment/ca.crt
  97. - onchanges_in:
  98. - module: mine_send_cacerts
  99. /etc/salt/minion.d/signing_policies.conf:
  100. file.managed:
  101. - source: salt://admin/files/signing_policies.conf
  102. - template: jinja
  103. - watch_in:
  104. - service: salt_minion
  105. {% else %}
  106. /etc/salt/minion.d/signing_policies.conf:
  107. file.absent:
  108. - watch_in:
  109. - service: salt_minion
  110. {% endif %}
  111. mine_send_cacerts:
  112. module.run:
  113. - name: mine.send
  114. - func: x509.get_pem_entries
  115. - kwargs:
  116. glob_path: /data/admin/pki/cacerts/*.crt
  117. - onchanges:
  118. - test: constant_state