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
ansible-galaxy install trombik.cfssl