diff options
author | Ismaël Bouya <ismael.bouya@normalesup.org> | 2020-04-07 23:03:18 +0200 |
---|---|---|
committer | Ismaël Bouya <ismael.bouya@normalesup.org> | 2020-04-07 23:03:18 +0200 |
commit | 5153eb54abab92497093fffa60c487c3523016d4 (patch) | |
tree | 64529f83e58edac69ba24457592d7b73b7227b78 /modules/private | |
parent | 364b709fc590aca7ab9b38be97c91431abf011e1 (diff) | |
download | Nix-5153eb54abab92497093fffa60c487c3523016d4.tar.gz Nix-5153eb54abab92497093fffa60c487c3523016d4.tar.zst Nix-5153eb54abab92497093fffa60c487c3523016d4.zip |
Fix printer not supporting elliptic curve keys
Diffstat (limited to 'modules/private')
-rw-r--r-- | modules/private/mail/default.nix | 12 | ||||
-rw-r--r-- | modules/private/mail/dovecot.nix | 15 | ||||
-rw-r--r-- | modules/private/mail/postfix.nix | 6 |
3 files changed, 31 insertions, 2 deletions
diff --git a/modules/private/mail/default.nix b/modules/private/mail/default.nix index b50e346..d893ec4 100644 --- a/modules/private/mail/default.nix +++ b/modules/private/mail/default.nix | |||
@@ -22,6 +22,18 @@ | |||
22 | mxs = map (zone: "${config.hostEnv.mx.subdomain}.${zone.name}") zonesWithMx; | 22 | mxs = map (zone: "${config.hostEnv.mx.subdomain}.${zone.name}") zonesWithMx; |
23 | in builtins.listToAttrs (map (mx: lib.attrsets.nameValuePair mx null) mxs); | 23 | in builtins.listToAttrs (map (mx: lib.attrsets.nameValuePair mx null) mxs); |
24 | }; | 24 | }; |
25 | # This is for clients that don’t support elliptic curves (e.g. | ||
26 | # printer) | ||
27 | security.acme.certs."mail-rsa" = config.myServices.certificates.certConfig // { | ||
28 | domain = config.hostEnv.fqdn; | ||
29 | keyType = "rsa4096"; | ||
30 | extraDomains = let | ||
31 | zonesWithMx = builtins.filter (zone: | ||
32 | lib.attrsets.hasAttr "withEmail" zone && lib.lists.length zone.withEmail > 0 | ||
33 | ) config.myEnv.dns.masterZones; | ||
34 | mxs = map (zone: "${config.hostEnv.mx.subdomain}.${zone.name}") zonesWithMx; | ||
35 | in builtins.listToAttrs (map (mx: lib.attrsets.nameValuePair mx null) mxs); | ||
36 | }; | ||
25 | services.duplyBackup.profiles = { | 37 | services.duplyBackup.profiles = { |
26 | mail = { | 38 | mail = { |
27 | rootDir = "/var/lib"; | 39 | rootDir = "/var/lib"; |
diff --git a/modules/private/mail/dovecot.nix b/modules/private/mail/dovecot.nix index 77f9bd7..0304b89 100644 --- a/modules/private/mail/dovecot.nix +++ b/modules/private/mail/dovecot.nix | |||
@@ -80,6 +80,12 @@ in | |||
80 | sslServerKey = "/var/lib/acme/mail/key.pem"; | 80 | sslServerKey = "/var/lib/acme/mail/key.pem"; |
81 | sslCACert = "/var/lib/acme/mail/fullchain.pem"; | 81 | sslCACert = "/var/lib/acme/mail/fullchain.pem"; |
82 | extraConfig = builtins.concatStringsSep "\n" [ | 82 | extraConfig = builtins.concatStringsSep "\n" [ |
83 | # For printer which doesn’t support elliptic curve | ||
84 | '' | ||
85 | ssl_alt_cert = </var/lib/acme/mail-rsa/fullchain.pem | ||
86 | ssl_alt_key = </var/lib/acme/mail-rsa/key.pem | ||
87 | '' | ||
88 | |||
83 | '' | 89 | '' |
84 | postmaster_address = postmaster@immae.eu | 90 | postmaster_address = postmaster@immae.eu |
85 | mail_attribute_dict = file:%h/dovecot-attributes | 91 | mail_attribute_dict = file:%h/dovecot-attributes |
@@ -269,6 +275,15 @@ in | |||
269 | [ | 275 | [ |
270 | "0 2 * * * root ${cron_script}/bin/cleanup-imap-folders" | 276 | "0 2 * * * root ${cron_script}/bin/cleanup-imap-folders" |
271 | ]; | 277 | ]; |
278 | security.acme.certs."mail-rsa" = { | ||
279 | postRun = '' | ||
280 | systemctl restart dovecot2.service | ||
281 | ''; | ||
282 | extraDomains = { | ||
283 | "imap.immae.eu" = null; | ||
284 | "pop3.immae.eu" = null; | ||
285 | }; | ||
286 | }; | ||
272 | security.acme.certs."mail" = { | 287 | security.acme.certs."mail" = { |
273 | postRun = '' | 288 | postRun = '' |
274 | systemctl restart dovecot2.service | 289 | systemctl restart dovecot2.service |
diff --git a/modules/private/mail/postfix.nix b/modules/private/mail/postfix.nix index 4791b41..92fa580 100644 --- a/modules/private/mail/postfix.nix +++ b/modules/private/mail/postfix.nix | |||
@@ -350,6 +350,10 @@ | |||
350 | "unix:${config.myServices.mail.milters.sockets.openarc}" | 350 | "unix:${config.myServices.mail.milters.sockets.openarc}" |
351 | "unix:${config.myServices.mail.milters.sockets.opendmarc}" | 351 | "unix:${config.myServices.mail.milters.sockets.opendmarc}" |
352 | ]; | 352 | ]; |
353 | |||
354 | smtp_use_tls = true; | ||
355 | smtpd_use_tls = true; | ||
356 | smtpd_tls_chain_files = builtins.concatStringsSep "," [ "/var/lib/acme/mail/full.pem" "/var/lib/acme/mail-rsa/full.pem" ]; | ||
353 | }; | 357 | }; |
354 | enable = true; | 358 | enable = true; |
355 | enableSmtp = true; | 359 | enableSmtp = true; |
@@ -388,8 +392,6 @@ | |||
388 | # This needs to reverse DNS | 392 | # This needs to reverse DNS |
389 | hostname = config.hostEnv.fqdn; | 393 | hostname = config.hostEnv.fqdn; |
390 | setSendmail = true; | 394 | setSendmail = true; |
391 | sslCert = "/var/lib/acme/mail/fullchain.pem"; | ||
392 | sslKey = "/var/lib/acme/mail/key.pem"; | ||
393 | recipientDelimiter = "+"; | 395 | recipientDelimiter = "+"; |
394 | masterConfig = { | 396 | masterConfig = { |
395 | submissions = { | 397 | submissions = { |