無料SSL Let’s Encryptの導入 ~ 更新方法まで

開発
スポンサーリンク

はじめに

無料のSSL証明書「Let’s Encrypt」導入方法の備忘録です。

Let’s Encryptの証明書有効期限は3ヶ月間となっています。

この記事ではLet’s Encryptの導入方法と、証明書の更新方法を簡潔にご紹介します。


※CentOS7 + Apache2.4で実施しました。

導入方法

HTTPS (443) ポートを開放

# firewall-cmd --add-service=https --zone=public --permanent
# firewall-cmd --reload

certbotをインストール

certbotはLet’s Encryptのクライアントソフトです。

certbotをインストールすることにより、簡単なコマンド操作で証明書の取得・更新ができるようになります。

# yum install epel-release
# yum -y install certbot

証明書の初回作成

以下のコマンドを実行すると/etc/letsencrypt/live/[ドメイン名]/に証明書が生成されます。

# certbot certonly --agree-tos --non-interactive -d [ドメイン名] --webroot -w [ドキュメントルートのパス] --email [管理者のメールアドレス]

–webroot -w [ドキュメントルートのパス]はウェブサーバで公開するコンテンツが入っているディレクトリを指しています。

–webroot -w /var/www/example -d example.com

mod_sslのインストール

mod_sslをインストールします。
mod_sslはApacheでSSL/TLSを利用するための定番のモジュールです。

# yum -y install mod_ssl

コマンドを実行するとapacheのモジュールフォルダ内にssl.confファイルが生成されます。

mod_ssl設定

mod_sslに対して、最小限の設定しなければいけない項目だけ記述しておきます。

VirtualHost 443タグ内にある(なければ追加)
ServerName
ServerAdmin
DocumentRoot
SSLCertificateKeyFile
SSLCertificateFile
SSLCertificateChainFile
に対して値を指定していきましょう

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

<VirtualHost *:443>
    ## 以下設定箇所だけ抜粋
    ServerName ドメイン名
    ServerAdmin 管理者のメールアドレス
    DocumentRoot ドキュメントルートパス
    SSLEngine on
    SSLCertificateKeyFile /etc/letsencrypt/live/ドメイン名/privkey.pem
    SSLCertificateFile /etc/letsencrypt/live/ドメイン名/cert.pem
    SSLCertificateChainFile /etc/letsencrypt/live/ドメイン名/chain.pem
</VirtualHost>

HTTP→HTTPS転送設定(任意)

mod_rewriteモジュールを使ってすべてのアクセスをHTTPSに転送することができます。
※こちらは任意項目です。不要であれば飛ばしてください。

設定ファイルをモジュールフォルダ内に作成します。

vi /etc/httpd/conf.d/rewrite.conf

<IfModule rewrite_module>
    RewriteEngine On
    LogLevel alert rewrite:trace3
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
</IfModule>

Apacheの再起動

設定を反映させるためにApacheを再起動させます。

# systemctl restart httpd

確認

ここまできたらHTTPS化できてるはずです。
自身のサイトにブラウザでHTTPSでアクセスしてみましょう。
画像のようになっていれば成功です。

更新方法

文頭でも記述した通りLet’s Encryptの証明書有効期限は3ヶ月間となっています。
期限が近づくと設定したメールアドレスに対して有効期限のアラートが届きます。

期限まで30日未満になったら、更新作業が可能となるので、忘れないように更新作業をしましょう。

コマンドで更新

以下コマンドを実行することで期限を延長することができます。

# certbot renew

とても簡単ですね!

ただし、ヒューマン作業だと面倒ですし、忘れてしまうこともあるかもしれません。
そんなときはcrontabで自動化するとよいでしょう。

crontabで自動更新

自動化といってもcrontabでコマンドを定期的に実行してもらうだけです。

※ 証明書の更新には root 権限が必要ですので、root ユーザーの cron に設定するようにしてください。

# crontab -u root -e

00 05 01 * * certbot renew

ここでは例として、毎月1日の深夜5:00に証明書を更新するようにしました。

crontabの日時の指定は左から 分 時 日 時 曜日(0~7 [0,7は日曜日] or sun~sat)となっています。


以上、無料SSL証明書「Let’s Encrypt」の導入 ~ 更新の方法でした!

参考

Let’s Encrypt 総合ポータル

https://free-ssl.jp/docs/using.html

CentOS 7 + Apache 2.4 に Let’s Encrypt の証明書を導入する手順

CentOS 7 + Apache 2.4 に Let’s Encrypt の証明書を導入する手順 |
本稿では、CentOS 7 上で Let's Encrypt の無償のSSL/TLSサーバー証明書を発行して Apache 2.4 で利用する手順について解説します。

Let’s Encrypt の証明書の更新を自動化する手順 (cron)

Let’s Encrypt の証明書の更新を自動化する手順 (cron) |
無料で SSL/TLS 証明書を発行できる Let’s Encrypt の証明書有効期限は3ヶ月間です。 有効期限が近づくと Let’s Encrypt からその旨をお知らせするメールが届くわけですが、毎回手作業で certbot renew コマンドを実行するのは面倒です。 ここでは、Let’s Encrypt の証...
タイトルとURLをコピーしました