当我在 GCP 上为服务帐户创建凭据时,我下载了如下所示的 JSON:
{
"type": "service_account",
"project_id": "project_id",
"private_key_id": "35a68...478c56",
"private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvQI...njdCwu8=\n-----END PRIVATE KEY-----\n",
"client_email": "client@project_id.iam.gserviceaccount.com",
"client_id": "107...764",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/client%40project_id.iam.gserviceaccount.com"
}
如果我想为服务帐户创建新密钥,我可以上传现有的公钥:
<块引用>从现有密钥对上传公钥证书。公共证书需要采用 RSA_X509_PEM 格式。
我可以将上述私钥转换为 RSA X509 PEM 格式的公钥吗?
显然是 it is technically possible to create a public key from a private key。我试过了:
openssl rsa -in private_key.key -pubout
(文件 private_key.key 包含上述 JSON 中“private_key”的值。用换行符代替 \n)
该命令生成一个文本,但 GCP 抱怨:“输入的值不是有效的 RSA_X509_PEM 格式的密钥。”。
我对 bash 或 Python(或两者)的转换感兴趣。