Let's Encryptの証明書の取得・設定(ConoHa VPS・AlmaLinux 9.4)

ConoHaのVPSでLet's Encryptの証明書を取得して設定する。

以下の環境でセットアップしていく。
**〜VPS 1Gプラン〜**
メモリ：1G
CPU：仮想2Core
ストレージ：HDD 100GB
OS：AlmaLinux 9.4

# おことわり
筆者はCentOS 7からAlmaLinux 9へ移行したため、CentOS 7のコマンドで利用できる部分はそれらを用いる。

# 1．Snapdのインストールと設定
次のコマンドを実行し、Snapdをインストールする。

```
[root@abc ~]# yum -y install snapd
```

```
Last metadata expiration check: 0:43:11 ago on Wed 15 Jan 2025 03:44:21 PM JST.
Dependencies resolved.
================================================================================
 Package                     Arch       Version                Repository  Size

〜〜〜〜省略〜〜〜〜

Installed:
  snap-confine-2.66.1-0.el9.x86_64           snapd-2.66.1-0.el9.x86_64          
  snapd-selinux-2.66.1-0.el9.noarch          xdelta-3.1.0-17.el9.x86_64         

Complete!
[root@abc ~]# 
```

次のコマンドを実行し、Snap通信ソケットを管理するSystemdユニットを有効化する。

```
[root@abc ~]# systemctl enable snapd.socket --now
```

```
Created symlink /etc/systemd/system/sockets.target.wants/snapd.socket → /usr/lib/systemd/system/snapd.socket.
```

次のコマンドを実行し、シンボリックリンクを作成する。

```
[root@abc ~]# ln -s /var/lib/snapd/snap /snap
```

# 2．Certbotのインストールと設定
次のコマンドを実行し、Certbotをインストールする。

```
[root@abc ~]# sudo snap install --classic certbot
```

```
2025-01-15T16:32:51+09:00 INFO Waiting for automatic snapd restart...
certbot 3.1.0 from Certbot Project (certbot-eff✓) installed
```

次のコマンドを実行し、Certbotを実行できるようにする。

```
[root@abc ~]# ln -s /snap/bin/certbot /usr/bin/certbot
```

# 3．証明書のインストール
次のコマンドを実行し、証明書をインストールする。

```
[root@abc ~]# sudo certbot --apache
```

管理者のメールアドレスを求められるため、入力する。

```
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Enter email address (used for urgent renewal and security notices)
 (Enter 'c' to cancel):
```

↓

```
(Enter 'c' to cancel):[メールアドレス]
```

規約に同意するか聞かれるため、"Y"を入力する。

```
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.4-April-3-2024.pdf. You must agree in
order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: 
```

↓

```
(Y)es/(N)o: [Y]
```

メルマガ的なものに登録するか聞かれるため、"N"を入力する。

```
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, to
share your email address with the Electronic Frontier Foundation, a founding
partner of the Let's Encrypt project and the non-profit organization that
develops Certbot? We'd like to send you email about our work encrypting the web,
EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: 
```

↓

```
(Y)es/(N)o: [N]
```

```
Account registered.
```

どのアドレスの設定をするか聞かれるため、設定したいアドレスを選択する。

```
Which names would you like to activate HTTPS for?
We recommend selecting either all domains, or all domains in a VirtualHost/server block.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: [アドレスA]
2: [アドレスB]
3: [アドレスC]
4: [アドレスD]
5: [アドレスE]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter 'c' to cancel): 
```

↓

```
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter 'c' to cancel): [1]
```

以下のように表示されたら完了。

```
Requesting a certificate for [選択したアドレス]

Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/[選択したアドレス]/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/[選択したアドレス]/privkey.pem
This certificate expires on 2025-04-15.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.

Deploying certificate
Successfully deployed certificate for [選択したアドレス] to /etc/httpd/conf/httpd-le-ssl.conf
Congratulations! You have successfully enabled HTTPS on [選択したアドレス]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
```

# 4．動作確認
ブラウザでhttps://[エイリアス].[ドメイン]/にアクセスし、"AlmaLinux Test Page"の画面が表示されることを確認する。
SSL証明書を確認し、適切な情報に変わっていることを確認する。
もしもログインできなかったり、403エラーなどが表示されたら最初からやり直す。