0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Apache2.4環境でのLet's Encrypt証明書設定

Last updated at Posted at 2021-12-21

はじめに

CentOS7.9のApache2.4環境で、SSL/TLSサーバ証明書を発行して利用する為の設定メモです
今時ホームページで暗号化は必須ということで、証明書を取得・設定をしてHTTPS化します。

今回はLet’s Encryptを利用した、無料の証明書を使用します。

以下、公式のHPです。
Let’s Encrypt

作業の流れ(以下の続きです)

1. CentOS7.4 にMariaDB10を導入する
2. CentOS7.4 にPHP7.4を導入する
3. CentOS7.9 にWordpress5.8を導入する
4. Wordpress5.8導入後のセキュリティ設定まとめ

※必須な前提としては「2. CentOS7.4 にPHP7.4を導入する」のApache導入のみになります。

Certbotインストール

# yum install certbot

証明書の取得

※80ポートでアクセスができることが必要です
 443ポートのみの解放しか不可の場合は、リダイレクトの設定をして対応します

# certbot certonly --agree-tos --non-interactive -d <ドメイン> --webroot -w <ドキュメントルート> --email <管理者メールアドレス>

例)

# certbot certonly --agree-tos --non-interactive -d hogehoge.jp --webroot -w /var/www/html --email hogehoge@example.com

取得できたら以下のようなメッセージが出ます

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator webroot, Installer None
Starting new HTTPS connection (1): acme-v02.api.letsencrypt.org
Account registered.
Requesting a certificate for lala-coeur.jp
Performing the following challenges:
http-01 challenge for xxxxxxxxx.jp
Using the webroot path /var/www/xxxxx for all unmatched domains.
Waiting for verification...
Cleaning up challenges

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/xxxxxxxxx.jp/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/xxxxxxxxx.jp/privkey.pem
   Your certificate will expire on 2022-03-20. To obtain a new or
   tweaked version of this certificate in the future, simply run
   certbot again. 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

証明書取得の確認

以下の場所にリンクが作成され、証明書ファイルが取得できていることを確認します

# ll /etc/letsencrypt/live/xxxxxxxxx.jp/
合計 4
-rw-r--r-- 1 root root 692 12月 20 13:44 README
lrwxrwxrwx 1 root root  37 12月 20 13:44 cert.pem -> ../../archive/xxxxxxxxx.jp/cert1.pem
lrwxrwxrwx 1 root root  38 12月 20 13:44 chain.pem -> ../../archive/xxxxxxxxx.jp/chain1.pem
lrwxrwxrwx 1 root root  42 12月 20 13:44 fullchain.pem -> ../../archive/xxxxxxxxx.jp/fullchain1.pem
lrwxrwxrwx 1 root root  40 12月 20 13:44 privkey.pem -> ../../archive/xxxxxxxxx.jp/privkey1.pem

リンクの作成

設定ファイル定義の為のリンクを作成します

# cd /etc/httpd/
# ln -s /etc/letsencrypt/live live

結果確認

# ll
合計 12
drwxr-xr-x 2 root root 4096 12月  3 21:33 conf
drwxr-xr-x 2 root root 4096 12月 20 13:52 conf.d
drwxr-xr-x 2 root root 4096 11月 23 14:52 conf.modules.d
lrwxrwxrwx 1 root root   21 12月 20 13:53 live -> /etc/letsencrypt/live
lrwxrwxrwx 1 root root   19 11月 23 14:20 logs -> ../../var/log/httpd
lrwxrwxrwx 1 root root   29 11月 23 14:20 modules -> ../../usr/lib64/httpd/modules
lrwxrwxrwx 1 root root   10 11月 23 14:20 run -> /run/httpd

Apacheへ証明書を定義

取得した証明書ファイルをApache設定ファイルに定義します

# cd /etc/httpd/conf.d/
# vi ssl.conf

SSLCertificateKeyFile /etc/httpd/live/xxxxxxxxx.jp/privkey.pem
SSLCertificateFile /etc/httpd/live/xxxxxxxxx.jp/cert.pem
SSLCertificateChainFile /etc/httpd/live/xxxxxxxxx.jp/chain.pem

設定反映

# systemctl restart httpd

ブラウザ上でhttps://xxxxxxxxx.jpにアクセスし
証明書が適用されていればOK!

その他

証明書は90日で期限が切れてしまいます。
その為、cronで自動的に更新を行うように設定をします。

今回は以下の場所に更新用スクリプトを作成

# mkdir /root/oper
# vi /root/oper/cert_renew.sh

#!/bin/sh
certbot renew -q --no-self-upgrade --post-hook "systemctl restart httpd.service"

実行権限付与 (今回の環境はrootしか使用しないので+xでも良いが一応)

# chmod 700 /root/oper/cert_renew.sh

cron設定

※以下は毎日2時の実行例

# crontab -e

* 2 * * * /root/oper/cert_renew.sh
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?