aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIsmaël Bouya <ismael.bouya@normalesup.org>2020-04-07 23:03:18 +0200
committerIsmaël Bouya <ismael.bouya@normalesup.org>2020-04-07 23:03:18 +0200
commit5153eb54abab92497093fffa60c487c3523016d4 (patch)
tree64529f83e58edac69ba24457592d7b73b7227b78
parent364b709fc590aca7ab9b38be97c91431abf011e1 (diff)
downloadNix-5153eb54abab92497093fffa60c487c3523016d4.tar.gz
Nix-5153eb54abab92497093fffa60c487c3523016d4.tar.zst
Nix-5153eb54abab92497093fffa60c487c3523016d4.zip
Fix printer not supporting elliptic curve keys
-rw-r--r--modules/private/mail/default.nix12
-rw-r--r--modules/private/mail/dovecot.nix15
-rw-r--r--modules/private/mail/postfix.nix6
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 = {