> On Jan 21, 2018, at 4:07 PM, Danny Horne <da...@trisect.uk> wrote: > > I won't ask you to expand on why wildcard certificates should be avoided > (unless you want to).
The short version: 1. People who use wildcard certs tend to DoS themselves by breaking every server with the shared key+certificate chain when incorrectly updating that key+certificate chain 2. Sharing of certificates across services enables attacks that redirect clients to the wrong service that happens to use the same certificate. 3. Sharing of certificates across services facilitates cross-protocol attacks (e.g. https://drownattack.com/) by exposing the same key material via both weak and strong protocols and implementations. > I use DANE, so based on what you're saying, > wildcard certificates may not be cost effective for me anyway (since you > advise against using them and say self-signed is fine for email) Indeed stick with what you've got. You could (if not intimidated by the logistics, but we may have more tools for you in this space soonish) also implement a private CA that signs your no-longer self-signed server cert. This makes it possible to publish "3 1 1" + "2 1 1" TLSA records, with the "2 1 1" matching the key of your private CA, with that you can rotate the server key more frequently, while keeping the CA key password protected. As it stands your DANE implementation is fine for the next ~10 years: trisect.uk. IN MX 10 mail.trisect.uk. ; NoError AD=1 trisect.uk. IN MX 20 2mail.trisect.uk. ; NoError AD=1 _25._tcp.mail.trisect.uk. IN TLSA 3 0 1 c2a13da6b4b38a329dd2671640d24045e65acbc2e1f378436cd1b466d09fe4bf ; NoError AD=1 mail.trisect.uk[87.98.165.212]: pass: TLSA match: depth = 0, name = mail.trisect.uk TLS = TLS12 with ECDHE-RSA-AES256GCM-SHA384 name = mail.trisect.uk depth = 0 Issuer CommonName = mail.trisect.uk Issuer Organization = Trisect notBefore = 2017-12-06T18:19:26Z notAfter = 2027-12-06T18:19:26Z Subject CommonName = mail.trisect.uk Subject Organization = Trisect cert sha256 [matched] <- 3 0 1 c2a13da6b4b38a329dd2671640d24045e65acbc2e1f378436cd1b466d09fe4bf pkey sha256 [nomatch] <- 3 1 1 5f328d20ab5459373e85444b0a8614c1fd18c4aa88f900b017082de1b90946e4 _25._tcp.2mail.trisect.uk. IN TLSA 3 0 1 d58b69ef28f0055f17e146338f9993e46d8e11154e2333b86978e28db5ddb3c6 ; NoError AD=1 2mail.trisect.uk[94.23.165.25]: pass: TLSA match: depth = 0, name = 2mail.trisect.uk TLS = TLS12 with ECDHE-RSA-AES256GCM-SHA384 name = 2mail.trisect.uk depth = 0 Issuer CommonName = 2mail.trisect.uk Issuer Organization = Trisect Networks notBefore = 2017-12-27T20:32:04Z notAfter = 2027-12-27T20:32:04Z Subject CommonName = 2mail.trisect.uk Subject Organization = Trisect Networks cert sha256 [matched] <- 3 0 1 d58b69ef28f0055f17e146338f9993e46d8e11154e2333b86978e28db5ddb3c6 pkey sha256 [nomatch] <- 3 1 1 6bd7eb84836144f694600d7bebea60662f2b3d1250ed3a6d2aa4fed647211eed And separate certificates for the two servers are more reliable, just don't neglect to publish new TLSA records prior to replacing the certificate of either server and do that one at a time (some weeks apart). -- Viktor.