【问题标题】:How to sign a message with my https public key certificate?如何使用我的 https 公钥证书签署消息?
【发布时间】:2014-09-09 00:15:32
【问题描述】:

我刚刚为自己的域获得了一个 ssl 证书,它工作正常,但我使用的是 bitcoin payment protocol,我需要在发送消息之前用我的公钥对消息进行签名,但是如何使用 ssl 证书对消息进行签名我应该使用什么工具?

编辑

看来我真正需要做的是使用我的 ssl 证书颁发者的公钥签署消息。

提前致谢:)

【问题讨论】:

    标签: ssl x509certificate sign public-key


    【解决方案1】:

    协议规范一定不正确。数字签名使用您的私钥进行签名。

    您的证书需要伴随消息,并且可能包含在签名中。使用与您的私钥关联的 java.security.Signature 类,可能从您的 KeyStore 加载。

    您可能需要购买签名证书:SSL 证书对于比特币来说可能不够强大。

    使用公钥的签名完全没有价值。任何人都可以做到。你用你的私钥签名。这在法律上等同于你的签名:只有你可以做,任何人都可以通过用你的公钥验证它来检查它,这就是为什么公钥必须伴随签名;同时,他们可以通过必须伴随签名的证书来确定签名是谁的签名。

    否则比特币根本不安全。

    【讨论】:

    • 我问的原因是因为它在签名字段描述中提到 --> digital signature over a hash of the protocol buffer serialized variation of the PaymentRequest message, with all fields serialized in numerical order (all current protocol buffer implementations serialize fields in numerical order) and signed using the 公钥 in pki_data. 另外你知道python的库吗?请问可以吗? :)
    • 错了。使用公钥的签名完全没有价值。任何人都可以做到。你用你的私钥签名。这在法律上等同于您的签名:只有您可以这样做,任何人都可以通过用您的公钥验证它来检查,这就是为什么公钥必须伴随签名的原因;同时他们可以通过必须伴随签名的证书来确定谁的签名。我无法为您提供有关 Python 的建议。
    • 我对此毫无疑问。措辞应该是“私人”而不是“公共”。
    • 看来是这样。我一开始不敢相信它,因为它指的是比特币,它多次声明“公钥”。我已经在github上指出了。
    【解决方案2】:

    谜团解开,消息将使用比特币公钥和signmessage "bitcoinaddress" "message"比特币命令进行签名。

    【讨论】:

    • 那么消息没有签名,会被加密。那是有区别的!
    • 事实证明这毕竟不是正确答案,因为digital signature over a hash of the protocol buffer serialized variation of the PaymentRequest message and signed using the 公钥 in pki_data.
    猜你喜欢
    • 2020-03-27
    • 1970-01-01
    • 1970-01-01
    • 2011-06-01
    • 2017-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-05
    相关资源
    最近更新 更多