【发布时间】:2013-03-04 18:21:46
【问题描述】:
我正在尝试从 VB.NET 服务器应用程序访问 Google Analytics API。我的应用属于“服务帐户”应用的类别,因此我不会向用户请求凭据 - 该应用有自己的凭据,它用于从 Google 检索数据以显示给用户。
service-account OAuth2 workflow 要求应用程序生成 JWT(JSON Web 令牌)作为对自身进行身份验证的一种方式。我找到了a .NET library 来生成这些令牌,但我对给这个库提供哪个“密钥”有点困惑。在库的文档中,给出的示例键是一个 base-64 外观的数字和大写和小写字母字符串。但我拥有的是一个.p12 私钥文件和相应的密码。如何从这个密钥文件中提取某种文本密钥?
我试图做类似的事情
Dim cert As New X509Certificate2("C:\Users\xxxxx\private.p12", "notasecret")
Dim certData As Byte() = cert.Export(X509ContentType.Pkcs12, "notasecret")
但这给我留下了一个字节数组,而不是一个字符串。我在正确的轨道上吗?
【问题讨论】:
-
我认为您无法从任何东西中提取私钥。
-
这有用吗?使用私钥导出证书:technet.microsoft.com/en-us/library/cc737187(v=ws.10).aspx。对 [证书导出私钥] 进行 Google 搜索会返回许多有希望的结果。
-
@DanielA.White 我不确定你的意思...... PKCS12 是“一种存档文件格式,通常用于直接存储私钥及其 X.509 证书。” (Wikipedia)
-
@JimMischel 谢谢,但那是为了从系统集合中提取证书......我正在尝试以编程方式从文件中提取密钥。多用谷歌搜索也无济于事。
-
好吧,pkcs12 实用程序 (OpenSSL) 可以读取文件并导出密钥。因此,在最坏的情况下,您可以找到该程序的源代码并对其进行逆向工程。但它确实看起来应该回答你的问题:stackoverflow.com/q/5036590/56778。而且,是的,证书是一个字节数组。当您看到文本表示时,它通常是 base64 编码的。
标签: .net vb.net google-api google-analytics-api jwt