【CentOS stream】nginxでSSL証明書設定！

※自分のメモ用で作成してます。あと文面がちょっとやさぐれてます。
　不快な思いをさせたらすみません。

環境：
CentOS Stream release 8
nginx version: nginx/1.18.0

以下サイトを基に実施してみた

https://qiita.com/HeRo/items/f9eb8d8a08d4d5b63ee9

まずはGitにてcertbotをクローン

```
cd /usr/local
git clone https://github.com/certbot/certbot
```
ここまではOK。

問題は次

```
[user@ik1-XXX-XXXXX certbot]$ ./certbot-auto certonly --standalone -t
Requesting to rerun ./certbot-auto with root privileges...
Skipping bootstrap because certbot-auto is deprecated on this system.
Your system is not supported by certbot-auto anymore.
Certbot cannot be installed.
Please visit https://certbot.eff.org/ to check for other alternatives.
```

え？？？
なぜ？？

というわけで調査した結果、
こちらのサイトより、どうやらcertbot-auto自体がすべてのOSにおいて
非対応になったとのこと。

https://qiita.com/isase/items/5c00a347d9e0b858c1c2

なので、最新のCentOSではもうcertbot-auto使えないんだって。
（経緯とかは上記サイト参考）

じゃあどうすればいいかというと、

```
certbot-autoなどの旧式をアンイストール
snapdをインストール/アップグレード
snapでcertbotをインストール
certbotを実行
```
の手順を踏めばいいそう。
ありがたいです。


というわけで、certbot-autoはGitで落としてきただけだからとりあえず
certbotディレクトリごと削除

ちなみに、基本的に以下リンクを参考に作業しています。

https://linux-svr.com/tips/SSL%E8%A8%BC%E6%98%8E%E6%9B%B8/33.php

で、（自分の場合は）snapdがなかったのでインストール

```
[user@ik1-XXX-XXXXX certbot]$ sudo dnf --enablerepo=epel -y install snapd
Error: Unknown repo: 'epel'
```
(。´・ω・)・・・ん?
エラーがでた。。

ﾅﾝﾃﾞｺｰﾅﾙﾉ!!
（スムーズにいかないものですなぁ。。）

というわけで、EPELリポジトリがないみたい。
どうせ失敗するだろうけど、EPELをインストールしてみる

```
[user@ik1-XXX-XXXXX certbot]$ sudo dnf install epel-release
Last metadata expiration check: 2:15:32 ago on Sun 21 Mar 2021 08:51:15 PM JST.
Dependencies resolved.
================================================================================
 Package               Architecture    Version            Repository       Size
================================================================================
Installing:
 epel-release          noarch          8-8.el8            extras           23 k

Transaction Summary
================================================================================
Install  1 Package

Total download size: 23 k
Installed size: 32 k
Is this ok [y/N]: y
Downloading Packages:
epel-release-8-8.el8.noarch.rpm                 381 kB/s |  23 kB     00:00
--------------------------------------------------------------------------------
Total                                            39 kB/s |  23 kB     00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                        1/1
  Installing       : epel-release-8-8.el8.noarch                            1/1
  Running scriptlet: epel-release-8-8.el8.noarch                            1/1
  Verifying        : epel-release-8-8.el8.noarch                            1/1
Installed products updated.

Installed:
  epel-release-8-8.el8.noarch

Complete!
```

はい。では改めて（うまくいくといいなぁ）

```
[user@ik1-XXX-XXXXX certbot]$ sudo dnf --enablerepo=epel -y install snapd
Extra Packages for Enterprise Linux Modular 8 - 627 kB/s | 557 kB     00:00
Extra Packages for Enterprise Linux 8 - x86_64  5.7 MB/s | 9.0 MB     00:01
Last metadata expiration check: 0:00:01 ago on Sun 21 Mar 2021 11:08:26 PM JST.
Dependencies resolved.
================================================================================
 Package                    Arch   Version                         Repo    Size
================================================================================
Installing:
 snapd                      x86_64 2.49-2.el8                      epel    19 M
Installing dependencies:
 bash-completion            noarch 1:2.7-5.el8                     baseos 274 k
 checkpolicy
（省略）
  python3-setools-4.3.0-2.el8.x86_64
  snap-confine-2.49-2.el8.x86_64
  snapd-2.49-2.el8.x86_64
  snapd-selinux-2.49-2.el8.noarch

Complete!
```

