Rancher 2.0 サーバーへのサーバー証明書の持ち込み
Docker
Rancher
目次
設定方法は「 Choose an SSL Option and Install Rancher」に書いてあるわけですが、どうやら最近の Chrome では HTST の設定されたサーバーは自己署名の証明書ではアクセスできないみたいなので Let’s Encrypt で取得して設定することにします。

Rancher サーバーは docker container として実行するので、証明書取得も docker を使いましょう。Single ノードでの方法です
rancher での証明書指定方法 #
rancher は /etc/rancher/ssl/cert.pem
, /etc/rancher/ssl/key.pem
に置かれたものを使うので、docker container 起動時に -v /host/file/path:/etc/rancher/ssl/cert.pem:ro
などどしてマウントしてやれば良い。 そして --no-cacerts
オプションを追加して自前 CA を作成しないようにします。
lego を使って証明書を取得 #
docker run \
--rm \
-v /etc/rancher:/etc/rancher \
-p 80:80 \
xenolf/lego \
--path /etc/rancher \
--domains "証明書のドメイン名" \
--email "自分のメールアドレス" \
--filename server \
--accept-tos run
これで、/etc/rancher/certificates/server.crt
, /etc/rancher/certificates/server.key
が生成されます。(他のファイルもある) 上記のコマンドは http-01
ですが、
lego は dns-01 や tls-alpn-01 にも対応しています。
rancher 起動 #
docker run -d --restart=unless-stopped -p 80:80 -p 443:443 \
-v /etc/rancher/certificates/server.crt:/etc/rancher/ssl/cert.pem \
-v /etc/rancher/certificates/server.key:/etc/rancher/ssl/key.pem \
rancher/rancher:v2.0.8 --no-cacerts
これで Chrome でもアクセスできる。
プライベートなドメインの場合は CA 作って /etc/rancher/ssl/cacerts.pem
も置いて、ブラウザにも登録しましょう。