blob: deb02944df7747202316c62c2394a9429b45e8c0 (
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
# Exim test configuration 2112
# TLS client: verify certificate from server - fails
SERVER=
exim_path = EXIM_PATH
host_lookup_order = bydns
primary_hostname = myhost.test.ex
rfc1413_query_timeout = 0s
spool_directory = DIR/spool
log_file_path = DIR/spool/log/SERVER%slog
gecos_pattern = ""
gecos_name = CALLER_NAME
# ----- Main settings -----
acl_smtp_rcpt = accept
log_selector = +tls_peerdn+tls_certificate_verified
queue_only
queue_run_in_order
tls_advertise_hosts = *
# Set certificate only if server
tls_certificate = ${if eq {SERVER}{server}{DIR/aux-fixed/cert1}fail}
tls_privatekey = ${if eq {SERVER}{server}{DIR/aux-fixed/cert1}fail}
tls_verify_hosts = *
tls_verify_certificates = ${if eq {SERVER}{server}{DIR/aux-fixed/cert2}fail}
# ----- Routers -----
begin routers
server_dump:
driver = redirect
condition = ${if eq {SERVER}{server}{yes}{no}}
data = :blackhole:
client_x:
driver = accept
local_parts = userx
retry_use_local_part
transport = send_to_server_failcert
errors_to = ""
client_y:
driver = accept
local_parts = usery
retry_use_local_part
transport = send_to_server_retry
client_z:
driver = accept
local_parts = userz
retry_use_local_part
transport = send_to_server_crypt
client_q:
driver = accept
local_parts = userq
retry_use_local_part
transport = send_to_server_req_fail
# ----- Transports -----
begin transports
# this will fail to verify the cert at HOSTIPV4 so fail the crypt requirement
send_to_server_failcert:
driver = smtp
allow_localhost
hosts = HOSTIPV4
hosts_require_tls = HOSTIPV4
port = PORT_D
tls_certificate = DIR/aux-fixed/cert2
tls_verify_certificates = DIR/aux-fixed/cert2
# this will fail to verify the cert at HOSTIPV4 so fail the crypt, then retry on 127.1; ok
send_to_server_retry:
driver = smtp
allow_localhost
hosts = HOSTIPV4 : 127.0.0.1
hosts_require_tls = HOSTIPV4
port = PORT_D
tls_certificate = DIR/aux-fixed/cert2
tls_verify_certificates = \
${if eq{$host_address}{127.0.0.1}{DIR/aux-fixed/cert1}{DIR/aux-fixed/cert2}}
# this will fail to verify the cert but continue unverified though crypted
send_to_server_crypt:
driver = smtp
allow_localhost
hosts = HOSTIPV4
hosts_require_tls = HOSTIPV4
port = PORT_D
tls_certificate = DIR/aux-fixed/cert2
tls_verify_certificates = DIR/aux-fixed/cert2
tls_try_verify_hosts = *
# this will fail to verify the cert at HOSTIPV4 and fallback to unencrypted
send_to_server_req_fail:
driver = smtp
allow_localhost
hosts = HOSTIPV4
port = PORT_D
tls_certificate = DIR/aux-fixed/cert2
tls_verify_certificates = DIR/aux-fixed/cert2
tls_verify_hosts = *
# End
|