Como configurar um if aninhado para um certificado de exim tls?

2

No início, minha configuração para o certificado exim tls era assim:

tls_certificate = ${if exists{/etc/exim4/ssl/${tls_sni}.crt}{/etc/exim4/ssl/${tls_sni}.crt}{/etc/exim4/ssl/exim.crt}}
tls_privatekey = ${if exists{/etc/exim4/ssl/${tls_sni}.key}{/etc/exim4/ssl/${tls_sni}.key}{/etc/exim4/ssl/exim.key}}

E funciona.

Estou tentando criar uma condição aninhada:

tls_certificate = ${if exists{/etc/exim4/ipssl/${received_ip_address}.crt}{/etc/exim4/ipssl/${received_ip_address}.crt}{${if exists{/etc/exim4/ssl/${tls_sni}.crt}{/etc/exim4/ssl/${tls_sni}.crt}{/etc/exim4/ssl/exim.crt}}}
tls_privatekey = ${if exists{/etc/exim4/ipssl/${received_ip_address}.key}{/etc/exim4/ipssl/${received_ip_address}.key}{${if exists{/etc/exim4/ssl/${tls_sni}.key}{/etc/exim4/ssl/${tls_sni}.key}{/etc/exim4/ssl/exim.key}}}

Esta configuração passa no teste sintático (exim -bV), mas o servidor fecha a conexão tcp imediatamente após qualquer cliente se conectar com a mensagem no paniclog:

2017-08-01 07:14:56 expansion of tls_certificate failed: missing or misplaced { or }

Eu pensei que não posso usar condições aninhadas if, mas eu achei isso na configuração padrão do exim:

REMOTE_SMTP_RETURN_PATH=${if match_domain{$sender_address_domain}{+local_domains}{${sender_address_local_part}@DCreadhost}{${if match_domain{$sender_address_domain}{ETC_MAILNAME}{${sender_address_local_part}@DCreadhost}fail}}}

Por que as condições aninhadas não funcionam no meu caso? Existe uma maneira de fazer condições semelhantes para os tls certs?

    
por itsme 01.08.2017 / 10:06

1 resposta

1

Eu acredito que você está perdendo um colchete de fechamento. Dica: tente escrever a condição assim ao testá-la para facilitar a depuração quando problemas como esse surgirem:

${
  if exists{/etc/exim4/ipssl/${received_ip_address}.crt} {
    /etc/exim4/ipssl/${received_ip_address}.crt
  } {
    ${
      if exists{/etc/exim4/ssl/${tls_sni}.crt} {
        /etc/exim4/ssl/${tls_sni}.crt
      } {
        /etc/exim4/ssl/exim.crt
      }
    }
  }
} <--
    
por 01.08.2017 / 10:42

Tags