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


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

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

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

まずは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において
非対応になったとのこと。

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

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

certbot-autoなどの旧式をアンイストール
snapdをインストール/アップグレード
snapでcertbotをインストール
certbotを実行

の手順を踏めばいいそう。
ありがたいです。

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

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

で、(自分の場合は)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

あ゛??
失敗したぞ・・・
はい~~~失敗した~~~
いいよいいよどうせこうなると思ったよ〇そが!!!

で???
原因はなんや?(半ギレ)

これでした。

どうやら、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で表示されました。

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