]> git.immae.eu Git - perso/Immae/Config/Nix.git/commitdiff
Fix printer not supporting elliptic curve keys
authorIsmaël Bouya <ismael.bouya@normalesup.org>
Tue, 7 Apr 2020 21:03:18 +0000 (23:03 +0200)
committerIsmaël Bouya <ismael.bouya@normalesup.org>
Tue, 7 Apr 2020 21:03:18 +0000 (23:03 +0200)
modules/private/mail/default.nix
modules/private/mail/dovecot.nix
modules/private/mail/postfix.nix

index b50e346a10495ed844ad15b2e2809a5f19795b1a..d893ec49d53184bb4cd495fca0bc3e82765be37d 100644 (file)
         mxs = map (zone: "${config.hostEnv.mx.subdomain}.${zone.name}") zonesWithMx;
       in builtins.listToAttrs (map (mx: lib.attrsets.nameValuePair mx null) mxs);
     };
+    # This is for clients that don’t support elliptic curves (e.g.
+    # printer)
+    security.acme.certs."mail-rsa" = config.myServices.certificates.certConfig // {
+      domain = config.hostEnv.fqdn;
+      keyType = "rsa4096";
+      extraDomains = let
+        zonesWithMx = builtins.filter (zone:
+          lib.attrsets.hasAttr "withEmail" zone && lib.lists.length zone.withEmail > 0
+        ) config.myEnv.dns.masterZones;
+        mxs = map (zone: "${config.hostEnv.mx.subdomain}.${zone.name}") zonesWithMx;
+      in builtins.listToAttrs (map (mx: lib.attrsets.nameValuePair mx null) mxs);
+    };
     services.duplyBackup.profiles = {
       mail = {
         rootDir = "/var/lib";
index 77f9bd71aca64c993494375139368a8d363b6dbc..0304b899cb724f7b02e483d3918b8ab9f8ad4087 100644 (file)
@@ -80,6 +80,12 @@ in
       sslServerKey = "/var/lib/acme/mail/key.pem";
       sslCACert = "/var/lib/acme/mail/fullchain.pem";
       extraConfig = builtins.concatStringsSep "\n" [
+        # For printer which doesn’t support elliptic curve
+        ''
+          ssl_alt_cert = </var/lib/acme/mail-rsa/fullchain.pem
+          ssl_alt_key = </var/lib/acme/mail-rsa/key.pem
+        ''
+
         ''
           postmaster_address = postmaster@immae.eu
           mail_attribute_dict = file:%h/dovecot-attributes
@@ -269,6 +275,15 @@ in
       [
         "0 2 * * * root ${cron_script}/bin/cleanup-imap-folders"
       ];
+    security.acme.certs."mail-rsa" = {
+      postRun = ''
+        systemctl restart dovecot2.service
+      '';
+      extraDomains = {
+        "imap.immae.eu" = null;
+        "pop3.immae.eu" = null;
+      };
+    };
     security.acme.certs."mail" = {
       postRun = ''
         systemctl restart dovecot2.service
index 4791b418a60d9194c67cf8fa31ebbbaa49d47f60..92fa580d42da6d13f4a6ec30778b5911d4c3f073 100644 (file)
           "unix:${config.myServices.mail.milters.sockets.openarc}"
           "unix:${config.myServices.mail.milters.sockets.opendmarc}"
         ];
+
+        smtp_use_tls = true;
+        smtpd_use_tls = true;
+        smtpd_tls_chain_files = builtins.concatStringsSep "," [ "/var/lib/acme/mail/full.pem" "/var/lib/acme/mail-rsa/full.pem" ];
       };
       enable = true;
       enableSmtp = true;
       # This needs to reverse DNS
       hostname = config.hostEnv.fqdn;
       setSendmail = true;
-      sslCert = "/var/lib/acme/mail/fullchain.pem";
-      sslKey = "/var/lib/acme/mail/key.pem";
       recipientDelimiter = "+";
       masterConfig = {
         submissions = {