AWSに証明書をアップロードするときに、エラーが出た。
aws iam upload-server-certificate --server-certificate-name mycert --certificate-body file://cert.pem --private-key file://private.key --certificate-chain file://chain.pem --path /mycert/
An error occurred (MalformedCertificate) when calling the UploadServerCertificate operation: Unknown
ググると公式ドキュメントが出てくる https://aws.amazon.com/jp/premiumsupport/knowledge-center/import-ssl-certificate-to-iam/
曰く
API リクエストのパラメータ certificate-body、certificate-chain、private-key に「file://」プレフィックスを指定する必要があります。それ以外の場合、リクエストは「MalformedCertificate:Unknown」(MalformedCertificate: 不明) というエラーメッセージで失敗します。
ちゃんとfile://
プレフィックスついてるのになあ。
CLIツールのバージョン上げたが効果なし。
別のドキュメント読むと https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html
The private key must be unencrypted. You cannot upload a private key that is protected by a password or passphrase. For help decrypting an encrypted private key, see Troubleshooting.
なるほど、パスフレーズ付きの秘密鍵は使えないのね。前にもあったようななかったような。忘れてた。後で探せるようにブロブに書いておくために今に至る。
パスワードついてる場合は次のコマンドでパスワード無しに変換する
openssl x509 -inform DER -in Certificate.der -outform PEM -out Certificate.pem