業務用エアコン関連の技術情報、エラーコード、環境問題対策に関する別サイト「エアコンの安全な修理・適切なフロン回収」

MiracleLinux9.6 : SSL証明書 ( Let's Encrypt ) , Apache/Mail サーバー SSL/TLS

1.SSL証明書を取得する ( Let's Encrypt )

最新のopen sslをインストールしておく

1.1 事前準備

1.パッケージ管理システムSnappyインストール
Let’s EncryptのSSL証明書発行ツール「certbot」は2021年以降は「snap」を利用したインストールが推奨されていますので、まずSnapdをインストールします。(dnfまたはyumでの従来の方法でもインストールできます)

メインのスナップ通信ソケットを管理するsystemdユニットを有効化する

クラシックスナップのサポートを有効にする

バージョン確認

ログアウトして再度ログインするか、システムを再起動して、snapのパスが正しく更新されていることを確認

2.certbot パッケージインストール

/snap/bin/certbotへのシンボリックリンクを作成

確認する

1.2 証明書の取得

初回のみメールアドレスの登録と利用条件への同意が必要
受信可能なメールアドレスを指定

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Enter email address or hit Enter to skip.
(Enter 'c' to cancel): [E-mail address]
------------------------------------------------------------------------------------------------------------
Please read the Terms of Service at:
https://letsencrypt.org/documents/LE-SA-v1.5-February-24-2025.pdf
You must agree in order to register with the ACME server. Do you agree?
-----------------------------------------------------------------------------------------------------------
(Y)es/(N)o: y
-----------------------------------------------------------------------------------------------------------
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
Account registered.
Requesting a certificate for [FQDN]

Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/ [FQDN]/fullchain.pem
Key is saved at: /etc/letsencrypt/live/ [FQDN]/privkey.pem
This certificate expires on 2025-10-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.
---------------------------------------------------------------------------------------------------------
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
---------------------------------------------------------------------------------------------------------

「Successfully received certificate.」と表示されれば成功
メッセージ中に記載の通り [/etc/letsencrypt/live/[FQDN]/] 配下に次の証明書が取得されている
cert.pem ⇒ SSLサーバー証明書(公開鍵含む)
chain.pem ⇒ 中間証明書
fullchain.pem ⇒ cert.pem と chain.pem が結合されたファイル
privkey.pem ⇒ 公開鍵に対する秘密鍵

インターネット側から当作業を実施するサーバーの 80 ポート宛てにアクセス可能であることは前提となります
FQDN (Fully Qualified Domain Name) : ホスト名.ドメイン名を省略なしで表記
証明書を取得したいFQDNが複数ある場合は、-d [証明書を取得したいFQDN] を複数指定

取得済みの証明書を更新する
# 有効期限が 30日未満の証明書を全て更新
# 有効期限の残り日数に関わらず更新したい場合は [--force-renewal] を合わせて指定

# certbot --force-renewal renew

Saving debug log to /var/log/letsencrypt/letsencrypt.log
---------------------------------------------------------------------------------------------------------
Processing /etc/letsencrypt/renewal/[FQDN].conf
---------------------------------------------------------------------------------------------------------
Renewing an existing certificate for [FQDN]
---------------------------------------------------------------------------------------------------------
Congratulations, all renewals succeeded:
/etc/letsencrypt/live/[FQDN]/fullchain.pem (success)

1.2 証明書を自動更新 (Let's Encrypt)

①登録前のテスト
まず以下の--dry-runオプションを使って自動更新をテストしてみる。このオプションでは、証明書は更新されずに動作確認のみ実施されるため、証明書の取得回数制限に引っかかる心配もない

Saving debug log to /var/log/letsencrypt/letsencrypt.log
---------------------------------------------------------------------------------------------------------
Processing /etc/letsencrypt/renewal/[FQDN].conf
---------------------------------------------------------------------------------------------------------
Account registered.
Simulating renewal of an existing certificate for [FQDN]
---------------------------------------------------------------------------------------------------------
Congratulations, all simulated renewals succeeded:
/etc/letsencrypt/live/[FQDN]/fullchain.pem (success)

②Snap版certbotをインストールすると、証明書自動更新機能も合わせてインストールされます

snap.certbot.renew.timer が登録されています

snap.certbot.renew.timer のユニットファイルを確認

[Unit]

#Auto-generated, DO NOT EDIT

Description=Timer renew for snap application certbot.renew
Requires=var-lib-snapd-snap-certbot-4737.mount
After=var-lib-snapd-snap-certbot-4737.mount
X-Snappy=yes

[Timer]
Unit=snap.certbot.renew.service
OnCalendar=--* 06:07
OnCalendar=--* 18:08

[Install]
WantedBy=timers.target

上記設定によるとOnCalenderパラメータで指定されている毎日6時7分と18時8分に更新を試みます(ただし、更新ごとにランダムに設定時刻が変更します)

snap.certbot.renew.serviceのユニットファイルを確認

[Unit]

#Auto-generated, DO NOT EDIT

Description=Service for snap application certbot.renew
Requires=var-lib-snapd-snap-certbot-4737.mount
Wants=network.target
After=var-lib-snapd-snap-certbot-4737.mount network.target snapd.apparmor.service
X-Snappy=yes

[Service]
EnvironmentFile=-/etc/environment
ExecStart=/usr/bin/snap run --timer="00:00~24:00/2" certbot.renew
SyslogIdentifier=certbot.renew
Restart=no
WorkingDirectory=/var/snap/certbot/4737
TimeoutStopSec=30
Type=oneshot

ただし、証明書を使用するWebサーバーの再起動は行われませんので、更新後に自動的に実行されるスクリプトを設定します

2. Apache のhttps 化

下記をインストールする

2.1 ssl.conf ファイルの編集

Apache を再起動

Firewallでhttpsを許可する

2.2 HTTP 通信を HTTPS へリダイレクト

バーチャルホスト設定ファイルに追記する

Apache 再起動

3. Mail サーバーにSSL/TLS(Let's Encrypt) の設定

3.1 メールサーバー用証明書の取得

メールサーバー用の証明書を取得するが上記と同様の方法では取得できないので「--standalone」オプションをつけて下記のようにしても失敗する。

一度web サーバーを止めてから行うと下記のとおり成功する

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Requesting a certificate for mail.[Domain]

Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/mail.[Domain]/fullchain.pem
Key is saved at: /etc/letsencrypt/live/mail.[Domain]/privkey.pem
This certificate expires on 2025-10-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.
----------------------------------------------------------------------------------------------------------
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
----------------------------------------------------------------------------------------------------------

Apache 再起動

3.2 Postfixの設定

3.3 Dovecotの設定

firewallでPort 587を許可する

再起動

3.4 Thunderbirdの設定

受信サーバー
Port  :  143
Connection security   :  STARTTLS
Authentication method  :  Normal password

送信サーバー
Port   :  587
Connection security   :  STARTTLS
Authentication method  :  Normal password

タイトルとURLをコピーしました