我正在开发 Java 网络服务并使用 Tomcat 服务器。由于此应用程序是 B2B,因此我们需要客户端身份验证。我们正在使用 openssl 来创建证书。我们将为每个用户创建一个自签名证书,并通过邮件或其他方式发送。现在问题来了,当客户端通过安全连接调用服务器时,客户端应该发送服务器提供的证书。我希望客户端可以发送证书进行客户端身份验证,而无需在客户端执行任何代码。有什么办法可以做到这一点?谁能告诉我实现这个所需的确切步骤?
最佳答案
For each user we will create a self signed certificate and we will send it through mail or something.
停在那里。这已经很不安全了。这意味着您拥有用户的私钥。用户,而且只有用户,应该拥有用户的私钥。用户应该生成自己的私钥,如果您坚持使用他自己的自签名证书,或者最好还是让 CA 签名。如果您出于任何原因需要它,他应该将它发送给您。
你所做的完全是倒退,从法律/安全的角度来看完全没有值(value)。事实上,它包含主要的法律风险,您需要在继续操作之前了解这些信息。其中之一是完全丧失用户交易的不可否认性。这足以关闭您的业务。
关于ssl - 使用 SSL 的客户端身份验证,无需任何客户端代码实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10468334/