146 lines
5.1 KiB
YAML
146 lines
5.1 KiB
YAML
---
|
|
# Copyright (c) Ansible Project
|
|
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
## SET UP ACCOUNT KEYS ########################################################################
|
|
- block:
|
|
- name: Generate account keys
|
|
openssl_privatekey:
|
|
path: "{{ remote_tmp_dir }}/{{ item.name }}.pem"
|
|
type: "{{ item.type }}"
|
|
size: "{{ item.size | default(omit) }}"
|
|
curve: "{{ item.curve | default(omit) }}"
|
|
force: true
|
|
loop: "{{ account_keys }}"
|
|
|
|
vars:
|
|
account_keys:
|
|
- name: account-ec256
|
|
type: ECC
|
|
curve: secp256r1
|
|
## CREATE ACCOUNTS AND OBTAIN CERTIFICATES ####################################################
|
|
- name: Obtain cert 1
|
|
include_tasks: obtain-cert.yml
|
|
vars:
|
|
certgen_title: Certificate 1 for renewal check
|
|
certificate_name: cert-1
|
|
key_type: rsa
|
|
rsa_bits: "{{ default_rsa_key_size }}"
|
|
subject_alt_name: "DNS:example.com"
|
|
subject_alt_name_critical: false
|
|
account_key: account-ec256
|
|
challenge: http-01
|
|
modify_account: true
|
|
deactivate_authzs: false
|
|
force: true
|
|
remaining_days: "{{ omit }}"
|
|
terms_agreed: true
|
|
account_email: "example@example.org"
|
|
## OBTAIN CERTIFICATE INFOS ###################################################################
|
|
- name: Dump OpenSSL x509 info
|
|
command:
|
|
cmd: openssl x509 -in {{ remote_tmp_dir }}/cert-1.pem -noout -text
|
|
- name: Obtain certificate information
|
|
x509_certificate_info:
|
|
path: "{{ remote_tmp_dir }}/cert-1.pem"
|
|
register: cert_1_info
|
|
- name: Read certificate
|
|
slurp:
|
|
src: '{{ remote_tmp_dir }}/cert-1.pem'
|
|
register: slurp_cert_1
|
|
- name: Obtain certificate information (1/9)
|
|
acme_certificate_renewal_info:
|
|
select_crypto_backend: "{{ select_crypto_backend }}"
|
|
certificate_path: "{{ remote_tmp_dir }}/cert-1.pem"
|
|
acme_version: 2
|
|
acme_directory: https://{{ acme_host }}:14000/dir
|
|
validate_certs: false
|
|
# Certificate is valid for ~1826 days
|
|
register: cert_1_renewal_1
|
|
- name: Obtain certificate information (2/9)
|
|
acme_certificate_renewal_info:
|
|
select_crypto_backend: "{{ select_crypto_backend }}"
|
|
certificate_path: "{{ remote_tmp_dir }}/cert-1.pem"
|
|
acme_version: 2
|
|
acme_directory: https://{{ acme_host }}:14000/dir
|
|
validate_certs: false
|
|
# Certificate is valid for ~1826 days
|
|
remaining_days: 1000
|
|
remaining_percentage: 0.5
|
|
register: cert_1_renewal_2
|
|
- name: Obtain certificate information (3/9)
|
|
acme_certificate_renewal_info:
|
|
select_crypto_backend: "{{ select_crypto_backend }}"
|
|
certificate_content: "{{ slurp_cert_1.content | b64decode }}"
|
|
acme_version: 2
|
|
acme_directory: https://{{ acme_host }}:14000/dir
|
|
validate_certs: false
|
|
now: +1800d
|
|
# Certificate is valid for ~26 days
|
|
register: cert_1_renewal_3
|
|
- name: Obtain certificate information (4/9)
|
|
acme_certificate_renewal_info:
|
|
select_crypto_backend: "{{ select_crypto_backend }}"
|
|
certificate_path: "{{ remote_tmp_dir }}/cert-1.pem"
|
|
acme_version: 2
|
|
acme_directory: https://{{ acme_host }}:14000/dir
|
|
validate_certs: false
|
|
now: +1800d
|
|
# Certificate is valid for ~26 days
|
|
remaining_days: 30
|
|
remaining_percentage: 0.1
|
|
register: cert_1_renewal_4
|
|
- name: Obtain certificate information (5/9)
|
|
acme_certificate_renewal_info:
|
|
select_crypto_backend: "{{ select_crypto_backend }}"
|
|
certificate_path: "{{ remote_tmp_dir }}/cert-1.pem"
|
|
acme_version: 2
|
|
acme_directory: https://{{ acme_host }}:14000/dir
|
|
validate_certs: false
|
|
now: +1800d
|
|
# Certificate is valid for ~26 days
|
|
remaining_days: 30
|
|
remaining_percentage: 0.01
|
|
register: cert_1_renewal_5
|
|
- name: Obtain certificate information (6/9)
|
|
acme_certificate_renewal_info:
|
|
select_crypto_backend: "{{ select_crypto_backend }}"
|
|
certificate_path: "{{ remote_tmp_dir }}/cert-1.pem"
|
|
acme_version: 2
|
|
acme_directory: https://{{ acme_host }}:14000/dir
|
|
validate_certs: false
|
|
now: +1800d
|
|
# Certificate is valid for ~26 days
|
|
remaining_days: 10
|
|
remaining_percentage: 0.03
|
|
register: cert_1_renewal_6
|
|
- name: Obtain certificate information (7/9)
|
|
acme_certificate_renewal_info:
|
|
select_crypto_backend: "{{ select_crypto_backend }}"
|
|
certificate_path: "{{ remote_tmp_dir }}/cert-1.pem"
|
|
acme_version: 2
|
|
acme_directory: https://{{ acme_host }}:14000/dir
|
|
validate_certs: false
|
|
now: +1830d
|
|
# Certificate is no longer valid
|
|
register: cert_1_renewal_7
|
|
- name: Obtain certificate information (8/9)
|
|
acme_certificate_renewal_info:
|
|
select_crypto_backend: "{{ select_crypto_backend }}"
|
|
acme_version: 2
|
|
acme_directory: https://{{ acme_host }}:14000/dir
|
|
validate_certs: false
|
|
now: +1830d
|
|
# Certificate is no longer valid
|
|
register: cert_1_renewal_8
|
|
- name: Obtain certificate information (9/9)
|
|
acme_certificate_renewal_info:
|
|
select_crypto_backend: "{{ select_crypto_backend }}"
|
|
certificate_path: "{{ remote_tmp_dir }}/cert-does-not-exist.pem"
|
|
acme_version: 2
|
|
acme_directory: https://{{ acme_host }}:14000/dir
|
|
validate_certs: false
|
|
# Certificate is no longer valid
|
|
register: cert_1_renewal_9
|