blob: 58ff6fbaa8df2c949447ed3b96e7b2cec57d7c3f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
# Exim test configuration 2102
.include DIR/aux-var/tls_conf_prefix
timezone = UTC
primary_hostname = myhost.test.ex
# ----- Main settings -----
acl_smtp_rcpt = check_recipient
log_selector = +tls_peerdn
queue_only
queue_run_in_order
tls_advertise_hosts = 127.0.0.1 : HOSTIPV4
tls_certificate = DIR/aux-fixed/exim-ca/example.com/server1.example.com/server1.example.com.pem
tls_privatekey = DIR/aux-fixed/exim-ca/example.com/server1.example.com/server1.example.com.unlocked.key
tls_verify_hosts = HOSTIPV4
tls_verify_certificates = DIR/aux-fixed/exim-ca/example.com/server2.example.com/ca_chain.pem
# ------ ACL ------
begin acl
check_recipient:
accept hosts = :
deny hosts = HOSTIPV4
!encrypted = AES256-SHA : \
AES256-GCM-SHA384 : \
AES128-GCM-SHA256 : \
IDEA-CBC-MD5 : \
DES-CBC3-SHA : \
DHE-RSA-AES256-SHA : \
DHE-RSA-AES256-GCM-SHA384 : \
DHE_RSA_AES_256_CBC_SHA1 : \
DHE_RSA_3DES_EDE_CBC_SHA : \
ECDHE-RSA-AES256-GCM-SHA384 : \
ECDHE-RSA-AES128-GCM-SHA256 : \
ECDHE-RSA-CHACHA20-POLY1305
logwrite = cipher: $tls_in_cipher
warn logwrite = ${if def:tls_in_ourcert \
{Our cert SN: <${certextract{subject}{$tls_in_ourcert}}>} \
{We did not present a cert}}
accept condition = ${if !def:tls_in_peercert}
logwrite = Peer did not present a cert
accept logwrite = Peer cert:
logwrite = ver ${certextract {version}{$tls_in_peercert}}
logwrite = SR <${certextract {serial_number}{$tls_in_peercert}}>
logwrite = SN <${certextract {subject} {$tls_in_peercert}}>
logwrite = IN <${certextract {issuer} {$tls_in_peercert}}>
logwrite = IN/O <${certextract {issuer,O} {$tls_in_peercert}}>
logwrite = NB/r <${certextract {notbefore,raw} {$tls_in_peercert}}>
logwrite = NB <${certextract {notbefore} {$tls_in_peercert}}>
logwrite = NB/i <${certextract {notbefore,int}{$tls_in_peercert}}>
logwrite = NA/i <${certextract {notafter,int} {$tls_in_peercert}}>
logwrite = NA <${certextract {notafter} {$tls_in_peercert}}>
logwrite = SA <${certextract {sig_algorithm}{$tls_in_peercert}}>
logwrite = SG <${certextract {signature} {$tls_in_peercert}}>
logwrite = ${certextract {subj_altname} {$tls_in_peercert} {SAN <$value>}{(no SAN)}}
logwrite = ${certextract {ocsp_uri} {$tls_in_peercert} {OCU <$value>}{(no OCU)}}
logwrite = ${certextract {crl_uri} {$tls_in_peercert} {CRU <$value>}{(no CRU)}}
logwrite = md5 fingerprint ${md5:$tls_in_peercert}
logwrite = sha1 fingerprint ${sha1:$tls_in_peercert}
logwrite = sha256 fingerprint ${sha256:$tls_in_peercert}
logwrite = der_b64 ${base64:$tls_in_peercert}
# ----- Routers -----
begin routers
abc:
driver = accept
retry_use_local_part
transport = local_delivery
headers_add = tls-certificate-verified: $tls_certificate_verified
# ----- Transports -----
begin transports
local_delivery:
driver = appendfile
file = DIR/test-mail/$local_part
headers_add = TLS: cipher=$tls_cipher peerdn=$tls_peerdn
user = CALLER
# End
|