AWS Secrets Manager 中文件的正确 PEM 格式

D S*_*D S 6 pem amazon-web-services

我正在尝试在 AWS Secrets Manager 中上传密钥。该文件的格式为

{
 "privateKeyPassword": "testpassword",
 "certificate": "-----BEGIN CERTIFICATE-----
MIIE5DCCAsygAwIBAgIRAPJdwaFaNRrytHBto0j5BA0wDQYJKoZIhvcNAQELBQAw
...
j0Lh4/+1HfgyE2KlmII36dg4IMzNjAFEBZiCRoPimO40s1cRqtFHXoal0QQbIlxk
cmUuiAii9R0=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFgjCCA2qgAwIBAgIQdjNZd6uFf9hbNC5RdfmHrzANBgkqhkiG9w0BAQsFADBb
...
rQoiowbbk5wXCheYSANQIfTZ6weQTgiCHCCbuuMKNVS95FkXm0vqVD/YpXKwA/no
c8PH3PSoAaRwMMgOSA2ALJvbRz8mpg==
-----END CERTIFICATE-----",
 "privateKey": "-----BEGIN ENCRYPTED PRIVATE KEY-----
MIIFKzBVBgkqhkiG9w0BBQ0wSDAnBgkqhkiG9w0BBQwwGgQUiAFcK5hT/X7Kjmgp
...
QrSekqF+kWzmB6nAfSzgO9IaoAaytLvNgGTckWeUkWn/V0Ck+LdGUXzAC4RxZnoQ
zp2mwJn2NYB7AZ7+imp0azDZb+8YG2aUCiyqb6PnnA==
-----END ENCRYPTED PRIVATE KEY-----"
}  
Run Code Online (Sandbox Code Playgroud)

这与此处的文档完全匹配。但是当我运行 lambda 函数时,我在配置中收到错误:

Last processing result: PROBLEM: Certificate and/or private key must be in PEM format. 
Run Code Online (Sandbox Code Playgroud)

我认为加密密钥有问题,我需要在秘密中添加私钥密码。我不确定该怎么做,或者这是否是问题所在?我该如何纠正这个问题?

小智 3

正确的格式是格式正确的 JSON,并且 PEM 值中的每个换行符应替换为字符\n,如下所示:

{
  "privateKeyPassword": "testpassword",
  "certificate": "-----BEGIN CERTIFICATE-----\nMIIE5DCCAsygAwIBAgIRAPJdwaFaNRrytHBto0j5BA0wDQYJKoZIhvcNAQELBQAw\n...\nj0Lh4/+1HfgyE2KlmII36dg4IMzNjAFEBZiCRoPimO40s1cRqtFHXoal0QQbIlxk\ncmUuiAii9R0=\n-----END CERTIFICATE-----",
  "privateKey": "-----BEGIN ENCRYPTED PRIVATE KEY-----\nMIIFKzBVBgkqhkiG9w0BBQ0wSDAnBgkqhkiG9w0BBQwwGgQUiAFcK5hT/X7Kjmgp\n...\nQrSekqF+kWzmB6nAfSzgO9IaoAaytLvNgGTckWeUkWn/V0Ck+LdGUXzAC4RxZnoQ\nzp2mwJn2NYB7AZ7+imp0azDZb+8YG2aUCiyqb6PnnA==\n-----END ENCRYPTED PRIVATE KEY-----"
}
Run Code Online (Sandbox Code Playgroud)