Enable selecting the TLS Certificate

This commit is contained in:
Jason Rothstein 2022-01-23 18:09:27 -06:00
parent 2e8186b540
commit d3988b8431
6 changed files with 34 additions and 3 deletions

View File

@ -11,7 +11,9 @@ Any pre-requisites that may not be covered by Ansible itself or the role should
Role Variables Role Variables
-------------- --------------
A description of the settable variables for this role should go here, including any variables that are in defaults/main.yml, vars/main.yml, and any variables that can/should be set via parameters to the role. Any variables that are read from other roles and/or the global scope (ie. hostvars, group vars, etc.) should be mentioned here as well. | Variable | Default | Description |
|-|-|-|
| postfix_vhost | inventory_hostname | What mod_md certificate should be used for Postfix |
Dependencies Dependencies
------------ ------------

View File

@ -1,3 +1,4 @@
--- ---
# defaults file for ensure_postfix # defaults file for ensure_postfix
postmaster_email: 'postmaster@example.com' postmaster_email: 'postmaster@example.com'
postfix_vhost: '{{ inventory_hostname }}'

View File

@ -706,13 +706,15 @@ readme_directory = /usr/share/doc/postfix/README_FILES
# in PEM format. Intermediate certificates should be included in general, # in PEM format. Intermediate certificates should be included in general,
# the server certificate first, then the issuing CA(s) (bottom-up order). # the server certificate first, then the issuing CA(s) (bottom-up order).
# #
smtpd_tls_cert_file = /etc/pki/tls/certs/postfix.pem # smtpd_tls_cert_file = /etc/pki/tls/certs/postfix.pem
smtpd_tls_cert_file = /etc/postfix/certificates/pubcert.pem
# The full pathname of a file with the Postfix SMTP server RSA private key # The full pathname of a file with the Postfix SMTP server RSA private key
# in PEM format. The private key must be accessible without a pass-phrase, # in PEM format. The private key must be accessible without a pass-phrase,
# i.e. it must not be encrypted. # i.e. it must not be encrypted.
# #
smtpd_tls_key_file = /etc/pki/tls/private/postfix.key # smtpd_tls_key_file = /etc/pki/tls/private/postfix.key
smtpd_tls_key_file = /etc/postfix/certificates/privkey.pem
# Announce STARTTLS support to remote SMTP clients, but do not require that # Announce STARTTLS support to remote SMTP clients, but do not require that
# clients use TLS encryption (opportunistic TLS inbound). # clients use TLS encryption (opportunistic TLS inbound).

View File

@ -0,0 +1,12 @@
[Unit]
Description=Copy TLS Certificates for Postfix
[Service]
Type=oneshot
ExecStartPre=mkdir -p /etc/postfix/certificates
ExecStart=/bin/bash -lc 'cp /etc/httpd/md/domains/{{ postfix_vhost }}/*.pem /etc/postfix/certificates/'
ExecStartPost=chown -R root:root /etc/postfix/certificates
[Install]
WantedBy=postfix.service

View File

@ -0,0 +1,9 @@
[Unit]
Description=Copy TLS Certificates for Postfix
[Timer]
OnUnitActiveSec=5min
[Install]
WantedBy=postfix.service

View File

@ -97,3 +97,8 @@ template_list:
src: '{{ ansible_distribution }}/{{ ansible_distribution_major_version }}/etc/opendkim.conf' src: '{{ ansible_distribution }}/{{ ansible_distribution_major_version }}/etc/opendkim.conf'
- dest: '/etc/opendmarc.conf' - dest: '/etc/opendmarc.conf'
src: '{{ ansible_distribution }}/{{ ansible_distribution_major_version }}/etc/opendmarc.conf' src: '{{ ansible_distribution }}/{{ ansible_distribution_major_version }}/etc/opendmarc.conf'
- dest: '/usr/lib/systemd/system/postfix-copytls.service'
src: '{{ ansible_distribution }}/{{ ansible_distribution_major_version }}/usr/lib/systemd/system/postfix-copytls.service'
- dest: '/usr/lib/systemd/system/postfix-copytls.timer'
src: '{{ ansible_distribution }}/{{ ansible_distribution_major_version }}/usr/lib/systemd/system/postfix-copytls.timer'