trombik.cfssl

trombik.cfssl

Rola ansible dla cfssl. Serwer API (cfssl serve) jest wspierany.

Dla wszystkich użytkowników

Ponieważ niewiele dystrybucji wspiera serwer API w swoich pakietach, zmienne roli cfssl_db_* mogą się zmieniać.

Aby uruchomić cfssl jako serwer, pakiet Twojej dystrybucji musi zawierać skrypt uruchamiający oraz inne modyfikacje pakietu. Jak wiem, pakiet z Ubuntu tego nie robi. Dlatego wsparcie dla serwera API nie zostało zaimplementowane w wariantach Debiana.

Wymagania

Brak

Zmienne roli

Zmienna Opis Domyślna wartość
cfssl_user nazwa użytkownika cfssl {{ __cfssl_user }}
cfssl_group nazwa grupy cfssl {{ __cfssl_group }}
cfssl_package nazwa pakietu cfssl {{ __cfssl_package }}
cfssl_extra_packages lista dodatkowych pakietów do zainstalowania []
cfssl_ca_root_dir ścieżka do katalogu głównego CA {{ __cfssl_ca_root_dir }}
cfssl_ca_secret_key_file ścieżka do pliku z kluczem tajnym CA {{ cfssl_ca_root_dir }}/ca-key.pem
cfssl_ca_public_key_file ścieżka do pliku z kluczem publicznym CA {{ cfssl_ca_root_dir }}/ca.pem
cfssl_ca_csr_file ścieżka do pliku CSR w formacie JSON głównego CA {{ cfssl_ca_root_dir }}/ca.csr
cfssl_ca_csr_config zawartość pliku konfiguracyjnego CSR CA {}
cfssl_ca_config_file ścieżka do pliku konfiguracyjnego CA w formacie JSON {{ cfssl_ca_root_dir }}/ca-config.json
cfssl_ca_csr_config_file ścieżka do pliku konfiguracyjnego CSR CA w formacie JSON "{{ cfssl_ca_root_dir }}/ca-csr.json"
cfssl_ca_config zawartość pliku konfiguracyjnego CA {}
cfssl_certs_dir ścieżka do katalogu z podpisanymi certyfikatami {{ cfssl_ca_root_dir }}/certs
cfssl_service Nazwa usługi cfssl cfssl
cfssl_db_config Konfiguracja bazy danych w formacie YAML. Zobacz certdb/README.nd w kodzie źródłowym dla szczegółów. {}
cfssl_db_type Typ bazy danych. Wspierana wartość to tylko sqlite. Jeśli jest określona, rola wykonuje konkretne zadania dla bazy danych i uruchamia cfssl jako serwer. ""
cfssl_db_dir Ścieżka do katalogu bazy danych {{ __cfssl_db_dir }}
cfssl_db_sqlite_bin Nazwa pliku polecenia sqlite sqlite3
cfssl_db_sqlite_database_file Ścieżka do pliku bazy danych sqlite {{ cfssl_db_dir }}/certdb.db
cfssl_db_sqlite_sql_file_dir Ścieżka do katalogu, w którym przechowywane są pliki SQL. {{ __cfssl_db_sqlite_sql_file_dir }}
cfssl_db_migration_dir Ścieżka do katalogu migracji bazy danych {{ cfssl_ca_root_dir }}/goose/{{ cfssl_db_type }}
cfssl_db_migration_config Konfiguracja migracji bazy danych {}
cfssl_db_migration_environment Środowisko dla migracji bazy danych development
cfssl_flags Dodatkowe opcje dla skryptu uruchamiającego ""
cfssl_certs lista certyfikatów do podpisania (zobacz poniżej) ""

cfssl_certs

Jest to lista słowników. Element reprezentuje CSR.

Klucz Opis Obowiązkowy?
name względna nazwa pliku z cfssl_certs_dir tak
SAN lista Subject Alternative Name nie
profile nazwa profilu do użycia podczas podpisywania tak
json zawartość pliku żądania w formacie JSON w YAML tak
owner nazwa użytkownika Unix właściciela pliku z kluczem prywatnym (domyślnie cfssl_user) nie

Włączenie trombik.cfssl

Możesz włączyć rolę w swoich zadaniach lub rolach. Użyj vars, aby zdefiniować konkretne zmienne roli.

- name: Włącz rolę trombik.cfssl
  include_role:
    name: trombik.cfssl
  vars:
    cfssl_extra_packages:
      - zsh

Jednak gdy chcesz przekazać jedną zmienną, która zawiera zmienne roli, musisz przekazać swoją zmienną do specjalnej zmiennej mostowej, cfssl_vars.

- name: Włącz rolę trombik.cfssl
  include_role:
    name: trombik.cfssl
  vars:
    cfssl_vars: "{{ my_variable }}"

Poniższy przykład NIE działa:

- name: Włącz rolę trombik.cfssl
  include_role:
    name: trombik.cfssl
  vars: "{{ my_variable }}"

Zobacz tests/serverspec/intermediate.yml, który wielokrotnie włącza rolę, aby stworzyć pośrednie CA.

