Java中的自签名证书 - 签名XML文件

时间:2012-03-01 16:34:00

标签: java xml signature

我有一个Java应用程序,它收集数据,将其写入XML文件并通过邮件发送此XML文件。此应用程序在许多不同的计算机上运行(不在我的范围内)。然后有另一个应用程序接收收到的XML文件并将数据插入数据库(此应用程序在我自己的服务器上运行)。到目前为止,我不得不相信,数据没有被更改,并且XML文件来自可信来源。

现在我想到了使用Java-Keystore签署XML。到目前为止有效的是:

  • 我可以使用keytool创建一个密钥对。
  • 然后,我使用创建的私钥使用Java的XML数字签名API(http://java.sun.com/developer/technicalArticles/xml/dig_signature_api/)对XML文件进行签名。
  • 我也可以验证签名文件。

我现在的问题是,如何确保数据真正来自可信系统。我的意思是,到目前为止我所做的只是确保数据在签名时和验证时之间没有被修改。我想要的是为每个发送数据的系统颁发证书,并且只发给我自己发出的信任证书。但是怎么做呢?

1 个答案:

答案 0 :(得分:1)

您需要成为客户的CA(证书颁发机构)。每个客户端都需要提供自己的客户端证书请求,由您签名,然后在发送之前用它们对每个文档进行签名。这是典型的PKI管理问题,它产生了更优雅地解决这个问题的产品,但你必须付出代价。