Raspberry Pi 3 の CentOS 7 で Let's Encrypt

最近、やたらとグローバルIPアドレスの変更が多く、インターネットからアクセスするのが大変。
1日に3回以上とか、ISP は何を考えているんだろうか。
(いや、まぁ Global IP アドレスの静的設定オプションを 8千円で提供している以上、お金儲けなんだろうけど)


で、今使っている ieServer は、ロシアからの不正な利用対策で不安定らしく、IPアドレスを更新しても DNS に反映されない状況。
定期的に SOA を見ているけど、シリアル値がアップするのが 2 時間くらいの間隔。
キャッシュ更新時間が 180 秒でも、元データが更新されてないから意味がないよね。
翌朝には更新されているので、実質的に 1 日 1 度の更新。


ってことで、一度 ISP の IP アドレスが変更されると 1 日とか待ってなきゃいけないし、それでは Dynamic DNS のサービスとして破綻しているので他のところを検討。
といっても、それほど多くないので MyDNS を使ってみる。


こちらの更新条件としては、1週間程放置したら DNS サービス提供を停止、1か月で登録データの破棄。
でも、更新方法を見る限り、メールの確認設定で更新が出来るっぽいので、普通に使う限りは問題なさそう。


ということで早速 https://www.mydns.jp:MyDNS にアクセスしてアカウント作成。
欲しいドメイン名を登録して、アカウントを Becky! Ver2 の POP3 設定。
更新処理が行われていることを確認。


その後、Raspberry Pi で Web サービスを提供。
その Raspberry Pi に 80 と 443 を開放して、インターネット側から 80 でアクセスできることを確認。
https://letsencrypt.jp/:Lets Encrypt を使うために、https://letsencrypt.jp/ を参照して Certbot クライアントを導入。


うがー!!


Raspberry PiCentOS 7 を導入したのが悪かったのだろう。
Raspberry Pi 用の CentOS 7 では、EPEL が使えない。
なぜなら ARM の CPU なので、リポジトリに EPEL 関連のパッケージが無い。
つまり、CentOS7 にも関わらず、以下のコマンドが使えない。

sudo yum install epel-release
sudo yum install certbot python-certbot-apache

使えないという表現をもっと正確にいうと、実行しても「そんなパッケージは無い」とか、そんな感じのメッセージがでて終わるだけ。


正攻法はあきらめて「その他の UNIX 系 OS」のやり方を参考にした。

$ cd /usr/local/src
$ sudo wget https://dl.eff.org/certbot-auto
$ sudo chmod a+x certbot-auto
$ sudo ./certbot-auto


がーっと必要な rpm がインストールされて、暗号化に必要な情報の入力のためのプロンプトが表示された。
メールアドレスとか、取得したドメインとか、入力した。
ちょっとエラーはあるけど、とりあえず SSL でアクセスできるようになったっぽい。
通信を暗号化するにはサイト設定をもう少しいじらないとダメだけど、自宅サーバで 443 ポートの通信ができるとか、ちょっと感動。