Help us understand the problem. What is going on with this article?

CentOS+ApacheにLet's Encryptを導入

More than 1 year has passed since last update.

Overview

Linux CentOS + ApacheLet's Encrypt を導入する方法を説明します。

Installation

Let's Encrypt は、手動でインストールすることもできますが、Cerbot という自動化サービスがありますのでこちらを利用します。

  • 書き込み可能な任意の場所に github から Cerbot をダウンロードします。
cd /usr/local
git clone https://github.com/certbot/certbot.git

Obtain a certificate

Cerbot を利用して、SSL証明書を取得します。

  • ダウンロードした、Cerbot のディレクトリに入り、SSL証明書を取得するコマンドを叩きます。
cd certbot
./certbot-auto certonly --webroot -w /var/www/vhosts/www.mydomain.com/html -d www.mydomain.com -m contact@mydomain.com -n --agree-tos
Option Description Value
-w キュメントルート /var/www/vhosts/www.mydomain.com/html
-d ドメイン名 www.mydomain.com
-m 連絡先のメールアドレス hoge@hoge.com
-n 対話入力をスキップする
--agree-tos 利用規約に同意する

※ キュメントルート、ドメイン名、連絡先のメールアドレスは、環境に合わせた任意の値を設定してください。

正常に証明書を取得できると、/etc/letsencrypt/live/www.mydomain.com/ 以下に次のファイルを確認できます。

cert.pem privkey.pem chain.pem fullchain.pem

Configure Apache

取得したSSL証明書をApacheサーバーに設定します。

  • 次のように /etc/httpd/conf/httpd.conf を編集します。
<VirtualHost *:443>
  ServerName www.mydomain.com
  DocumentRoot /var/www/html
  SSLEngine on
  SSLCertificateFile /etc/letsencrypt/live/www.mydomain.com/cert.pem
  SSLCertificateKeyFile /etc/letsencrypt/live/www.mydomain.com/privkey.pem
  SSLCACertificateFile /etc/letsencrypt/live/www.mydomain.com/chain.pem

  <Directory "/var/www/vhosts/www.mydomain.com/html">
    ... 省略 ...
  </Directory>
</VirtualHost>
  • Apache を再起動します。
service httpd restart

Update certificate

Let's Encrypt 証明書は、90日の有効期限しかない。

  • 次のコマンドで更新をします。
/usr/local/certbot/certbot-auto renew --post-hook "service httpd restart"

Configure Cron

手動で更新をするのは、手間なので、Cron を使って自動化します。

  • Cron の設定ファイルを作成します。
vim /etc/cron.d/letsencrypt
  • ファイルに以下を記述します。
PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/developer/bin
00 01 * * 01 root /usr/local/certbot/certbot-auto renew --post-hook "service httpd restart"

PATH は、環境によって異なります。 echo $PATH で確認して置き換えてください。
Cron 設定の 00 01 * * 01 は、毎週月曜日の朝1時に実行するを意味します。

(参考に https://crontab.guru/)

  • Cron を再起動します。
service crond restart

以上になります。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした