Managing Server Certificates as a Certificate Authority
cacerts2
Ansible role.Categories:
Projects: c2platform/ansible
, c2platform.core
Under Construction:
We apologize for the inconvenience, but this page and its subpages are currently under active development.This guide explains the process of establishing a simple Certificate Authority (CA) and effectively managing certificates for different services. It utilizes the cacerts2
Ansible role from the c2platform.core
collection.
Configuration
One node is assigned the CA Server role where certificates are created and stored. In this project c2d-rproxy1 is assigned this role. This done in hosts-dev.ini
in c2platform/ansible
.
[cacerts_server]
c2d-rproxy1
The configuration for the CA server is in group_vars/all/smallca.yml
.
cacerts2_ca_server: "{{ groups['cacerts_server'][0] }}"
c2_cacerts2_ca_dir:
default: /etc/ownca
development: /vagrant/.ca
cacerts2_ca_dir: "{{ c2_cacerts2_ca_dir[c2_env]|default(c2_cacerts2_ca_dir['default']) }}"
cacerts2_ca_domain:
common_name: c2
cipher: auto
passphrase: "{{ c2_cacerts2_ca_domain_passphrase }}" # secret see vault
create: ['key','csr', 'crt', 'p12', 'pem']
The variable c2_env
is defined in group_vars/development.yml
. Variables prefixed with c2_
are project variables and not role variables. See Variable prefix.
Create CA Server
In Vagrantfile.yml
the CA server c2d-rproxy1
is defined as follows:
- name: rproxy1
short_description: Reverse Proxy
description: Apache based reverse proxy
box: ubuntu18-lxd
ip-address: 1.1.4.205
plays:
- core/cacerts_server
- mw/reverse_proxy
Note that this node has two plays
one of which is core/cacerts_server
.
vagrant up c2d-rproxy1
Note: this project contains a .ca
folder with the CA files as shown below. The ( CA ) keys and certificates are stored in the root of project in folder .ca
. That way the CA key and certificate can be reused as you destroy and create nodes.
.ca/
└── c2
├── c2.crt
├── c2.csr
└── c2.key
Note: if you remove this .ca
folder those CA files will be recreated by the plays/core/cacerts_server
play. This is something you might not want because for example if you imported .ca/c2/c2.crt
in your internet browser.
Reverse Proxy
Because c2d-rproxy1
has two plays configured we now also have created a reverse proxy server with the plays/mw/reverse_proxy.yml
play. Running this play created certificates signed by our small CA. These should now also be present in the .ca
folder as shown below. Note: you can remove those certificates, the certificates in apache
folder at any time because they will be recreated when plays/mw/reverse_proxy.yml
play is executed. The creation of the reverse proxy servers is explained in more detail in Setup Reverse Proxy and CA server.
.ca/
└── c2
├── apache
│ ├── c2-c2d-rproxy1.crt
│ ├── c2-c2d-rproxy1.csr
│ ├── c2-c2d-rproxy1.key
│ ├── c2-c2d-rproxy1.p12
│ └── c2-c2d-rproxy1.pem
├── c2.crt
├── c2.csr
└── c2.key
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.