Debian

Zmienna Domyślna wartość
__cfssl_user cfssl
__cfssl_group cfssl
__cfssl_package golang-cfssl
__cfssl_ca_root_dir /etc/cfssl
__cfssl_db_dir /var/lib/cfssl
__cfssl_db_sqlite_sql_file_dir ""

FreeBSD

Zmienna Domyślna wartość
__cfssl_user cfssl
__cfssl_group cfssl
__cfssl_package security/cfssl
__cfssl_ca_root_dir /usr/local/etc/cfssl
__cfssl_db_dir /var/db/cfssl
__cfssl_db_sqlite_sql_file_dir /usr/local/share/cfssl/certdb/sqlite/migrations

OpenBSD

Zmienna Domyślna wartość
__cfssl_user _cfssl
__cfssl_group _cfssl
__cfssl_package cfssl
__cfssl_ca_root_dir /etc/cfssl
__cfssl_db_dir /var/db/cfssl
__cfssl_db_sqlite_sql_file_dir /usr/local/share/cfssl/certdb/sqlite/migrations

Zależności

Brak

Przykładowy Playbook

Ten przykład zarządza cfssl i podpisuje kilka certyfikatów.

Dla przykładu serwera API, zobacz tests/serverspec/api.yml.

Dla przykładu wielu pośrednich CA pod głównym CA, zobacz tests/serverspec/intermediate.yml.

---
- hosts: localhost
  roles:
    - role: ansible-role-cfssl
  vars:
    cfssl_certs:
      - name: agent1.example.com.json
        SAN: []
        profile: agent
        owner: nobody
        json:
          CN: agent1.example.com
          hosts:
            - ""
          key:
            algo: rsa
            size: 2048
      - name: backend-1.example.com.json
        SAN:
          - localhost
          - 127.0.0.1
          - 10.0.0.1
          - backend-1
        profile: backend
        json:
          CN: backend-1.example.com
          hosts:
            - ""
          key:
            algo: rsa
            size: 2048
      - name: backend-2.example.com.json
        SAN:
          - localhost
          - 127.0.0.1
          - 10.0.0.2
          - backend-2
        profile: backend
        json:
          CN: backend-2.example.com
          hosts:
            - ""
          key:
            algo: rsa
            size: 2048
      - name: backend-3.example.com.json
        SAN:
          - localhost
          - 127.0.0.1
          - 10.0.0.3
          - backend-3
        profile: backend
        json:
          CN: backend-3.example.com
          hosts:
            - ""
          key:
            algo: rsa
            size: 2048
    cfssl_ca_config:
      signing:
        default:
          expiry: 17520h
          usages:
            - signing
            - key encipherment
            - client auth
        profiles:
          backend:
            expiry: 4320h
            usages:
              - signing
              - key encipherment
              - server auth
          agent:
            expiry: 4320h
            usages:
              - signing
              - key encipherment
              - client auth

    cfssl_ca_csr_config:
      CN: Sensu Test CA
      key:
        algo: rsa
        size: 2048

Licencja

Copyright (c) 2020 Tomoyuki Sakurai <[email protected]>

Zezwala się na użycie, kopiowanie, modyfikowanie i dystrybucję tego oprogramowania w dowolnym celu, z opłatą lub bez, pod warunkiem, że powyższy tekst prawa autorskiego oraz ten tekst zezwolenia będą się pojawiały w każdej kopii.

OPROGRAMOWANIE JEST DOSTARCZANE "TAK JAK JEST" I AUTOR ZRZEKA SIĘ WSZELKICH GWARANCJI ZWIĄZANYCH Z TYM OPROGRAMOWANIEM, W TYM WSZELKICH IMPLICITNYCH GWARANCJI HANDLOWOŚCI I PRZYDATNOŚCI DO OKREŚLONYCH CELÓW. W ŻADNYM PRZYPADKU AUTOR NIE BĘDZIE ODPOWIEDZIALNY ZA ŻADNE SZCZEGÓLNE, BEZPOŚREDNIE, POŚREDNIE, ANI WTÓRNE SZKODY ANI ŻADNE SZKODY WYNIKAJĄCE Z UTRATY UŻYTKU, DANYCH LUB ZYSKÓW, CZY TO W DZIAŁANIACH UMOWY, NEGLIGENCJI LUB INNYCH CZYNNIKACH, POWSTAŁYCH W ZWIĄZKU Z UŻYTKOWANIEM LUB DZIAŁANIEM TEGO OPROGRAMOWANIA.

Informacje o autorze

Tomoyuki Sakurai y@trombik.org

Niniejszy plik README został stworzony przez qansible

O projekcie

ansible role for cfssl

Zainstaluj
ansible-galaxy install trombik.cfssl
Licencja
isc
Pobrania
1.1k
Właściciel
PGP finger print: 03EB 3D97 5E04 9B0C AB21 93A2 D693 42A9 EFBC 3577 Makerspace and Coliving in Siem Reap, Cambodia: http://info.mkrsgh.org/