Keystore 在spring云配置服务器上使用非对称密钥作为PEM编码的文本

Keystore 在spring云配置服务器上使用非对称密钥作为PEM编码的文本,keystore,spring-cloud-config,Keystore,Spring Cloud Config,我基于以下github示例创建了一个配置服务器: 为了指向我的本地git存储库,我修改了它,并在我的环境中安装了全强度JCE 使用密钥库jks文件的非对称密钥,加密和解密功能按预期工作:使用/encrypt端点创建加密值;将其纳入我的git回购(testproperty);从/{app}-{env}.yml端点获取解密的密钥 spring cloud config文档表示可以在encrypt.key中将非对称密钥设置为PEM编码的文本值: 我使用以下代码将keystore.jks文件转换为PE

我基于以下github示例创建了一个配置服务器:

为了指向我的本地git存储库,我修改了它,并在我的环境中安装了全强度JCE

使用密钥库jks文件的非对称密钥,加密和解密功能按预期工作:使用
/encrypt
端点创建加密值;将其纳入我的git回购(
test
property);从
/{app}-{env}.yml
端点获取解密的密钥

spring cloud config文档表示可以在
encrypt.key
中将非对称密钥设置为PEM编码的文本值:

我使用以下代码将keystore.jks文件转换为PEM文件:

  • keytool-importkeystore-srckeystore keystore.jks-destkeystore key.p12-srcalias test-srcstoretype jks-deststoretype pkcs12

  • openssl pkcs12-in key.p12-out key.pem

  • 我更改了
    bootstrap.yml
    文件,并包括
    key.pem
    文件的内容:

    encrypt:
      failOnError: false
      key: |
        Bag Attributes
            friendlyName: test
            localKeyID: 54 69 6D 65 20 31 35 33 37 32 31 39 34 35 38 32 30 31 
        Key Attributes: <No Attributes>
        -----BEGIN ENCRYPTED PRIVATE KEY-----
        MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIFxcOg3aNibsCAggA
        (...)
        0m6f+FvV3glvSE4C86VeNwKUdiEMKtzf5A/Ie9B0jhjIP/R0n4tSuQNNNRfetJxB
        3mk=
        -----END ENCRYPTED PRIVATE KEY-----
        Bag Attributes
            friendlyName: test
            localKeyID: 54 69 6D 65 20 31 35 33 37 32 31 39 34 35 38 32 30 31 
        subject=/C=Unknown/ST=Unknown/L=Unknown/O=Unknown/OU=Unknown/CN=Unknown
        issuer=/C=Unknown/ST=Unknown/L=Unknown/O=Unknown/OU=Unknown/CN=Unknown
        -----BEGIN CERTIFICATE-----
        MIIDdzCC
        (...)
        aMgI8QW+kQ
        -----END CERTIFICATE-----
    
    加密:
    失败者:错误
    关键:|
    行李属性
    friendlyName:测试
    localKeyID:54 69 6D 65 20 31 35 33 37 32 39 34 38 32 30 31
    关键属性:
    -----开始加密私钥-----
    MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIFxcOg3aNibsCAggA
    (...)
    0m6f+FV3GLVSE4C86VENWKUDIEMKTZF5A/Ie9B0jhjIP/R0n4tSuQNNNRfetJxB
    3mk=
    -----结束加密私钥-----
    行李属性
    friendlyName:测试
    localKeyID:54 69 6D 65 20 31 35 33 37 32 39 34 38 32 30 31
    subject=/C=Unknown/ST=Unknown/L=Unknown/O=Unknown/OU=Unknown/CN=Unknown
    发卡机构=/C=Unknown/ST=Unknown/L=Unknown/O=Unknown/OU=Unknown/CN=Unknown
    -----开始证书-----
    MIIDdzCC
    (...)
    aMgI8QW+kQ
    -----结束证书-----
    
    现在它无法解密
    test
    属性,错误如下:

    无法解密密钥:sftp.privateKeyPassphrase(类java.lang.IllegalArgumentException:输入中的非十六进制字符:…)

  • 这应该像我预期的那样工作,还是需要重新生成加密值
  • 如果后者为真,我的密钥不是被用作对称密钥吗
  • 我希望避免使用配置文件,并使用环境变量设置所有配置文件。还有其他可能性吗