p12ファイル(PKCS#12)をACMに登録してみた

2022.03.15

こんにちは、リサリサです。

p12ファイルをACMに登録したので、記事にしておきます。

p12(PKCS#12)とは?

Personal Information Exchange Syntax Standard という規格で定義されたフォーマットのファイルです。Windowsに証明書をインポートする際に使ったりします。

秘密鍵、証明書、中間CA証明書(ある場合)を含んでいますが、テキストエディタなどで開く事が出来ず、このままでは ACM にインポートできません。

やりたいこと

p12形式の証明書をACMに登録したい。

やってみた

秘密鍵、証明書、中間CA証明書を取り出す

ACMの登録には p12形式ではなく、秘密鍵、証明書、中間CA証明書がそれぞれ pem形式で必要なので、まずはそれぞれを取り出します。

openssl を使用して取り出します。

#秘密鍵
openssl pkcs12 -in hogehoge.p12 -nocerts -nodes -out nocerts.key
#証明書
openssl pkcs12 -in hogehoge.p12 -clcerts -nokeys -out clcerts.crt
#中間CA証明書
openssl pkcs12 -in hogehoge.p12 -cacerts -nokeys -out cacerts.crt

これでそれぞれ取り出せました。

ACMに登録する

今回は CloudFront で使いたかったのでバージニアリージョンにインポートしました。

「証明書をインポート」します。

先ほど作ったファイルをそれぞれ開いて、中身をコピーしていきます。

  • 証明書本文:clcerts.crt(証明書)
  • 証明書のプライベートキー:nocerts.key(秘密鍵)
  • 証明書チェーン:cacerts.crt(中間CA証明書)

中身を確認すると、ヘッダーが色々あり、BEGINから始まる本文がありますので、↑のようにBEBIN xxx からEND xxx のみをコピーします。

cacerts.crtの中身が空の場合は、中間CA証明書が p12ファイルに含まれていなかったという事です。証明書チェーンは空白のままでよいです。

別途クロスルート証明書がある場合は、証明書チェーンに追加します。下記記事を参照ください。

すべて入力したら、「レビューおよびインポート」にてチェックが入ります。不整合があったりするとエラーとなります。

最後に

どなたかのお役に立てれば幸いです。