どうもこんにちは、さんぺいです。
皆さんは、「本来、別にやりたいことがあったのに、気づいたら違うことをしてた」って経験、ありませんか。今の僕がまさにそれです。
ふと見たらlet’sencyptのバージョンアップが出てた
よせばいいのに、ふと叩いてみたコマンド。
yum check-upgrade
これは簡単に言えばWindowsPCでWindows-Updateを実行するようなもので、入っているアプリケーションの更新が出てるかどうかをみるものです。
いつもなら
yum check-upgrade zabbix-*
のようにアプリケーションを特定してみるんですが、たまに指定がめんどくさくなって
yum check-upgrade
を叩いちゃいます。
んで、Linux系ってupdateが多くて、頻繁に更新されて且つ互換性がなかったりして古いものが動かなくなっちゃうこともあったりで、ほったらかしにしているものも実は結構あるのです。
ただ中には脆弱性が発見されたりアプリ側から強く言われたりしてupdateすることもあるんですが、大半は放置なんです。
で、放置してきた山のようなupdateの中で見つけてしまったのがこれ
certbot.noarch
これが何かといいますと、このサイトを含む、僕が契約しているサーバ用に作成した証明書を管理しているアプリケーションなんです。
で、ここで新しもの好きの僕の心がざわつきます。
Update実行、そして失敗
以下、ログごと貼り付けます(めんどくさいの避けるの、ここに極まれり)
# yum upgrade certbot
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: ftp.iij.ad.jp
* epel: ftp.iij.ad.jp
* extras: ftp.iij.ad.jp
* remi-php71: ftp.riken.jp
* remi-safe: ftp.riken.jp
* updates: ftp.iij.ad.jp
Resolving Dependencies
–> Running transaction check
—> Package certbot.noarch 0:0.37.2-1.el7 will be updated
—> Package certbot.noarch 0:1.0.0-1.el7 will be an update
–> Processing Dependency: python2-certbot = 1.0.0-1.el7 for package: certbot-1. 0.0-1.el7.noarch
–> Running transaction check
—> Package python2-certbot.noarch 0:0.37.2-1.el7 will be updated
—> Package python2-certbot.noarch 0:1.0.0-1.el7 will be an update
–> Processing Dependency: python2-acme >= 0.40.0 for package: python2-certbot-1 .0.0-1.el7.noarch
–> Processing Dependency: python2-distro for package: python2-certbot-1.0.0-1.e l7.noarch
–> Running transaction check
—> Package python2-acme.noarch 0:0.37.2-1.el7 will be updated
—> Package python2-acme.noarch 0:1.0.0-1.el7 will be an update
—> Package python2-distro.noarch 0:1.2.0-3.el7 will be installed
–> Finished Dependency Resolution
Dependencies Resolved
==============================================================================
Package Arch Version Repository Size
==============================================================================
Updating:
certbot noarch 1.0.0-1.el7 epel 41 k
Installing for dependencies:
python2-distro noarch 1.2.0-3.el7 epel 29 k
Updating for dependencies:
python2-acme noarch 1.0.0-1.el7 epel 74 k
python2-certbot noarch 1.0.0-1.el7 epel 358 k
Transaction Summary
==============================================================================
Install ( 1 Dependent package)
Upgrade 1 Package (+2 Dependent packages)
Total download size: 502 k
Is this ok [y/d/N]: y
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
(1/4): certbot-1.0.0-1.el7.noarch.rpm | 41 kB 00:00
(2/4): python2-acme-1.0.0-1.el7.noarch.rpm | 74 kB 00:00
(3/4): python2-certbot-1.0.0-1.el7.noarch.rpm | 358 kB 00:00
(4/4): python2-distro-1.2.0-3.el7.noarch.rpm | 29 kB 00:00
——————————————————————————–
Total 520 kB/s | 502 kB 00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : python2-distro-1.2.0-3.el7.noarch 1/7
Updating : python2-acme-1.0.0-1.el7.noarch 2/7
Updating : python2-certbot-1.0.0-1.el7.noarch 3/7
Updating : certbot-1.0.0-1.el7.noarch 4/7
Cleanup : certbot-0.37.2-1.el7.noarch 5/7
Cleanup : python2-certbot-0.37.2-1.el7.noarch 6/7
Cleanup : python2-acme-0.37.2-1.el7.noarch 7/7
Verifying : certbot-1.0.0-1.el7.noarch 1/7
Verifying : python2-acme-1.0.0-1.el7.noarch 2/7
Verifying : python2-distro-1.2.0-3.el7.noarch 3/7
Verifying : python2-certbot-1.0.0-1.el7.noarch 4/7
Verifying : python2-certbot-0.37.2-1.el7.noarch 5/7
Verifying : python2-acme-0.37.2-1.el7.noarch 6/7
Verifying : certbot-0.37.2-1.el7.noarch 7/7
Dependency Installed:
python2-distro.noarch 0:1.2.0-3.el7
Updated:
certbot.noarch 0:1.0.0-1.el7
Dependency Updated:
python2-acme.noarch 0:1.0.0-1.el7 python2-certbot.noarch 0:1.0.0-1.el7
Complete!
と、始まるともう止まらず一気に最後まで走っちゃうんですが、とりあえずエラー無く終わっています。
終わったら間違いなく動くか確認します。
とりあえず当たり障りのないところでヘルプファイルをみようとします
# certbot –help
An unexpected error occurred:
AttributeError: ‘module’ object has no attribute ‘TLSSNI01’
Please see the logfile ‘/tmp/tmpfnMveA/log’ for more details.
※原文ママ。エラーも赤く出てきました。プロンプトは黒と白だけじゃないんですよ?
なんかわかんねーけど出てる・・・
沼に入ってしまった感おおありなんですが、どうしようもないのでエラーをまるごとコピーして先生に聞いてみます。
幸いにもテラテールで全く同じ症状の人を見かけます。
こういうのって見つけた瞬間、「あ、この人は僕の運命の人だ」とか思っちゃいません?一緒に飲んだら楽しいのかな、とか、趣味は同じかな、とか。
いざ会うと話もできない人見知りのくせに。
閑話休題、TeraTailでは簡単な問診の後にこう書かれていました。
ggrks
ではなく
yum update python2-certbot*
を実行してみるといいよ、と。TeraTailには天使がいたようです。
詳しい理由を確認することなく、そのまま打ち込む僕47歳。
そんな自分が好きな典型的B型です(どうでもいい)。
# yum update python2-certbot*
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: ftp.iij.ad.jp
* epel: ftp.iij.ad.jp
* extras: ftp.iij.ad.jp
* remi-php71: ftp.riken.jp
* remi-safe: ftp.riken.jp
* updates: ftp.iij.ad.jp
Resolving Dependencies
–> Running transaction check
—> Package python2-certbot-apache.noarch 0:0.37.2-1.el7 will be updated
—> Package python2-certbot-apache.noarch 0:1.0.0-1.el7 will be an update
–> Finished Dependency Resolution
Dependencies Resolved
==============================================================================
Package Arch Version Repository Size
==============================================================================
Updating:
python2-certbot-apache noarch 1.0.0-1.el7 epel 107 k
Transaction Summary
==============================================================================
Upgrade 1 Package
Total download size: 107 k
Is this ok [y/d/N]: y
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
python2-certbot-apache-1.0.0-1.el7.noarch.rpm | 107 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Updating : python2-certbot-apache-1.0.0-1.el7.noarch 1/2
Cleanup : python2-certbot-apache-0.37.2-1.el7.noarch 2/2
Verifying : python2-certbot-apache-1.0.0-1.el7.noarch 1/2
Verifying : python2-certbot-apache-0.37.2-1.el7.noarch 2/2
Updated:
python2-certbot-apache.noarch 0:1.0.0-1.el7
Complete!
なんだかよくわかっていませんが何かをUpdateしたようです。
こういうのってたまにあるんですが、言われたとおりにそのままやってると、いつの間にかすごい数のアプリが入っていたり。しかもどれも有効なものじゃなかったり。
今回については幸いにも効果あったようです。
# certbot –version
certbot 1.0.0
↑エラーが出て見れなかったバージョンが見えるように
# certbot renew
Saving debug log to /var/log/letsencrypt/letsencrypt.log
※以下略
↑更新コマンドも問題なく通りました。
結論(まとめ)
新しいものにとびつくとろくなことがない
ではなく、
・Let’sEncryptのスクリプト更新後に下記エラーが出たらUpdate内容に不足がある可能性が考えられるので以下を試してみること
エラー内容:
An unexpected error occurred:
AttributeError: ‘module’ object has no attribute ‘TLSSNI01’
Please see the logfile ‘/tmp/tmp43xFwy/log’ for more details.
対処用コマンド:
yum update python2-certbot*
※今回は”python2-certbot-apache”のアップデートが必要だったが、yumの依存性確認で漏れてしまったためにUpdateできておらず、差分が出てしまってエラーになっていたものと思われる。
Updating:
certbot noarch 1.0.0-1.el7 epel 41 k
↑Update指定したスクリプト
Installing for dependencies:
python2-distro noarch 1.2.0-3.el7 epel 29 k
↑上記Update後に必要な追加分の自動インストール
Updating for dependencies:
python2-acme noarch 1.0.0-1.el7 epel 74 k
python2-certbot noarch 1.0.0-1.el7 epel 358 k
↑既にインストールされていたが、更新が必要なので自動的に更新されるもの(ここにはいっているべきだったが、抜けてしまった模様)
以上、解決してよかったよかった。
Let’sEncryptには先日、深刻なバグが見つかっていましたから、僕もアップデートしました。