我有一个要求,代表客户创建数字签名使用SignServer。我对两个问题有点困惑。
提前谢谢
发布于 2016-11-28 08:15:59
( 1)是否每个客户端都需要一个唯一的证书,还是每个客户端都可以使用一个证书?
我不知道这个项目,但读了文档
SignServer是一个服务器端签名服务器。每个用户的单独签名密钥或组织的一个中心密钥
所以,取决于你的需要。如果要识别每个签名者,请使用单独的证书。在其他情况下,使用中央证书。但不是说证书存储在中央服务器中。它们不分发给用户。您需要一个中央存储库。建议使用加密硬件(HSM)。您需要为用户生成凭据,以便他们可以使用证书。
2)我是否可以使用SignServer创建数字签名证书,因为我在它们的文档中找不到类似的东西。如果不是,建议从服务器端应用程序创建数字签名证书的方法是什么?
通常,签名解决方案不与公钥证书颁发机构耦合以颁发证书。看一下这个链接
当然,您也可以使用邦西城堡构建自己的集成解决方案。根据要颁发的证书数量和CA的复杂性选择它。
发布于 2016-11-30 12:34:11
这个问题也在SignServer论坛中得到了回答。
多个签名者可以共享相同的密钥对和证书。只需将它们指向相同的密码令牌和密钥,并为它们配置相同的证书。 证书不打算由SignServer创建。生成密钥对之后,您可以获得一个证书签名请求(CSR),您可以将该请求带到证书颁发机构(CA),它可以为您颁发证书。 为了进行测试,或者在您的组织中没有CA的情况下,如果您不想从商业CA购买证书,您可以使用EJBCA (ejbca.org)或OpenSSL这样的软件来建立您自己的PKI。
发布于 2018-04-14 17:31:00
由于签名必须通过网络传递,所以我们转换成字符串,但由于安全性的原因,不能只使用原始字节数组的字符串。因此,我们对字节数组进行操作,并将其转换为不同的字符串。我们不应该发送新字符串(字节[]签名),我们应该发送新字符串(Base64.encode(byte[]签名))
公式是: data.getByte() +私钥à签名
你可以从中学到更多,链接是非常有帮助的。http://javaint4bytes.blogspot.com/2018/04/java-signature-certificates.html
https://stackoverflow.com/questions/40809425
复制相似问题