AWS CLI acm export-certificate でInvalid base64エラー

記事タイトルとURLをコピーする

エンジョイ AWS!
サーバーワークス エンジニアの伊藤Kです。

個人的に、ほぼ1年ぶりに投稿します。
この間、何をやっていたのかというと、AWS認定資格「ソリューションアーキテクト – プロフェッショナル」の受験準備、受験をしていました。
さすがプロフェッショナルは難しいです。学習時間がうまく確保できなかった事情はあったものの、学習を始めてから1年近くかかりました。
しかし、サーバーワークスにはこの資格に合格した社員が49名(2020/10現在)、
また、12冠フルコンプリートが5人います。
まだまだ精進せねば。

久しぶりの肩慣らし、ではありませんが小ネタ、
しかしググってもなかなか解決方法にたどりつかなかったものについて書きます。


ACM のプライベート証明書エクスポートでエラー

弊社高橋の記事 を元に、
このコマンドを実行したところエラーが。

aws acm export-certificate --certificate-arn $CertArn --profile "xxxxx" --passphrase $pass

エラーメッセージはシンプルです。

Invalid base64

Windows 10 のPowerShellで実行しました。AWS CLIは当然インストール済み、
しかも、半年前に実行したときは正常に実行できていたのに。


AWS CLIのバージョン違いが原因

原因は、AWS CLIのバージョン違いでした。
AWS CLI バージョン 2 はデフォルトで base64 エンコードされた文字列としてバイナリパラメータを渡すようになりました

確かに、ここ半年の間で、AWS CLIをバージョンアップしたな・・・
解決法も、上記の記事に記載されている通り、

プロファイルの ~/.aws/config ファイルで次の行を指定することで、 AWS CLI バージョン 1 の動作に戻すように AWS CLI バージョン 2 に指示できます。

cli_binary_format=raw-in-base64-out

AWS CLIの設定ファイルに、1行を追加してから実行したところ、エラーが解消されました。

[profile xxxxx]
region = ap-northeast-1
cli_binary_format = raw-in-base64-out

調べてもなかなか出てこなかった

これ、「aws acm export-certificate Invalid base64」とキーワード検索して調べていたのですが、なかなかたどりつかず、
「import-certificate」だと出てきますが、対処法が「file://〜」を「fileb://〜」にする、というものが多い。
export-certificate には「file://〜」はないしなあ、とさらにいろいろ探して、
公式記事のリンクを載せてくれていた記事に救われました。
この記事が、export-certificateでのエラーで困っている人の救いになれば幸いです。

これだけでは何なので、上記コマンドでもう一つ、一瞬ひっかかるポイントを載せます。

コマンドを実行したときに

is not a valid ARN

のエラーが出た場合は、参照するARNが違っています。
CAのARNではなく、Certificate ManagerのARNを設定しましょう。

f:id:swx-kenichi-ito:20201027143253p:plain f:id:swx-kenichi-ito:20201027143312p:plain

それでは、楽しいAWSライフを!

伊藤K (記事一覧)

SRE部

おっさんエンジニア。

甘いお菓子が大好きですが、体重にDirect Connectなので控えています。

「エンジョイ AWS」を合言葉に、AWSを楽しむことを心がけています。