🍖

AmazonLinux2023にLet'sEncryptを導入

2023/09/07に公開

毎回つまづくLet'sEncrypt、ようやく慣れたと思ったらAL2023は
やれFedoraベースになったとか
やれyumじゃなくてdnf使いましょうとか
やれamazon-linux-extrasが無くなったとか

まーた色々変わっちゃうのか〜。

そもそもcertbotの公式にAL版(2も2023も)のマニュアルが無い

https://certbot.eff.org/

毎回2個目のセレクタ何選んだらいいんか分からん。

My HTTP website is running ◯◯ on ◯◯

AL2023はFedoraでいいのかなーとか思ったりしてるけど
適当に選んで結局別サイトに流れて解決するパターンが多い。
毎回この作業コスト考えたらACM使えば良くない...?

導入手順

覚えたら楽だから10回でダメなら100回やって覚えるスタンス

install snapd

最初のつまづきポイント

$ dnf install snapd
No match for argument: snapd
Error: Unable to find a match: snapd

当然のように入らんキエー。
結局正解が見つからなかったのでsnapd諦めてpip経由でやる。

install certbot by pip

Pythonは専門外なので1行目は多分virtual-env的なコマンドなんだろう。

$ python3 -m venv /opt/certbot/
$ /opt/certbot/bin/pip install --upgrade pip
$ /opt/certbot/bin/pip install certbot certbot-apache

3個目のコマンドでcertbot-apacheが入らないよエラー。

OSError: ctypes.util.find_library() did not manage to locate a library called 'augeas'

ライブラリ足りないみたいなのでインストール

$ dnf install augeas-libs

リトライ。

$ /opt/certbot/bin/pip install certbot-apache
〜略〜
Successfully built python-augeas
Installing collected packages: python-augeas, certbot-apache
Successfully installed certbot-apache-2.6.0 python-augeas-1.1.0

入ったのでcertbotでLet's Let'sEncrypt

先に諸々準備

浮かれポンチで certbot --apache とかやっても
80番ポートがリッスンされてないよ〜とかなっちゃうのでますapacheの設定をしましょう。

VirtualHostのファイル設定

$ vi /etc/httpd/conf.d/vhost.conf

# ↓追加
<VirtualHost *:80>
    VirtualDocumentRoot /var/www/html
    ServerName acerola.omsubi.jp:80
    ErrorLog /var/log/httpd/vhost_error_log
    CustomLog /var/log/httpd/vhost_access_log combined
</VirtualHost>
# ↑追加

$ httpd -t
Syntax OK
$ service httpd graceful

mod_ssl入れてる?

$ dnf install mod_ssl

認証作業

あとは質問に答えていくだけ。

$ certbot --apache
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Could not find ssl_module; not disabling session tickets.

Which names would you like to activate HTTPS for?
We recommend selecting either all domains, or all domains in a VirtualHost/server block.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: acerola.omsubi.jp
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter 'c' to cancel): 

Congratulations! が出たら完了。

apacheのリロードしないと適用されなかった気がするけどしないでも行けてた。
certbotコマンドはミスりまくったら制限に引っかかってしまうので準備万端にしてから挑みましょう。

おわり。

Discussion