我正在为我的电子邮件客户端应用程序使用 k9mail(Android) 开源。目标是,用户只能通过 SSL 安全访问我的电子邮件服务器。所以我需要在我的电子邮件客户端中安装 SSL 证书。我想在客户端安装 SSL 证书的最佳方式是什么?
(即)当客户端与服务器通信时从我的服务器安装它(或)当我开发应用程序时将它安装在我的客户端中。你能给出你的建议吗?
简短回答:开发时将其安装/包含在客户端应用程序中。当客户端与其通信时,您不应该从服务器安装它 - 这不是正确的方法(安全方面)。
长答案:服务器证书必须以安全的方式传输到客户端。那是为了避免攻击者用他自己的证书替换它,以便稍后它会假装他,攻击者,是邮件服务器(中间人攻击)。如果您只是在客户端与服务器通信时在客户端上下载证书,我们无法证明您认为是您的服务器的实体确实是您的服务器,除非您已经与它建立了一个安全(加密/认证)通道(在这种情况下如果您已经拥有该安全连接,则无论如何都不需要您的证书)。
因此,您必须事先生成服务器证书并将其包含在应用程序中。另一种方法是通过物理介质或其他安全通道传输它(这实际上没有意义..)