TLS: fix resumption for TLS-on-connect
[exim.git] / test / confs / 5894
1 # Exim test configuration 5894
2
3 SERVER =
4
5 .include DIR/aux-var/tls_conf_prefix
6
7 primary_hostname = myhost.test.ex
8
9 # ----- Main settings -----
10
11 domainlist local_domains = test.ex : *.test.ex
12
13 acl_smtp_helo = check_helo
14 acl_smtp_rcpt = check_recipient
15 log_selector = +received_recipients +tls_resumption +tls_peerdn +outgoing_port
16
17 openssl_options = +no_sslv2 +no_sslv3 +single_dh_use
18 tls_advertise_hosts = *
19 tls_on_connect_ports =  PORT_D2
20
21 # Set certificate only if server
22
23 CDIR=DIR/aux-fixed/exim-ca/example.com
24
25 tls_certificate = CDIR/server1.example.com/server1.example.com.chain.pem
26 tls_privatekey =  CDIR/server1.example.com/server1.example.com.unlocked.key
27
28 tls_resumption_hosts = 127.0.0.1
29
30
31 # ------ ACL ------
32
33 begin acl
34
35 check_helo:
36   accept condition =    ${if def:tls_in_cipher}
37          logwrite =     tls_in_ver\t$tls_in_ver
38          logwrite =     tls_in_resumption\t${listextract {$tls_in_resumption} {_RESUME_DECODE}}
39          logwrite =     our cert subject\t${certextract {subject}{$tls_in_ourcert}}
40          logwrite =     peer cert subject\t${certextract {subject}{$tls_in_peercert}}
41          logwrite =     peer cert verified\t${tls_in_certificate_verified}
42          logwrite =     peer dn\t${tls_in_peerdn}
43          logwrite =     cipher\t${tls_in_cipher}
44          logwrite =     bits\t${tls_in_bits}
45   accept
46
47 check_recipient:
48   accept domains =      +local_domains
49   deny   message =      relay not permitted
50
51 log_resumption:
52   accept condition =    ${if def:tls_out_cipher}
53          condition =    ${if eq {$event_name}{tcp:close}}
54          logwrite =     tls_out_ver\t$tls_out_ver
55          logwrite =     tls_out_resumption ${listextract {$tls_out_resumption} {_RESUME_DECODE}}
56          logwrite =     our cert subject\t${certextract {subject}{$tls_out_ourcert}}
57          logwrite =     peer cert subject\t${certextract {subject}{$tls_out_peercert}}
58          logwrite =     peer cert verified\t${tls_out_certificate_verified}
59          logwrite =     peer dn\t${tls_out_peerdn}
60          logwrite =     cipher\t${tls_out_cipher}
61          logwrite =     bits\t${tls_out_bits}
62
63
64 # ----- Routers -----
65
66 begin routers
67
68 client:
69   driver =      accept
70   condition =   ${if eq {SERVER}{server}{no}{yes}}
71   transport =   send_to_server${if eq{$local_part}{hostnotresume}{2}{1}}
72
73 server:
74   driver = redirect
75   data = :blackhole:
76
77 # ----- Transports -----
78
79 begin transports
80
81 send_to_server1:
82   driver =                      smtp
83   allow_localhost
84   hosts =                       127.0.0.1
85 .ifdef SELECTOR
86   port =                        PORT_D2
87   protocol =                    smtps
88   # Use HELO purely to get a P= different on the server <= line
89   hosts_avoid_esmtp =           *
90 .else
91   port =                        PORT_D
92 .endif
93   helo_data =                   helo.data.changed
94 .ifdef VALUE
95   tls_resumption_hosts =        *
96 .else
97   tls_resumption_hosts =        :
98 .endif
99   tls_verify_certificates =     CDIR/CA/CA.pem
100   tls_verify_cert_hostnames =   ${if match {$local_part}{^noverify} {*}{:}}
101   tls_try_verify_hosts =        *
102   event_action =                ${acl {log_resumption}}
103
104 send_to_server2:
105   driver =                      smtp
106   allow_localhost
107   hosts =                       HOSTIPV4
108   port =                        PORT_D
109   hosts_try_fastopen =          :
110   tls_verify_certificates =     CDIR/CA/CA.pem
111   tls_verify_cert_hostnames =   :
112   event_action =                ${acl {log_resumption}}
113
114
115 # ----- Retry -----
116
117
118 begin retry
119
120 * * F,5d,10s
121
122
123 # End