After some perhaps benign neglect, the "danecheck" utility published at:
<https://github.com/vdukhovni/danecheck> has been modernised.

The source is in Haskke, and this update brings up to date with recent
progress in the Haskell toolchain as well improvements over the years
added to its ancestor DANE survey code base from which the one-shot
"danecheck" is a spin-off.

This version no longer depends on the external libicu library, so won't
be broken when that's updated to a later version with a different
SONAME.  It now does a better job of presenting non-ASCII certificate
issuer and common names.  If interested, see

    https://github.com/vdukhovni/danecheck/blob/master/README.md

for installation details.  Sample output for "postfix.org" below
my signature.

I can match 2 out of the "3 1 1" records by specifying which of
RSA-based or ECDSA-based signature algorithms to check (it is also
possible to specify both in either order, though often the server
chooses based on its preference order and client's order is ignored).
The CA in the TLSA records isn't an issuer of either the ECDSA or the
RSA certificate.  Perhaps vestigial and should be removed?

    subject=C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert Global Root 
G2
    issuer=C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert Global Root G2
    notBefore=Aug  1 12:00:00 2013 GMT
    notAfter=Jan 15 12:00:00 2038 GMT

-- 
    Viktor.  🇺🇦 Слава Україні!

------------ ECDSA (client and/or server default)

$ ~/.cabal/bin/danecheck postfix.org ; echo; echo $?
postfix.org. IN MX 10 list.sys4.de. ; NoError AD=1
list.sys4.de. IN A 45.90.5.195 ; NoError AD=1
list.sys4.de. IN AAAA 2a03:4000:20:189::195 ; NoError AD=1
_25._tcp.list.sys4.de. IN TLSA 2 1 1 
8bb593a93be1d0e8a822bb887c547890c3e706aad2dab76254f97fb36b82fc26 ; NoError AD=1
_25._tcp.list.sys4.de. IN TLSA 3 1 1 
5a5cdb1f9438a36da11e33b31978c4fed0b8996edd2ea2ce206bf9c026c642ad ; NoError AD=1
_25._tcp.list.sys4.de. IN TLSA 3 1 1 
ac8c9eb13fcf4f8e9d1ea84b880007cb4ffbf9be30f335b57e5c5a509c5137e4 ; NoError AD=1
_25._tcp.list.sys4.de. IN TLSA 3 1 1 
e679f71454654354310785c811bfad1f8c4a2b6863410e4c13a40ab37cb744cf ; NoError AD=1
  list.sys4.de[45.90.5.195]: pass: TLSA match: depth = 0, name = list.sys4.de
    TLS = TLS1.3 with TLS_AES_256_GCM_SHA384,X25519,PubKeyALG_EC
    name = list.sys4.de
    depth = 0
      Issuer CommonName = E7
      Issuer Organization = Let's Encrypt
      notBefore = 2026-05-18T02:23:49Z
      notAfter = 2026-08-16T02:23:48Z
      Subject CommonName = list.sys4.de
      pkey sha256 [matched] <- 3 1 1 
e679f71454654354310785c811bfad1f8c4a2b6863410e4c13a40ab37cb744cf
    depth = 1
      Issuer CommonName = ISRG Root X1
      Issuer Organization = Internet Security Research Group
      notBefore = 2024-03-13T00:00:00Z
      notAfter = 2027-03-12T23:59:59Z
      Subject CommonName = E7
      Subject Organization = Let's Encrypt
      pkey sha256 [nomatch] <- 2 1 1 
cbbc559b44d524d6a132bdac672744da3407f12aae5d5f722c5f6c7913871c75
  list.sys4.de[2a03:4000:20:189::195]: pass: TLSA match: depth = 0, name = 
list.sys4.de
    TLS = TLS1.3 with TLS_AES_256_GCM_SHA384,X25519,PubKeyALG_EC
    name = list.sys4.de
    depth = 0
      Issuer CommonName = E7
      Issuer Organization = Let's Encrypt
      notBefore = 2026-05-18T02:23:49Z
      notAfter = 2026-08-16T02:23:48Z
      Subject CommonName = list.sys4.de
      pkey sha256 [matched] <- 3 1 1 
e679f71454654354310785c811bfad1f8c4a2b6863410e4c13a40ab37cb744cf
    depth = 1
      Issuer CommonName = ISRG Root X1
      Issuer Organization = Internet Security Research Group
      notBefore = 2024-03-13T00:00:00Z
      notAfter = 2027-03-12T23:59:59Z
      Subject CommonName = E7
      Subject Organization = Let's Encrypt
      pkey sha256 [nomatch] <- 2 1 1 
cbbc559b44d524d6a132bdac672744da3407f12aae5d5f722c5f6c7913871c75

0

------------ RSA

$ ~/.cabal/bin/danecheck --sigalgs rsa postfix.org ; echo; echo $?
postfix.org. IN MX 10 list.sys4.de. ; NoError AD=1
list.sys4.de. IN A 45.90.5.195 ; NoError AD=1
list.sys4.de. IN AAAA 2a03:4000:20:189::195 ; NoError AD=1
_25._tcp.list.sys4.de. IN TLSA 2 1 1 
8bb593a93be1d0e8a822bb887c547890c3e706aad2dab76254f97fb36b82fc26 ; NoError AD=1
_25._tcp.list.sys4.de. IN TLSA 3 1 1 
5a5cdb1f9438a36da11e33b31978c4fed0b8996edd2ea2ce206bf9c026c642ad ; NoError AD=1
_25._tcp.list.sys4.de. IN TLSA 3 1 1 
ac8c9eb13fcf4f8e9d1ea84b880007cb4ffbf9be30f335b57e5c5a509c5137e4 ; NoError AD=1
_25._tcp.list.sys4.de. IN TLSA 3 1 1 
e679f71454654354310785c811bfad1f8c4a2b6863410e4c13a40ab37cb744cf ; NoError AD=1
  list.sys4.de[45.90.5.195]: pass: TLSA match: depth = 0, name = list.sys4.de
    TLS = TLS1.3 with TLS_AES_256_GCM_SHA384,X25519,PubKeyALG_RSA
    name = list.sys4.de
    depth = 0
      Issuer CommonName = R12
      Issuer Organization = Let's Encrypt
      notBefore = 2026-05-18T02:23:41Z
      notAfter = 2026-08-16T02:23:40Z
      Subject CommonName = list.sys4.de
      pkey sha256 [matched] <- 3 1 1 
5a5cdb1f9438a36da11e33b31978c4fed0b8996edd2ea2ce206bf9c026c642ad
    depth = 1
      Issuer CommonName = ISRG Root X1
      Issuer Organization = Internet Security Research Group
      notBefore = 2024-03-13T00:00:00Z
      notAfter = 2027-03-12T23:59:59Z
      Subject CommonName = R12
      Subject Organization = Let's Encrypt
      pkey sha256 [nomatch] <- 2 1 1 
919c0df7a787b597ed056ace654b1de9c0387acf349f73734a4fd7b58cf612a4
  list.sys4.de[2a03:4000:20:189::195]: pass: TLSA match: depth = 0, name = 
list.sys4.de
    TLS = TLS1.3 with TLS_AES_256_GCM_SHA384,X25519,PubKeyALG_RSA
    name = list.sys4.de
    depth = 0
      Issuer CommonName = R12
      Issuer Organization = Let's Encrypt
      notBefore = 2026-05-18T02:23:41Z
      notAfter = 2026-08-16T02:23:40Z
      Subject CommonName = list.sys4.de
      pkey sha256 [matched] <- 3 1 1 
5a5cdb1f9438a36da11e33b31978c4fed0b8996edd2ea2ce206bf9c026c642ad
    depth = 1
      Issuer CommonName = ISRG Root X1
      Issuer Organization = Internet Security Research Group
      notBefore = 2024-03-13T00:00:00Z
      notAfter = 2027-03-12T23:59:59Z
      Subject CommonName = R12
      Subject Organization = Let's Encrypt
      pkey sha256 [nomatch] <- 2 1 1 
919c0df7a787b597ed056ace654b1de9c0387acf349f73734a4fd7b58cf612a4

0
_______________________________________________
Postfix-users mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to