blob: dfeb172b1b07597c87c7425230adbcf9f4fc774f (
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
|
# Exim test configuration 2002
.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
CA = DIR/aux-fixed/exim-ca
DRSA = CA/example.com
DECDSA = CA/example_ec.com
tls_certificate = DRSA/server1.example.com/server1.example.com.pem \
: DECDSA/server1.example_ec.com/server1.example_ec.com.pem
tls_privatekey = DRSA/server1.example.com/server1.example.com.unlocked.key \
: DECDSA/server1.example_ec.com/server1.example_ec.com.unlocked.key
tls_verify_hosts = HOSTIPV4
tls_verify_certificates = DRSA/server2.example.com/ca_chain.pem
# ------ ACL ------
begin acl
check_recipient:
accept hosts = :
deny hosts = HOSTIPV4
!encrypted = *
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
|