AmazonLinux2にLet'sEncrypt(無料SSL)を導入する


・前提
 AmazonLinux2のインタンスを作成してSSHで接続できる。
 セキュリティグループに
  タイプ:HTTPS
  プロトコル:TCP
  ポート範囲:443
  ソース:0.0.0.0/0
 が追加されている。

・http24の導入
sudo yum update -y
sudo yum install httpd
sudo service httpd start
sudo service httpd status
sudo systemctl enable httpd.service
httpd -v

※ ブラウザから確認。apacheの画面が表示されればOK

・スーパーユーザになっておく
sudo su -

・timezone設定
timedatectl set-timezone Asia/Tokyo
ll /etc/localtime
※ dateで確認

・mod_sslインストール
yum install --enablerepo=remi,remi-php74 mod_ssl.x86_64

・snapdが入っているリポジトリの追加
cd /etc/yum.repos.d/
wget https://people.canonical.com/~mvo/snapd/amazon-linux2/snapd-amzn2.repo

※/etc/yum.conf に以下の設定を追加。[main] の最後に追加する
vi /etc/yum.conf
↓追加する文

exclude=snapd-*.el7 snap-*.el7

snapdインストール
yum install snapd

snapd自動起動設定
systemctl enable --now snapd.socket

パスを通す
ln -s /var/lib/snapd/snap /snap

core インストール
※ 実行するとエラーになるけど、もう1度実行するとなぜか成功する
snap install core

全てのパッケージをアップデート
snap refresh core

cerbotのインストール
snap install --classic certbot

snapパス通し
ln -s /snap/bin/certbot /usr/bin/certbot

httpd.confの編集
vi /etc/httpd/conf/httpd.conf

↓一番下の行に追記

NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin メールアドレス
DocumentRoot ドキュメントルート
ServerName ドメイン
</VirtualHost>

・証明書を取得 & インストール
certbot --apache
※初めにメールアドレスを求められたり、
  Yes/Noを求められるので答えていくと証明書の取得とインストールが始まる

証明書の期限確認
openssl x509 -in /etc/letsencrypt/live/ドメイン/fullchain.pem -noout -dates

番外
  うまくいかないで何回も試してたら怒られてしばらくドメインが使えなくなったので、
  まず、お試しでやるならサブドメイン作ってからやった方が良いかもw

There were too many requests of a given type 
:
: Error creating new order 
:: 
too many certificates (5) already issued for this exact set of domains in the last 168 hours: ドメイン: see https://letsencrypt.org/docs/rate-limits/