将私钥放入带有变量的 application.yml

Posted

技术标签:

【中文标题】将私钥放入带有变量的 application.yml【英文标题】:Put private key in application.yml with variable 【发布时间】:2020-02-24 20:53:21 【问题描述】:

我在我的代码中使用了 RSA 私钥。我已经把它放在spring boot应用程序的application.yml中了。

   privateKey: |
             -----BEGIN RSA PRIVATE KEY----- 
             Key data
             -----END RSA PRIVATE KEY-----

这工作正常。

现在我将密钥外部化到一个秘密文件。所以我创建了一个变量,它将从服务器获取它,如果不使用当前键作为默认值。

   privateKey: $PRIVATE_KEY:|
             -----BEGIN RSA PRIVATE KEY----- 
             Key data
             -----END RSA PRIVATE KEY-----

PRIVATE_KEY 这里是机密文件中的变量。

但它不起作用。我觉得应该是其他格式。

我需要两件事: 1.如何将变量放入yml文件和key的默认值 2. 我应该如何把它放在秘密文件中。

如果您需要我方面的更多详细信息,请告诉我。

【问题讨论】:

$PRIVATE_KEY 而不是 $PRIVATE_KEY: 你应该通过当前的 RSA + ----------BEGIN RSA PRIVATE KEY ------ + PRIVATE_KEY 上的任何东西。 @JonathanJohx 你能详细说明一下吗?我也想为本地放置默认密钥 我添加了答案,完成 【参考方案1】:

首先,您需要直接导出RSA private key。 您有一个包含 RSA 私钥的文件,例如,private-key.pem 包含此 RSA 私钥:

-----BEGIN RSA PRIVATE KEY----- 
MIIEpAIBAAKCAQEA04up8hoqzS1+APIB0RhjXyObwHQnOzhAk5Bd7mhkSbPkyhP1 ... 
iWlX9HNavcydATJc1f0DpzF0u4zY8PY24RVoW8vk+bJANPp1o2IAkeajCaF3w9nf 
q/SyqAWVmvwYuIhDiHDaV2A== 
-----END RSA PRIVATE KEY-----'

然后你可以通过以下方式导出:

export PRIVATE_KEY=`cat private-key.pem`

一旦将其添加到环境变量中,您就可以直接在属性中使用它。

privateKey: $PRIVATE_KEY

【讨论】:

您已经创建了一个秘密文件 private-key.pem 并从 application.yml 中调用它,但是如果我想从我的所有集中配置都可用的秘密文件中读取它怎么办。我的要求是,我想从秘密文件中读取它作为字符串,而不是从 .pem 文件中读取 好的,您能根据您的需要创建一个新问题吗?所以我可以帮你 @VikashkumarYadav 你找到问题的答案了吗 @JonathanJOhx 我也需要回答这个问题 @SudhanshuGupta 提出问题或将我发送到我的个人资料电子邮件中,问候。

以上是关于将私钥放入带有变量的 application.yml的主要内容,如果未能解决你的问题,请参考以下文章

如何将私钥转换为 RSA 私钥?

将私钥存储在数据库中

如何将私钥添加到分发证书?

如何使用 openssl 创建公钥和私钥?

ruby 以太坊将私钥转换为地址(公钥)

将私钥与 .net 中的 X509Certificate2 类关联