appendfile: taint-enforce file & directory options
[users/jgh/exim.git] / test / confs / 2102
1 # Exim test configuration 2102
2
3 .include DIR/aux-var/tls_conf_prefix
4
5 timezone = UTC
6 primary_hostname = myhost.test.ex
7
8 # ----- Main settings -----
9
10 acl_smtp_rcpt = check_recipient
11
12 log_selector = +tls_peerdn
13
14 queue_only
15 queue_run_in_order
16
17 tls_advertise_hosts = 127.0.0.1 : HOSTIPV4
18
19 .ifdef ORDER
20 tls_require_ciphers = ORDER
21 .endif
22
23 CA = DIR/aux-fixed/exim-ca
24 DRSA = CA/example.com
25 DECDSA = CA/example_ec.com
26
27 tls_certificate = DRSA/server1.example.com/server1.example.com.pem \
28                 : DECDSA/server1.example_ec.com/server1.example_ec.com.pem
29 tls_privatekey =  DRSA/server1.example.com/server1.example.com.unlocked.key \
30                 : DECDSA/server1.example_ec.com/server1.example_ec.com.unlocked.key
31
32 tls_verify_hosts = HOSTIPV4
33 tls_verify_certificates = DRSA/server2.example.com/ca_chain.pem
34
35
36 .ifdef _OPT_OPENSSL_NO_TLSV1_3_X
37 openssl_options = +no_tlsv1_3
38 .endif
39 # ------ ACL ------
40
41 begin acl
42
43 check_recipient:
44   accept  hosts = :
45   deny    hosts = HOSTIPV4
46          !encrypted = *
47           logwrite = cipher: $tls_in_cipher
48 # This appears to lie. Despite what's on the wire, it returns the last cert loaded.
49 # Fixed in OpenSSL 1.1.1 ?  Testcase golden logfile has the incorrect value.
50   warn    logwrite =  ${if def:tls_in_ourcert \
51                 {Our cert SN: <${certextract{subject}{$tls_in_ourcert}}>} \
52                 {We did not present a cert}}
53   accept  condition = ${if !def:tls_in_peercert}
54           logwrite =  Peer did not present a cert
55   accept  logwrite =  Peer cert:
56           logwrite =  ver ${certextract {version}{$tls_in_peercert}}
57           logwrite =  SR  <${certextract {serial_number}{$tls_in_peercert}}>
58           logwrite =  SN  <${certextract {subject}      {$tls_in_peercert}}>
59           logwrite =  IN  <${certextract {issuer}       {$tls_in_peercert}}>
60           logwrite =  IN/O <${certextract {issuer,O}    {$tls_in_peercert}}>
61           logwrite =  NB/r <${certextract {notbefore,raw}       {$tls_in_peercert}}>
62           logwrite =  NB   <${certextract {notbefore}   {$tls_in_peercert}}>
63           logwrite =  NB/i <${certextract {notbefore,int}{$tls_in_peercert}}>
64           logwrite =  NA/i <${certextract {notafter,int}        {$tls_in_peercert}}>
65           logwrite =  NA   <${certextract {notafter}    {$tls_in_peercert}}>
66           logwrite =  SA  <${certextract {sig_algorithm}{$tls_in_peercert}}>
67           logwrite =  SG  <${certextract {signature}    {$tls_in_peercert}}>
68           logwrite =       ${certextract {subj_altname} {$tls_in_peercert} {SAN <$value>}{(no SAN)}}
69           logwrite =       ${certextract {ocsp_uri}     {$tls_in_peercert} {OCU <$value>}{(no OCU)}}
70           logwrite =       ${certextract {crl_uri}      {$tls_in_peercert} {CRU <$value>}{(no CRU)}}
71           logwrite =  md5    fingerprint ${md5:$tls_in_peercert}
72           logwrite =  sha1   fingerprint ${sha1:$tls_in_peercert}
73           logwrite =  sha256 fingerprint ${sha256:$tls_in_peercert}
74           logwrite =  der_b64 ${base64:$tls_in_peercert}
75           logwrite = cipher: $tls_in_cipher
76           logwrite = cipher_ $tls_in_cipher_std
77           logwrite = ver:    $tls_in_ver
78
79
80 # ----- Routers -----
81
82 begin routers
83
84 abc:
85   driver = accept
86   retry_use_local_part
87   transport = local_delivery
88   headers_add = tls-certificate-verified: $tls_certificate_verified
89
90
91 # ----- Transports -----
92
93 begin transports
94
95 local_delivery:
96   driver = appendfile
97   file = DIR/test-mail/${bless:$local_part}
98   headers_add = TLS: cipher=$tls_cipher peerdn=$tls_peerdn
99   user = CALLER
100
101 # End