p12ファイルを証明書と秘密鍵に分割する
p12ファイルって
PKCS#12 個人情報交換ファイルフォーマットというもの。証明書と秘密鍵をセットにできる。iOS開発とかやってるとよく出てくるやつです。
APNsの設定するのにp12を証明書と秘密鍵に分割したい
証明書を取り出すのはkeytoolというJDKに入ってるコマンドでできるみたいです。 秘密鍵はopensslコマンドで取り出せます。
これはsh直下にあるp12を全部証明書と秘密鍵に分割してbase64でstdoutするコードです。こんな感じでできます。ALIAS
っていうのをとってくるのが微妙にめんどくさい。
#!/bin/bash -e for f in *.p12; do ALIAS=$(keytool -list -v -keystore /$f -storepass "" | grep "Alias" | awk -F: '{print $2;}' | sed -e 's/^\s//g') echo $f alias:$ALIAS rm -f temp.crt cer.pem key.pem keytool -exportcert -keystore /$f \ -storetype PKCS12 \ -storepass "" \ -alias "$ALIAS" \ -file temp.crt openssl x509 -in temp.crt -inform DER -out cer.pem -outform PEM echo "* $f base64 cer.pem" base64 -w 0 cer.pem && echo echo "* $f base64 key.pem" openssl pkcs12 -in $f -out key.pem -nodes -clcerts -password pass:"" base64 -w 0 key.pem && echo echo echo done
というようなことをもちろんDockerで実行できるようにしておく
Dockerfile
FROM java COPY *.p12 / COPY run.sh run.sh RUN chmod +x run.sh CMD ./run.sh
run.shの中身
IMAGE=pem-converter build: docker build -t ${IMAGE} . create: docker run -it ${IMAGE}