Skip to content

Instantly share code, notes, and snippets.

@yamacraft
Last active November 7, 2017 05:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yamacraft/921787b57b3c0626e58d7758c4ea9762 to your computer and use it in GitHub Desktop.
Save yamacraft/921787b57b3c0626e58d7758c4ea9762 to your computer and use it in GitHub Desktop.
OpenSSLの暗号化と復号化をDockerで行う

OpenSSLの暗号化と復号化をDockerで行う

Shibuya.apk #19にてOpenSSLのバージョン違いによる復号化の失敗談を共有しました。

そのときにふと「暗号化、復号化もDockerでやればよいのでは?」と思ったので、試しに作ってみました。

解説

ファイル 内容
openssl.encrypt.dockerfile 暗号化実行Dockerfile
openssl.decrypt.dockerfile 復号化実行Dockerfile
run-encrypt.sh 暗号化実行シェル
run-decrypt.sh 復号化実行シェル

PLAIN_FILENAME、CHIPER_FILENAME、KEYはシステム環境変数にあることを前提としています。

alpineイメージ(4MB)を使っているので、生成されるイメージは8MB程度と軽量です。

注意事項など

なんとなく暗号化と復号化でdockerfileを分けてしまったんですが、CMD以外は同じです。

Circle CI2.0で実行させることを考えれば、dockerfileはひとつにてdocker-compose.yml(.circlecu/config.yml)の方でコマンドを指定した方がよいと思いました。

FROM alpine:3.6
RUN apk update
RUN apk add openssl=1.0.2k-r0
CMD openssl aes-256-cbc -md sha256 -d \
-in certs/${CHIPER_FILENAME} \
-out certs/${PLAIN_FILENAME} \
-k ${KEY}
FROM alpine:3.6
RUN apk update
RUN apk add openssl=1.0.2k-r0
CMD openssl aes-256-cbc -md sha256 -e \
-in certs/${PLAIN_FILENAME} \
-out certs/${CHIPER_FILENAME} \
-k ${KEY}
#!/bin/bash -eux
docker build -t yamacraft/openssl-decrypt -f openssl.decrypt.dockerfile .
docker run --rm -v `pwd`:/certs \
-e PLAIN_FILENAME=${PLAIN_FILENAME} \
-e CHIPER_FILENAME=${CHIPER_FILENAME} \
-e KEY=${PT_SECRET_KEY} \
-t yamacraft/openssl-decrypt
#!/bin/bash -eux
docker build -t yamacraft/openssl-encrypt -f openssl.encrypt.dockerfile .
docker run --rm -v `pwd`:/certs \
-e PLAIN_FILENAME=${PLAIN_FILENAME} \
-e CHIPER_FILENAME=${CHIPER_FILENAME} \
-e KEY=${PT_SECRET_KEY} \
-t yamacraft/openssl-encrypt
@yamacraft
Copy link
Author

yamacraft commented Nov 7, 2017

circleciでshで実行させると環境変数の中身がバッチリでてしまうので、やはりcomposeで実行させたほうがよさそう…

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment