- - name: provision ssl host private key
- openssl_privatekey:
- path: "{{ item.server.ssl_certificate_key }}"
-
- - name: generate certificate signing request
- command: >
- openssl req
- -new
- -sha256
- -nodes
- -key {{ item.server.ssl_certificate_key }}
- -out {{ item.letsencrypt.ssl_csr | default(item.server.ssl_certificate~".csr") }}
- -subj "/C={{ item.letsencrypt.ssl_country | default(letsencrypt_ssl_country)
- }}/ST={{ item.letsencrypt.ssl_state | default(letsencrypt_ssl_state)
- }}/L{{ item.letsencrypt.ssl_loc | default(letsencrypt_ssl_loc)
- }}/O={{ item.letsencrypt.ssl_org | default(letsencrypt_ssl_org)
- }}/CN={{ item.letsencrypt.ssl_cn | default(item.server.server_name)
- }}/emailAddress={{ item.letsencrypt.ssl_email | default(letsencrypt_ssl_email) }}"
-
- - name: get challenge(s) from letsencrypt server
- letsencrypt:
- account_key: "{{ letsencrypt_account_key }}"
- csr: "{{ item.letsencrypt.ssl_csr | default(item.server.ssl_certificate~'.csr') }}"
- dest: "{{ item.server.ssl_certificate }}"
- acme_directory: "{{ letsencrypt_acme_dir | default(omit) }}"
- register: letsencrypt_challenge
-
- - name: store challenge(s) in local dir
- include: store_challenge.yaml
- when: letsencrypt_challenge|changed
-
- - pause:
- prompt: "LETSENCRYPT REMOTE VERIFICATION REQUIRED!. Perform any action to
- make server reachable from outside, then press ENTER to start
- verification"
- when: letsencrypt_challenge|changed and letsencrypt_pause|bool
-
- - name: get signed certificate(s) from letsencrypt server
- letsencrypt:
- account_key: "{{ letsencrypt_account_key }}"
- csr: "{{ item.letsencrypt.ssl_csr | default(item.server.ssl_certificate~'.csr') }}"
- dest: "{{ item.server.ssl_certificate }}"
- acme_directory: "{{ letsencrypt_acme_dir | default(omit) }}"
- data: "{{ letsencrypt_challenge }}"
- notify: restart nginx
|