上传公钥至Google Email Audit API遇EncryptionPublicKeyInvalidFormat错误
解决Google Email Audit API公钥上传错误(Error Code 1411)
你遇到的EncryptionPublicKeyInvalidFormat错误(错误码1411),核心原因是上传的公钥包含了PGP块标记、版本注释和换行符,不符合API的格式要求。
Google Email Audit API对上传的公钥有严格的格式规定:
- 必须是原始OpenPGP公钥的Base64编码字符串
- 不能包含PGP块的头部
-----BEGIN PGP PUBLIC KEY BLOCK-----和尾部-----END PGP PUBLIC KEY BLOCK----- - 不能包含版本注释行(比如
Version: GnuPG v1.4.10 (GNU/Linux)) - 必须是连续的单行字符串,不能有任何换行或空行
具体修复步骤:
- 从你的PGP公钥中移除所有非核心Base64内容:
- 删除开头的PGP块头、结尾的PGP块尾
- 删除版本注释行
- 删除所有换行符和空行
- 把处理后的纯Base64字符串作为
publicKey属性的值,放入请求XML中。
以你提供的公钥为例,处理后的正确内容应该是:
mQENBErWaD4BCACt2ngfs6/+QOGYbxNbc3gLnXHtqp7NTTXNW4SJo+/A1oUZoGxAQx6zFXhQ/8MXW66+8STS1YqNJOARFtjbIKPwjrdcukdPzYVKGZre0RaxCnMyCV+6F4YNQD1UegHTu2wCGR1uiYOfLxUa7/do6s31WRTH8vbtiPY9/6obEIxDjDzKIqYOrvRDWqALBYklOkJ3Hbgfyl42EsnLiAhS+dMs2PCDi2X0ZJCPZ8eTjLsdAtqVZJ+RWC1J3UDuFfmcpsDYRtUL9w6YMtlapC+9mmJ3ABEBAAG0V0Rhc2hlciBUZXN0IChUdGVyMkBkYXNoZXItaHlkLXRlc3QuY29tPokBOAQTAQIAIgUCStZoPgIbDQYLCQgHk19QckTpwBdskEYumFvmWve5UX2SVV7fzOC0nZtgFxtZGlJhGmjsA3rxFTlb+IraWZayXCWYiCzd7m9z5/KyGD2GFTK/94mdm25N6GXh/b35pIFZXBI/rZjrYrhYRBFuGtzGFIw9AAnFyUzEUUVfPWUtBe5yHMW54C60nHk5xYIa6qFhiLp4PYqZCrYX1iIsfRROFA==
快捷生成符合要求的公钥字符串
如果你用GnuPG生成密钥,可以直接用以下命令提取符合要求的内容:
gpg --export -a "你的密钥ID/邮箱" | grep -v "BEGIN PGP" | grep -v "END PGP" | grep -v "Version" | tr -d '\n'
这条命令会自动移除所有多余内容,输出单行的纯Base64公钥字符串,直接用于API请求即可。
内容的提问来源于stack exchange,提问作者Thomas Rosenstein
相关产品推荐
相关产品推荐

