Dovecot 仅要求远程连接使用客户端证书

Dovecot 仅要求远程连接使用客户端证书

经过一番努力,我成功配置了 Dovecot,要求用户登录时提供客户端证书,而且效果很好。

但是,我还想设置一个 Web 邮件解决方案 (Roundcube),它需要能够通过 IMAP 进行连接,但似乎无法发送客户端证书。我将其配置为使用端口 143(未加密),因为连接发生在受信任的网络上,考虑到这一点,我将我的本地网络添加到 Dovecot 中,login_trusted_networks以便纯文本身份验证也能正常工作。

不幸的是,当 Roundcube 连接时,即使连接没有启用 SSL,仍然会要求提供客户端证书。

我已经使用以下命令限制了客户端证书的要求以避免出现 Postfix 问题:

protocol !smtp {
    ssl_ca = </etc/dovecot/ca/dovecot-ca.pem
    ssl_verify_client_cert = yes
    ssl_cert_username_field = commonName

    auth_ssl_require_client_cert = yes
    auth_ssl_username_from_cert = yes
}

但是我不知道如何进一步将其限制为仅加密连接?我不允许远程访问未加密的协议,除了在服务器之间发送电子邮件所需的端口 25。

需要注意的是,保护 IMAPS 连接的相同证书也用于客户端身份验证nginx,因此 Web 邮件已受到证书的限制,尽管我可能会切换到其他第二层身份验证以实现移动性(例如某种双因素 API)。

答案1

您可以配置 Roundcube 以向 Dovecot 提供客户端证书。在 Roundcube 的 config.inc.php 中:

$config['default_host'] = 'ssl://localhost';

$配置['默认端口'] = 993;

// IMAP 套接字上下文选项

// 看https://php.net/manual/en/context.ssl.php

// 通过 SSL 提供客户端证书,这是 Dovecot 所要求的。

$config['imap_conn_options'] = 数组(

'ssl' => 数组(

 'local_cert'   => '/Path/To/YourRoundcubeClient.crt',

 'local_pk'     => '/Path/To/YourRoundcubeClient.key'

),

(英文):

相关内容