libre_ops.ca_keys

Zertifizierungsstellen-Schlüssel

Dies ist eine Ansible-Rolle zur Generierung privater CA-Schlüssel und signierter Zertifikate. Diese können verwendet werden, um Server- und Client-Anwendungen abzusichern, bei denen sowohl die Verschlüsselung von Daten im Transit als auch die Authentifizierung zwischen Knoten erforderlich ist.

Richtig konfiguriert können von einer privaten CA signierte Schlüssel MITM-Angriffe verhindern und für die bidirektionale Authentifizierung verwendet werden. Ein Beispiel könnte die Sicherung der Verbindungen zwischen Knoten in einem Kafka- oder Elastic Stack-Cluster sein.

Die Rolle folgt diesen groben Schritten:

  • Erstellen eines CA (Zertifizierungsstelle) Schlüsselpaares
  • Erstellen von Schlüsseln und CSRs (Zertifikat-Anfrage) für bestimmte Knoten
  • Signieren der CSRs mit der CA, um signierte Zertifikate (CRTs) zu erstellen
  • Optional: Verpacken der notwendigen Schlüssel in Java Keystore/Truststore-Binärdateien

Standardeinstellungen

Sehen Sie sich alle Standardeinstellungen hier an und überschreiben Sie sie nach Bedarf.

Verwendung

Empfohlene Verwendung: Führen Sie die Rolle in einem lokalen Playbook aus (siehe unten) und bewegen Sie die generierten Dateien an einen sicheren Ort. Lassen Sie die Schlüssel nicht einfach herumliegen. Dieser Code wird wie er ist bereitgestellt, wie Sie ihn verwenden und die resultierenden Schlüssel speichern, liegt in Ihrer Verantwortung!

Diese Rolle kann verwendet werden, um neue Schlüssel und CRTs aus einem vorhandenen CA-Zertifikat zu erstellen, wenn eines vorhanden ist.

Nachdem sie erstellt wurden, verschieben Sie die erforderlichen Dateien in das Projekt, in dem Sie sie verwenden. Sie können Ansible Vault verwenden, um die Dateien (einschließlich der jks-Binärdateien) zu verschlüsseln, und Ansible-Module wie copy werden diese während des Uploads entschlüsseln, wenn Ihnen das Vault-Passwort zur Verfügung steht.

Überprüfung der Schlüssel

Sie können (und sollten) die Schlüssel mit verschiedenen openssl-Befehlen überprüfen. Hier sind einige Beispiele:

openssl x509 -in generated_keys/ca.crt -text -noout
openssl rsa -in generated_keys/<key-name>.key -check
openssl x509 -in generated_keys/<key-name>.crt -text -noout

Python-Einschränkung

Aufgrund eines Ansible-Bugs (Fix jetzt in den devel-Branch integriert) müssen Sie Python 2.7 verwenden, wenn Sie die Aufgaben zum Erstellen von Java Keystores ausführen. Siehe dieses Problem für Details.

Beispiel-Playbook

- name: Schlüssel generieren
  hosts: 127.0.0.1
  connection: local
  
  vars:
    ansible_python_interpreter: '/usr/bin/python2.7'

  roles:
    - role: libre_ops.ca_keys
      vars:
        cert_organisation: Beispiel GmbH
        cert_unit: Abteilung Schlüssel
        cert_country: DE
        cert_state: Berlin
        cert_location: Berlin
        
        create_keys:
          - filename: server
            subject:
              - "/CN=app.client.org"
              - "/O={{ cert_organisation }}"
              - "/OU={{ cert_unit }}"
              - "/C={{ cert_country }}"
              - "/ST={{ cert_state }}"
              - "/L={{ cert_location }}"
              
          - filename: client
            subject:
              - "/CN=app.server.org"
              - "/O={{ cert_organisation }}"
              - "/OU={{ cert_unit }}"
              - "/C={{ cert_country }}"
              - "/ST={{ cert_state }}"
              - "/L={{ cert_location }}"    
Über das Projekt

Generate private CA keys and signed certificates

Installieren
ansible-galaxy install libre_ops.ca_keys
GitHub Repository
Lizenz
gpl-3.0
Downloads
142
Besitzer
Ansible roles for syadmin proles.