【问题标题】:How should an RSA Public Key be exposed over HTTP?应该如何通过 HTTP 公开 RSA 公钥?
【发布时间】:2013-10-31 05:59:15
【问题描述】:

我们需要将 RSA 公钥公开为 HTTP 资源 - 所以 http://myhost.com/publickeys/akeyid 返回一个公钥。

我想用正确的 Internet 媒体类型返回它。那应该是什么?我承认我发现加密 RFC 相当难以理解。

另外,我如何使用 java.security 标准库轻松地从该格式转换为该格式?

(使用 java.security.RSAPublicKey.getEncoded() 序列化为字节和使用 java.security.spec.X509EncodedKeySpec 反序列化这些相同的字节很容易往返于 https://www.rfc-editor.org/rfc/rfc3280#section-4.1 中定义的 SubjectPublicKeyInfo 字节数组; 但我找不到该格式的注册媒体类型,这表明我应该使用其他格式(x.509 证书?)。但后来我很难弄清楚如何进行翻译。)

谢谢。

【问题讨论】:

    标签: java http rsa public-key-encryption


    【解决方案1】:

    另一种方法是将 PKCS#1 格式的 RSA 公钥编码为 PEM 文件,然后使用 MIME 类型:

       "application/x-pem-file"
    

    参考文献:

    注意:“application/x-pem-file”没有注册……显然! ...但在许多“文件类型”目录中都有引用。


    您可能应该通过 HTTPS 传递密钥...

    【讨论】:

    • application/x-pem-file 看起来是我们将要获得的最接近的文件,谢谢。可惜没有二进制 DER 编码的公钥的媒体类型,因为这对我们来说是理想的。我想既然 PEM 不是标准,也没有什么能阻止我们定义自己的......
    • ... 或者你可以使用 application/octet-stream
    猜你喜欢
    • 2017-02-06
    • 2020-12-19
    • 2010-11-21
    • 2014-11-27
    • 1970-01-01
    • 2017-12-23
    • 2015-10-19
    • 1970-01-01
    • 2019-08-15
    相关资源
    最近更新 更多