TLS: Fix handling for server cert/key file SNI re-expansion forced-fail
[exim.git] / test / confs / 2131
index 15cfed977de22c1005508c54e1787377a4a48ea7..a9924ab5b0546185b011824c7c9d87b02f940312 100644 (file)
@@ -3,41 +3,47 @@
 
 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
+.include DIR/aux-var/tls_conf_prefix
 
+primary_hostname = myhost.test.ex
 
 # ----- Main settings -----
 
 domainlist local_domains = test.ex : *.test.ex
 
 acl_smtp_rcpt = acl_log_sni
-log_selector = +tls_peerdn +tls_sni
+log_selector = +tls_peerdn +tls_sni +received_recipients
 remote_max_parallel = 1
 
 tls_advertise_hosts = *
 
-# Set certificate only if server
-
-tls_certificate = ${if eq {SERVER}{server} \
-       {DIR/aux-fixed/${if eq {$tls_in_sni}{bill} \
-           {exim-ca/example.com/server1.example.com/server1.example.com.pem} \
+tls_certificate = DIR/aux-fixed/${if inlist {$tls_in_sni}{ : normal : badkey : noneistkeyfile : expansionfailkey} \
            {cert1} \
-                       }\
-       }fail}
-
-tls_privatekey = ${if eq {SERVER}{server} \
-       {DIR/aux-fixed/${if eq {$tls_in_sni}{bill} \
-           {exim-ca/example.com/server1.example.com/server1.example.com.unlocked.key} \
+           {${if eq {$tls_in_sni}{alternate} \
+             {exim-ca/example.com/server1.example.com/server1.example.com.pem} \
+             {${if eq {$tls_in_sni}{badcert} \
+               {exim-ca/example.com/server1.example.com/server1.example.com.unlocked.key} \
+               {${if eq {$tls_in_sni}{nonexistcertfile} \
+                 {nonexistent_file} \
+                 fail \
+               } } \
+             } } \
+           } } \
+                       }
+
+tls_privatekey = DIR/aux-fixed/${if inlist {$tls_in_sni}{ : normal : badcert : nonexistcertfile : expansionfailedcert} \
            {cert1} \
-                       }\
-       }fail}
+           {${if eq {$tls_in_sni}{alternate} \
+             {exim-ca/example.com/server1.example.com/server1.example.com.unlocked.key} \
+             {${if eq {$tls_in_sni}{badkey} \
+               {cert2} \
+               {${if eq {$tls_in_sni}{noneistkeyfile} \
+                 {nonexist_file} \
+                 fail \
+               } } \
+             } } \
+           } } \
+                       }
 
 
 # ------ ACL ------
@@ -55,7 +61,7 @@ begin routers
 client:
   driver = accept
   condition = ${if !eq {SERVER}{server}}
-  transport = send_to_server${if eq{$local_part}{abcd}{2}{1}}
+  transport = send_to_server_${if inlist {$local_part}{normal} {1}{2}}
 
 server:
   driver = redirect
@@ -66,24 +72,27 @@ server:
 
 begin transports
 
-send_to_server1:
-  driver = smtp
+send_to_server_1:
+  driver =             smtp
   allow_localhost
-  hosts = HOSTIPV4
-  port = PORT_D
-  tls_sni = fred
-  hosts_require_tls = *
-  tls_try_verify_hosts = :
-
-send_to_server2:
-  driver = smtp
+  hosts =              HOSTIPV4
+  port =               PORT_D
+  hosts_try_fastopen = :
+  hosts_require_tls =  *
+  tls_sni =            ${local_part}
+  tls_verify_certificates = DIR/aux-fixed/cert1
+  tls_verify_cert_hostnames = :
+
+send_to_server_2:
+  driver =             smtp
   allow_localhost
-  hosts = HOSTIPV4
-  port = PORT_D
-  tls_sni = bill
-  hosts_require_tls = *
-  tls_try_verify_hosts = :
-
+  hosts =              HOSTIPV4
+  port =               PORT_D
+  hosts_try_fastopen = :
+  hosts_require_tls =  *
+  tls_sni =            ${local_part}
+  tls_verify_certificates = DIR/aux-fixed/exim-ca/example.com/server1.example.com/ca_chain.pem
+  tls_verify_cert_hostnames = :
 
 # ----- Retry -----