基于 Java 证书的身份验证

标签 java ssl ssl-certificate

我有一个 thrift 端点,该端点是由已离开我们公司的人创建的。他们通过客户端证书实现身份验证,但我很难理解它是如何工作的。有谁知道有关此主题的教程或方法。

我真正拥有的只是一个示例客户端类。以下是我需要帮助的事项列表:

  1. 服务器证书和客户端证书能否同时包含在同一个信任库中
  2. 如何创建新的客户端证书?
  3. 如何将该客户端证书添加到服务器信任库?
  4. 是否需要设置客户端信任库,并设置java信任(假设服务器是自签名端点)
  5. 下面的错误是什么意思?

    错误[com.cada.CadaDaoTest][main] - 错误: org.apache.thrift.transport.TTransportException:javax.net.ssl.SSLHandshakeException:收到致命警报:bad_certificate

最佳答案

信任库(在 Tomcat 上它是为 server.xml 中的 SSL 连接器配置的)可以保存客户端证书的证书链的根,而不是证书本身。也就是说,创建证书时,它由 CA - 证书颁发机构签名。如果 CA 证书受信任,则 CA 签发的所有证书也受信任。

您可以使用 key 工具(在 jdk/bin/ 中)或 openssl 创建证书.有用于此的 GUI,例如 portecle .

The tomcat ssl tutorial可能会有帮助。

关于基于 Java 证书的身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2759911/

相关文章:

ssl - 对于哪种类型的 SSL 证书,您需要专用 IP 地址?

php - 通过 ssl 下载非常慢的 Nginx

c# - 无法信任 ASP.NET Core 中的本地 HTTPs 证书

google-chrome - chrome - 从 jks keystore 导入后 ssl 证书不显示

ssl - 使用服务器 key 签署客户端证书时出现无法加载证书错误

java - Java Swing 中的 PropertyGrid

java - 使用 Intent 发送和接收 Arraylist?安卓

php - Soapclient https 请求

java - 您可以在数据库表或类似表上放置一个监听器吗

java - 如何返回时间最长的人对应的索引