我的上下文是我使用jwt令牌流在bitbucket管道中连接到SF。我已经能够根据需要正确地生成证书和密钥等。我测试了钥匙,它工作得很好。下一步是增加安全性,并且不想将我的密钥存储在项目中,因此我像这样加密了密钥:
openssl enc -nosalt -aes-256-cbc -in server.key -out server.key.enc -base64 -K <key-value> -iv <iv-value>
现在我将加密的server.key.enc文件存储在我的项目中,然后将密钥和iv值存储为受保护的bitbucket变量(DECRYPTION_KEY和DECRYPTION_IV)
现在在登录到org之前,我需要解密server.key.enc到服务器。密钥,以便我可以使用此文件登录,但当使用以下cmd这样做时,它不能正常工作:
openssl enc -nosalt -aes-256-cbc -d -in key/server.key.enc -out key/server.key -base64 -K $DECRYPTION_KEY -iv $DECRYPTION_IV
服务器。密钥文件只有页眉格式错误,但页脚生成良好
:
-----BEGIN RSA PRIVATE KEY-----
...........
-----END RSA PRIVATE KEY-----
有:
-��}�5��n�S�*��RIVATE KEY-----
...........
-----END RSA PRIVATE KEY-----
因此,我的管道以以下错误结束:ERROR running auth:jwt:grant:我们遇到了一个JSON web令牌错误,这可能不是Salesforce CLI的问题。这里是错误:错误:0909006C:PEM例程:get_name:no start line我好像在某个地方漏掉了一个小参数,但是找不到在哪里。
根据Topaco的建议,我尝试了另一种更简单的加密和解密方法:
加密:
openssl aes-256-cbc -a -salt -pbkdf2 -in server.key -out server.key.enc -k <password>
解密:
openssl aes-256-cbc -d -a -pbkdf2 -in server.key.enc -out server.key -k <password>
这里提到的:如何使用OpenSSL加密/解密文件?
效果更好