【问题标题】:How can I generate the private and public certificates for JWT with RS256 algorithm?如何使用 RS256 算法为 JWT 生成私有和公共证书?
【发布时间】:2017-03-28 12:17:52
【问题描述】:

我想在 .NET 中使用带有 RS256 算法的 JWT。

我使用了库System.IdentityModel.Tokens.Jwt。该库支持 RS256 算法。

如何在 Windows 上生成私有和公共证书?

【问题讨论】:

    标签: .net rsa jwt


    【解决方案1】:

    您可以通过安装和使用 Cygwin 软件包来生成它们:http://www.cygwin.com

    使用以下命令:

    1- 生成私钥

    openssl genrsa -aes256 -out private_key.pem 2048

    2- 生成公钥

    openssl rsa -pubout -in private_key.pem -out public_key.pem

    您可以使用指定的库 (System.IdentityModel.Tokens.Jwt) 来生成您的断言 JWT。此处提供了一个示例:https://vosseburchttechblog.azurewebsites.net/index.php/2015/09/19/generating-and-consuming-json-web-tokens-with-net/

    【讨论】:

    • 我可以看到,在使用它的演示中,用于签名和验证的证书是格式 - .pfx 或 .p12。是否也可以创建这些格式?
    • 是的,我认为这是可能的,请参阅以下参考资料:ssl.com/how-to/create-a-pfx-p12-certificate-file-using-openssl
    • 谢谢@mtheriault,我想问一下如何使用这些证书。如果我创建这些证书,我会得到两个文件?如果我想创建 JWT 令牌,我必须使用 pfx 格式的私钥吗?并且为了验证使用公钥 i 格式 pfx 吗?感谢您的解释。
    • 您是否使用外部服务并且想要执行 JWT 身份验证?通常,服务(例如 REST API)知道Public Key。在您这边,您需要构建一个 JWT 断言并使用 Private Key 对其进行签名。给我更多关于你想要完成的细节。
    • 我想创建 api - 端点在哪里 - “登录” -> 你输入用户名和密码,应用程序取回 JWT - 可能用私钥签名?我希望能够将可能的公钥提供给另一个应用程序。另一个应用程序将能够通过公共令牌验证此令牌。这就是我想做的。 ;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-09
    • 2019-04-06
    • 2010-10-29
    • 2015-06-16
    • 2022-12-16
    • 2019-10-08
    • 2018-06-04
    相关资源
    最近更新 更多