あ、いけた。（ほっ）

というわけで、snapdまでは完了。

続きまして、snapでcertbotをインストール。
の前に、snap通信ソケットを管理するsystemdユニットを有効化。

```
[user@ik1-XXX-XXXXX local]$ sudo systemctl enable --now snapd.socket
Created symlink /etc/systemd/system/sockets.target.wants/snapd.socket → /usr/lib/systemd/system/snapd.socket.
```

従来のsnapサポートを有効にするには、以下を実行して/var/lib/snapd/snapの/snapへのシンボリックリンクを作成。

```
sudo ln -s /var/lib/snapd/snap /snap
```

ここもOK
そしてsnapdの最新バージョン使用確認

```
[user@ik1-XXX-XXXXX ~]$ sudo snap install core
2021-03-21T23:33:27+09:00 INFO Waiting for automatic snapd restart...
core 16-2.49 from Canonical? installed
[user@ik1-XXX-XXXXX ~]$ sudo snap refresh core
snap "core" has no updates available
```

多分更新可能なcore（データ）がないって言ってるから、
最新のsnapdであることと同義だと思われる。

では、満を持してcertbotインストールへ。

```
[user@ik1-XXX-XXXXX ~]$ sudo snap install --classic certbot
certbot 1.13.0 from Certbot Project (certbot-eff?) installed
[user@ik1-XXX-XXXXX ~]$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
[user@ik1-XXX-XXXXX ~]$ sudo ls -la /usr/bin/certbot
lrwxrwxrwx 1 root root 17 Mar 21 23:39 /usr/bin/certbot -> /snap/bin/certbot
[user@ik1-XXX-XXXXX ~]$ sudo ls -la /snap/bin/certbot
lrwxrwxrwx 1 root root 13 Mar 21 23:38 /snap/bin/certbot -> /usr/bin/snap
[user@ik1-XXX-XXXXX ~]$ sudo certbot --version
certbot 1.13.0
[user@ik1-XXX-XXXXX ~]$
```


```
sudo certbot --nginx
（省略）
```
諸々の設定をした後に

```
Could not automatically find a matching server block for [ドメイン名] Set the `server_name` directive to use the Nginx installer.

IMPORTANT NOTES:
 - Unable to install the certificate
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/[ドメイン名]/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/[ドメイン名]/privkey.pem
   Your certificate will expire on 2021-06-19. To obtain a new or
```
あ゛？？
失敗したぞ・・・
はい～～～失敗した～～～
いいよいいよどうせこうなると思ったよ〇そが！！！

で？？？
原因はなんや？（半ギレ）

これでした。

https://teratail.com/questions/306332

どうやら、nginx.confの「server」の項目の
「server_name」に独自ドメインを入力すればいいらしい。

```
sudo vi /etc/nginx/nginx.conf
```

```
server {
        listen       80;
        listen       [::]:80;
        server_name  ★ここに独自ドメイン名を入力(ex：****.jp);
　　　　（略）
```

原因が分かったところで、再度実行。

```
sudo certbot --nginx
```

```
Your existing certificate has been successfully renewed, and the new certificate
has been installed.

The new certificate covers the following domains:
https://ikoutesutoyousn3029.work
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/ikoutesutoyousn3029.work/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/ikoutesutoyousn3029.work/privkey.pem
   Your certificate will expire on 2021-06-19. To obtain a new or
   tweaked version of this certificate in the future, simply run
   certbot again with the "certonly" option. To non-interactively
   renew *all* of your certificates, run "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le
```

無事にhttpsで表示されました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/303774/0ef9736f-2c16-6c67-77a8-4ad62bb7fb90.png)

参考になるサイトがあって本当に助かりました。
（ちょっとやさぐれてますが参考になれば幸いです。）