SUB.V8OS.NET

V8OS.NET のサブブログ

Let’s Encryptで手動で証明書を取得してみた

ある日、新しくドメインを取得してサイトを立ち上げようとした時に気がついた... Let’s Encrypt取得できない!

私は複数のサイトをたちあげているが、 最近の風潮に従って、SSL暗号化をしている

しかし、ssl証明書を取得したり設定したりいちいちめんどくさい。。。 そこで、下記のツールを使って、ssl証明取得から配置、再起動にわたるまでを自動化していた...

しかし、最近動かしてむると全然起動しなくなっていた

どうやら、私だけでは無くて、同様の問題が発生しているようだ。

https://github.com/JrCs/docker-letsencrypt-nginx-proxy-companion/issues/134

どうしよう

最終的に、手動で証明書を取得した

エンジニアらしからぬ行為だが、手動にて証明書を取得し設置した。 最終的には問題はわからない。

今、私にはそのようなことを調べる時間的な余裕はないので、 暇を見つけては調べてみたい

証明書の取得にはdockerを使った

$ sudo docker run -it --rm -p 443:443 --name letsencrypt \
            -v "/etc/letsencrypt:/etc/letsencrypt" \
            -v "/var/lib/letsencrypt:/var/lib/letsencrypt" \
            quay.io/letsencrypt/letsencrypt:latest certonly
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Failed to find apache2ctl in PATH: /opt/certbot/venv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

How would you like to authenticate with the ACME CA?
-------------------------------------------------------------------------------
1: Place files in webroot directory (webroot)
2: Spin up a temporary webserver (standalone)
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):

これを実行すると、1と2で取得方法を選ぶことが出来る。 今回は2を選択した

後に、ドメイン名を入力する項目が現れる。 ドメイン名を入力すると、証明書の取得が終わった。

emailの情報は必要なかった。 もしかすると、以前letsencryptを使っていたのでipとの結びつきがあって、自動処理されたのかも知れない

取得が成功すると、/etc/letsencrypt/live/<ドメイン名>に証明書のシンボリックが設置される。 証明書本体は/etc/letsencrypt/archive/<ドメイン名>に設置されているので、証明書の移動が必要なら、ここを確認すればいいだろう。

というわけで、証明書の取得が終了したのであった。

今度、無停止取得でもしてみよう

参考サイト