エンジョイ 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を設定しましょう。
それでは、楽しいAWSライフを!