Wietse Venema: > Chris Bamford: > > Hello, > > > > I would like to know how Postfix handles client certificates for delivery > > i.e. when it makes a remote connection to deliver email. > > > > Is it possible to control the certificate that is used per domain? > > The client certificate is a Postfix SMTP client setting; the > certificate will be used for all email deliveries by that Postfix > SMTP client. > > The following example uses one Postfix SMTP client per sender domain, > each Postfix SMTP client having its own client certificate: > > /etc/postfix/main.cf: > sender_dependent_default_transport_maps = > hash:/etc/postfix/sender_transport > # In case you need a cert for all other deliveries. > # static:/etc/postfix/default-cert/pem > > /etc/postfix/sender_transport: > # Searched by sender email address and @domain. > @example.com smtp-example-com > @example.org smtp-example-org > ... > > /etc/postfix/master.cf: > smtp-example-com .. .. .. .. .. .. .. smtp > -o smtp_tls_cert_file=/etc/postfix/example-com-cert.pem > smtp-example-org .. .. .. .. .. .. .. smtp > -o smtp_tls_cert_file=/etc/postfix/example-org-cert.pem > ... > > To make this more scalable, the Postfix SMTP client would need the > opposite of tls_server_sni_maps, to dynamically choose the client > certificate based on the sender info.
I suppose that each client certificate will be valid only with a specific host, so you would have to update the sender_transport table to return a transport:nexthop result. /etc/postfix/main.cf: sender_dependent_default_transport_maps = hash:/etc/postfix/sender_transport # In case you need a cert for all other deliveries. # static:/etc/postfix/default-cert/pem /etc/postfix/sender_transport: # Searched by sender email address and @domain. # Returns transport:nexthop. @example.com smtp-example-com:relayhost-for-example.com @example.org smtp-example-org:relayhost-for-example.org ... /etc/postfix/master.cf: smtp-example-com .. .. .. .. .. .. .. smtp -o smtp_tls_cert_file=/etc/postfix/example-com-cert.pem smtp-example-org .. .. .. .. .. .. .. smtp -o smtp_tls_cert_file=/etc/postfix/example-org-cert.pem ... > Wietse >