.cindex "tainted data"
If the origin of the data is an incoming message,
the result of expanding this variable is tainted.
-When in untainted version is needed, one should be obtained from
+When an untainted version is needed, one should be obtained from
looking up the value in a local (therefore trusted) database.
Often &$domain_data$& is usable in this role.
.vindex "&$tls_in_sni$&"
.vindex "&$tls_sni$&"
.cindex "TLS" "Server Name Indication"
+.cindex "TLS" SNI
+.cindex SNI "observability on server"
When a TLS session is being established, if the client sends the Server
Name Indication extension, the value will be placed in this variable.
If the variable appears in &%tls_certificate%& then this option and
.vitem &$tls_out_sni$&
.vindex "&$tls_out_sni$&"
.cindex "TLS" "Server Name Indication"
+.cindex "TLS" SNI
+.cindex SNI "observability in client"
During outbound
SMTP deliveries, this variable reflects the value of the &%tls_sni%& option on
the transport.
.option syslog_timestamp main boolean true
.cindex "syslog" "timestamps"
+.cindex timestamps syslog
If &%syslog_timestamp%& is set false, the timestamps on Exim's log lines are
omitted when these lines are sent to syslog. See chapter &<<CHAPlog>>& for
details of Exim's logging.
file is used, the &$tls_in_ourcert$& variable is unreliable.
The macro "_TLS_BAD_MULTICERT_IN_OURCERT" will be defined for those versions.
+.cindex SNI "selecting server certificate based on"
If the option contains &$tls_out_sni$& and Exim is built against OpenSSL, then
if the OpenSSL build supports TLS extensions and the TLS client sends the
Server Name Indication extension, then this option and others documented in
.option tls_sni smtp string&!! unset
.cindex "TLS" "Server Name Indication"
+.cindex "TLS" SNI
+.cindex SNI "setting in client"
.vindex "&$tls_sni$&"
If this option is set then it sets the $tls_out_sni variable and causes any
TLS session to pass this value as the Server Name Indication extension to
or need not succeed respectively.
The &%tls_verify_cert_hostnames%& option lists hosts for which additional
-checks are made: that the host name (the one in the DNS A record)
-is valid for the certificate.
+name checks are made on the server certificate.
+.new
+The match against this list is, as per other Exim usage, the
+IP for the host. That is most closely associated with the
+name on the DNS A (or AAAA) record for the host.
+However, the name that needs to be in the certificate
+is the one at the head of any CNAME chain leading to the A record.
+.wen
The option defaults to always checking.
The &(smtp)& transport has two OCSP-related options:
.section "Use of TLS Server Name Indication" "SECTtlssni"
.cindex "TLS" "Server Name Indication"
+.cindex "TLS" SNI
+.cindex SNI
.vindex "&$tls_in_sni$&"
.oindex "&%tls_in_sni%&"
With TLS1.0 or above, there is an extension mechanism by which extra
.cindex "header lines" "verifying header names only ASCII"
.cindex "verifying" "header names only ASCII"
This condition is relevant only in an ACL that is run after a message has been
-received, that is, in an ACL specified by &%acl_smtp_data%& or
-&%acl_not_smtp%&. It checks all header names (not the content) to make sure
+received.
+This usually means an ACL specified by &%acl_smtp_data%& or &%acl_not_smtp%&.
+It checks all header names (not the content) to make sure
there are no non-ASCII characters, also excluding control characters. The
allowable characters are decimal ASCII values 33 through 126.
(eg. is generated from the received message)
they must be protected from the options parsing by doubling:
.code
-verify = sender=${sg{${address:$h_sender:}}{/}{//}}
+verify = sender=${listquote{/}{${address:$h_sender:}}}
.endd
.endlist
.next
.cindex "log" "TLS SNI"
.cindex "TLS" "logging SNI"
+.cindex SNI logging
&%tls_sni%&: When a message is received over an encrypted connection, and
the remote host provided the Server Name Indication extension, the SNI is
added to the log line, preceded by SNI=.