パッケージ管理のコマンドがディストリによって違いますが、大まかな文意は当てはめれるのではないかと。
- ロケ地
- CentoS 7.9
- Nutanix AHV Hypervisor
Certbot を使って Let'sEncrypt から証明書をもらいたい
ので Certbot 公式に記載されている手順でインストールしてみることに。 (python2 時代にしか構築してないので復習を兼ねている)
snap インストールするもなんかおかしい
今は snap で管理してるんすね、ということで公式記載のリンクから snap 公式を参考にインストール。
[vm-user@localhost ~]$ sudo yum install epel-release [vm-user@localhost ~]$ sudo yum install snapd [vm-user@localhost ~]$ sudo systemctl enable --now snapd.socket [vm-user@localhost ~]$ sudo ln -s /var/lib/snapd/snap /snap [vm-user@localhost ~]$ sudo systemctl start snapd [vm-user@localhost ~]$ systemctl status snapd
snap が死ぬ
起動した直後は status や ps ax|grep snapd
でもプロセスを確認できるけど、 snap install
しようとするとエラーが返ってくる。
なぜ?
1月 20 23:39:59 localhost systemd[1]: Starting Snap Daemon... 1月 20 23:39:59 localhost snapd[34053]: AppArmor status: apparmor not enabled 1月 20 23:39:59 localhost snapd[34053]: daemon.go:343: started snapd/2.47.1-1.el7 (series 16; classic; devmode) centos/7 (amd64) linux/3.10.0-1160.11.1.el7.x86_. 1月 20 23:39:59 localhost snapd[34053]: daemon.go:436: adjusting startup timeout by 30s (pessimistic estimate of 30s plus 5s per snap) 1月 20 23:39:59 localhost systemd[1]: Started Snap Daemon. 1月 20 23:40:04 localhost snapd[34053]: daemon.go:542: gracefully waiting for running hooks 1月 20 23:40:04 localhost snapd[34053]: daemon.go:544: done waiting for running hooks 1月 20 23:40:04 localhost snapd[34053]: daemon stop requested to wait for socket activation
起動して 5 秒でデーモンの停止がリクエストされている、なぜ……。 その後、結局 snap が自ら停止する理由がわからなかったので解決するのを諦めてアンインストール。
[vm-user@localhost ~]$ sudo yum uninstall snapd
pip で Certbot インストール
epel から Certbot をインストールしようかと思ったらこれは古く、 python2 を利用する (しかも依存ライブラリがアップデートされて python3 じゃないと動かないらしい?) とのことでめんどくさそうだなあ。
と思っていたら、 pip
を使ってインストールしている記事があったので参考にして環境作ってみました。
[vm-user@localhost ~]$ sudo yum install python36 python36-pip [vm-user@localhost ~]$ sudo pip3.6 install --upgrade pip [vm-user@localhost ~]$ sudo pip3.6 install certbot [vm-user@localhost ~]$ which certbot /usr/local/bin/certbot [vm-user@localhost ~]$ sudo ln -s /usr/local/bin/certbot /usr/bin/certbot
やったぁ、入ったぞ。
ちなみに sudo
したときに現ユーザのパスを引き継ぐ設定入れておらず /usr/local/bin/
を参照できないので、シンボリックリンクで /usr/bin/certbot
を作っています。
Certbot が動……かない!
これで万事解決か、と思いきや、証明書の作成を要求したらなんかおかしい。
[vm-user@localhost ~]$ sudo certbot certonly --apache Saving debug log to /var/log/letsencrypt/letsencrypt.log Could not choose appropriate plugin: The requested apache plugin does not appear to be installed The requested apache plugin does not appear to be installed
なるほど apache のぷらぎんが無い……?
調べてみたところ、各種ディストリのパッケージ管理ツール経由では python3-certbot-apache
を入れれば良いらしいのですが、 pip
なのでそのままの名前じゃないらしく。
おそらく certbot-apache
だろうな、と当たりをつけてインストールしてみました。
[vm-user@localhost ~]$ sudo pip3.6 install certbot-apache Collecting python-augeas Downloading python-augeas-1.1.0.tar.gz (93 kB) |████████████████████████████████| 93 kB 2.4 MB/s ERROR: Command errored out with exit status 1: #snip# OSError: ctypes.util.find_library() did not manage to locate a library called 'augeas' ---------------------------------------- ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
?! なんじゃこれ……と思いましたが、ERROR
と OSError
から推察するに augeas
コマンド (ライブラリ) がないと読めるので、シュッとインストールして再試行してみる。
[vm-user@localhost ~]$ sudo yum install augeas* [vm-user@localhost ~]$ sudo pip3.6 install certbot-apache Collecting certbot-apache #snip# Successfully installed certbot-apache-1.11.0 python-augeas-1.1.0
おっ入った?
Certbot を起動してみる
とりあえず動くか確認したいので、証明書だけ請求するパターンを利用する。
[vm-user@localhost ~]$ sudo certbot certonly --apache Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator apache, Installer apache Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel):
おっやったー、動いたァ!
と、言うわけで
公式の手順通りだと一発で素直に動かなかったので我流でインストールした手順でした。 このあとは公式の手順通りでもいいので、目的のドメインを apache の VirtualHost なりで設定して名前解決できるようにして、って感じです。
はー snap 動かないあたりで一日消費してしまったなー。
ちなみに pyenv とかで複数バージョン運用している人は、グローバル指定になっている python バージョンでインストールするのが良いと思います。
いや最終的に certbot
コマンド叩く場所で決まるんでなんでもいいっちゃ良いと思うんですがね。
2021/02/22 追記
Ubuntu 対象だけど多分 snapd が動かなかった同様の事例が報告されている。原因は不明っぽいくて草すら生えない。