diff --git a/core/admin/mailu/api/v1/domain.py b/core/admin/mailu/api/v1/domain.py index c5f98530..2edb10d2 100644 --- a/core/admin/mailu/api/v1/domain.py +++ b/core/admin/mailu/api/v1/domain.py @@ -39,20 +39,20 @@ domain_fields_get = api.model('DomainGet', { 'dns_autoconfig': fields.List(fields.String(description='DNS client auto-configuration entry')), 'dns_mx': fields.String(Description='MX record for domain'), 'dns_spf': fields.String(Description='SPF record for domain'), - 'dns_dkim': fields.String(Description='DKIM record for domain'), + 'dns_dkim': fields.String(Description='DKIM records for domain'), 'dns_dmarc': fields.String(Description='DMARC record for domain'), 'dns_dmarc_report': fields.String(Description='DMARC report record for domain'), - 'dns_tlsa': fields.String(Description='TLSA record for domain'), + 'dns_tlsa': fields.List(fields.String(Description='TLSA records for domain')), }) domain_fields_dns = api.model('DomainDNS', { 'dns_autoconfig': fields.List(fields.String(description='DNS client auto-configuration entry')), 'dns_mx': fields.String(Description='MX record for domain'), 'dns_spf': fields.String(Description='SPF record for domain'), - 'dns_dkim': fields.String(Description='DKIM record for domain'), + 'dns_dkim': fields.String(Description='DKIM records for domain'), 'dns_dmarc': fields.String(Description='DMARC record for domain'), 'dns_dmarc_report': fields.String(Description='DMARC report record for domain'), - 'dns_tlsa': fields.String(Description='TLSA record for domain'), + 'dns_tlsa': fields.List(fields.String(Description='TLSA records for domain')), }) manager_fields = api.model('Manager', { diff --git a/core/admin/mailu/models.py b/core/admin/mailu/models.py index 2cad7afb..7cde30b9 100644 --- a/core/admin/mailu/models.py +++ b/core/admin/mailu/models.py @@ -282,8 +282,13 @@ class Domain(Base): """ return TLSA record for domain when using letsencrypt """ hostname = app.config['HOSTNAME'] if app.config['TLS_FLAVOR'] in ('letsencrypt', 'mail-letsencrypt'): - # current ISRG Root X1 (RSA 4096, O = Internet Security Research Group, CN = ISRG Root X1) @20210902 - return f'_25._tcp.{hostname}. 86400 IN TLSA 2 1 1 0b9fa5a59eed715c26c1020c711b4f6ec42d58b0015e14337a39dad301c5afc3' + return [ + # current ISRG Root X1 (RSA 4096, O = Internet Security Research Group, CN = ISRG Root X1) @20210902 + f'_25._tcp.{hostname}. 86400 IN TLSA 2 1 1 0b9fa5a59eed715c26c1020c711b4f6ec42d58b0015e14337a39dad301c5afc3', + # current ISRG Root X2 (ECDSA P-384, O = Internet Security Research Group, CN = ISRG Root X2) @20240311 + f'_25._tcp.{hostname}. 86400 IN TLSA 2 1 1 762195c225586ee6c0237456e2107dc54f1efc21f61a792ebd515913cce68332', + ] + return [] @property def dkim_key(self): diff --git a/core/admin/mailu/ui/templates/domain/details.html b/core/admin/mailu/ui/templates/domain/details.html index 74657c28..d32cf740 100644 --- a/core/admin/mailu/ui/templates/domain/details.html +++ b/core/admin/mailu/ui/templates/domain/details.html @@ -48,11 +48,10 @@ {%- endif %} -{%- set tlsa_record=domain.dns_tlsa %} -{%- if tlsa_record %} +{%- if domain.dns_tlsa|length > 0 %}
{{ tlsa_record }}{{ domain.dns_tlsa | join("\n") }}