taro373
@taro373

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

Let's Encryptで別のドメインの証明書を取得したい

Let's Encryptで別のドメインの証明書を取得したい

CentOS7.5 で2017年にLet's Encryptの証明書を取得し更新を続けています

# yum install epel-release
# yum install certbot python-certbot-apache
# certbot certonly --webroot -w /var/www/html/ -d hoge.jp

同じサーバで、このドメインとは別のドメイン(バーチャルホストで運用します)の証明書を同じ方法で取得しようとすると、
エラーメッセージが表示され/var/log/letsencrypt/letsencrypt.log を
参照すると下記のメッセージがありました

INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection 
DEBUG:certbot.log:Exiting abnormally:
File "/usr/lib/python2.7/site-packages/certbot/client.py", line 46, in acme_from_config_key
  return acme_client.BackwardsCompatibleClientV2(net, key, config.server)

Python2.7?という部分に気が付き、バージョンを調べると

$ python3 -V
bash: python3: コマンドが見つかりませんでした...
よく似たコマンドは: 'python'
$ python -V
Python 2.7.5

サーバのpythonが2.7.5でしたので、yumでpython3をインストールし、シンボリックリンクを作成しました。

$ sudo yum install python3
$ python3 -V
Python 3.6.8
$ python -V 
Python 3.6.8

ここで再度certbotを実行しましたが、エラーメッセージに
「/usr/lib/python2.7/site-packages」が
表示される状況は変わりませんでした。
certbotのバージョンはかなり古いのだと思います。

$ certbot --version
certbot 0.24.0

教えていただきたいこと

$ yum remove certbot
と、certbotをアンインストールして、再度インストールすれば解決できるのでしょうか。

稼働中のドメインの証明書の更新に影響があると困るので、質問しました。

参考にしたサイト こちら では

certbotをアンインストールしても、取得済みの証明書ファイルは削除されないので、ご安心ください。
とありましたので、既存のドメインの証明書に関しても影響がないものと考えましたがこの考えで良いでしょうか。

また、当初yumでインストールしたpython-certbot-apacheもアンインストールして、
再度インストールするものでしょうか。

0

2Answer

-d hoge.jp

dnsで hoge.jp が正しく設定されていれば、Let's Encrypt で承認されます。

80番ポートが解放されていれば
certbot certonly --nginx
certbot certonly --apache ★では?
certbot certonly --standalone
certbot certonly --webroot

で設定されます。

-w /var/www/html/ -d hoge.jp は忘れないで!

0Like

Comments

  1. @taro373

    Questioner

    ありがとうございました 、別ドメインの証明書が取得できました
    昨日表示されていたエラーは@STSyntheさんのご指摘にあった、「certbotがが古すぎる」だったようです

同じサーバで、このドメインとは別のドメイン(バーチャルホストで運用します)の証明書を同じ方法で取得しようとすると

VHとのことですが、そもそも/var/www/html/は合っているか、Apache?の設定を確認したか?

サーバのpythonが2.7.5でしたので、yumでpython3をインストールし、シンボリックリンクを作成しました。

システム標準でインストールされたPythonにそんなことされると既にあるPython2に依存する物が崩壊を起こす可能性があるので止めましょう。

/usr/lib/python2.7/はライブラリ(パッケージ)群なのでPython2であるかどうかの判断をそのパスでしては成りません。

とありましたので、既存のドメインの証明書に関しても影響がないものと考えましたがこの考えで良いでしょうか。

気にするなら最低限証明書のバックアップを実施するべきです。

既存のドメインが3ヶ月前毎にrenewできているので再インストールで直る可能性は低く、問題は別の所でしょう。

  • certbotが古すぎる、アップグレードが実施されていない
  • 情報量が少ない(サーバーの構成や設定など)ので--webrootが本当に合っているのかを確認できていない
  • Pythonのライブラリが古くなっている(アップグレードができてない可能性)
0Like

Comments

  1. @taro373

    Questioner

    ありがとうございます  pythonの環境は元に戻しました

    >certbotが古すぎる、アップグレードが実施されていない
    これが原因だと考えています  インストールしたのは2017年です

    まずはcertbotのアップデートを行ってみます
  2. @taro373

    Questioner

    一旦“N”を入力して止めましたが、まずはcertbotのバージョンアップを行ってみます
    [tuti@take ~]$ sudo yum install --enablerepo=epel certbot
    ---> パッケージ certbot.noarch 0:0.24.0-1.el7 を 更新
    ---> パッケージ certbot.noarch 0:1.11.0-2.el7 を アップデート
    更新します:
    certbot noarch 1.11.0-2.el7 epel 47 k
    依存性関連でのインストールをします:
    python-requests-toolbelt noarch 0.8.0-3.el7 epel 78 k
    python2-distro noarch 1.5.0-1.el7 epel 33 k
    依存性関連での更新をします:
    python2-acme noarch 1.11.0-1.el7 epel 83 k
    python2-certbot noarch 1.11.0-2.el7 epel 386 k
    Is this ok [y/d/N]: N
    Exiting on user command
  3. @taro373

    Questioner

    ありがとうございました。
    「certbotが古すぎる」がすべての原因だったようです
    おかげさまで別ドメインの証明書が取得できました

Your answer might help someone💌