繁体   English   中英

基于自签名证书的身份验证

[英]Self signed Certificate Based Authentication

我已经基于Java中的客户端服务器通信启动了一个项目。 我正在做的是客户端和服务器具有自己的自签名证书。 在初始通信中,客户端和服务器都将交换其证书。 服务器必须验证客户端证书,并应授予身份验证。 我打的是什么服务器可以验证或使特定客户端无效..? 我无法从这里继续。 因此,请其中任何人可以简要说明一下? 如果可能的话在Java中的一些伪代码。

不能通过常规的PKI方法来验证自签名证书-即检查证书链,直到信任锚,不在CRL上。

使用自签名证书时,初始配置通常会涉及使用带外机制来交换证书和指纹以进行验证。 然后可以将这些证书添加到受信任的存储中,并由您的应用程序使用。 当然,每次更新任何自签名证书时,都需要重复此带外过程。 对于需要安全通信的几个应用程序来说,这种方法可能还可以,但是很明显,自签名证书方法无法扩展。

另一种方法是使用诸如openssl包装器CA.pl之类的内容来设置迷你CA并从中颁发客户端证书。 这些发行的证书随后将全部链接到一个根。 仍然必须将此根安全地传达给所有依赖方,但是根CA发出的其他证书都不需要。

更新:(针对下面评论中的问题)

以下是获取证书指纹的几种方法:

  • 使用openssl:openssl x509 -sha1 -in cert.pem -noout -fingerprint
  • 在Windows上,将其另存为.cer文件,然后双击它,然后转到“详细信息”选项卡
  • 使用此工具: 在线证书解码器

为了进一步提高安全性,证书所有者可以使用与证书检查器不同的工具。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM