3テラバイト

プログラム関連備忘録サイト。主にゲーム。

Unix

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

投稿日:2020年5月5日 更新日:

こんにちは、今日は CentOS 7 + Apache 2.4 の環境に、無料のSSL証明書であるLet’s Encrypt の証明書を導入する手順について解説します。

本記事ではサーバーにSSHで接続し操作を行なっていきます。

Let’s Encrypt 公式ページ
https://letsencrypt.org/ja/

確認環境

$ cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)

$ httpd -v
Server version: Apache/2.4.6 (CentOS)
Server built: Oct 19 2017 20:39:16

certbot

Let’s Encrypt の導入にあたり、certbotというツールをインストールし、そちらで証明書の作成を行います。

以下のページに手順が記載されているため、こちらの手順に沿って進めます。

https://certbot.eff.org/lets-encrypt/centosrhel7-apache

EPELリポジトリの有効化

EPELリポジトリの有効化が必要なため、インストールされていない場合は以下のコマンドでインストールを行います。

$ yum install epel-release

インストールされているかの確認は以下のコマンド等で確認可能です。

yumコマンドのlist installedでインストール済みパッケージの一覧が表示されるため、そこからgrep検索で確認できます。
$ yum list installed | grep epel-release

infoでも情報が確認でき、こちらで”インストール済みパッケージ”のような表示があればインストール済みです。
$ yum info epel-release

certbotのインストール

以下コマンドでcertbotのインストールを行います。

# yum install certbot

証明書の作成

certbotのインストールが完了したら以下のコマンドで証明書の作成を始めます。

# certbot certonly --webroot -w ドキュメントルート -d ドメイン名

メールアドレス入力

Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): 

メールアドレスを入力してEnterを押下します。

利用規約の同意

(A)gree/(C)ancel: 

Aを入力してEnterを押下します。

メール受信設定

(Y)es/(N)o: 

メールを受け取るか選択します。
YかNを入力してEnterを押下します。

設定ファイルの編集とApache再起動

設定ファイル編集

SSLの設定ファイルを編集します。
/etc/httpd/conf.d/ssl.conf
SSLCertificateFile /etc/letsencrypt/live/ドメイン名/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/ドメイン名/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/ドメイン名/chain.pem

シンタックスチェック

編集が完了したらシンタックスチェックを行います。

 $ apachectl configtest

Syntax OKと表示されれば問題ありません。

Apache再起動

Apacheの再起動を行い、SSL設定を適用します。
# systemctl restart httpd

設定ファイルのシンタックスチェックでdoes not exist or is emptyが発生する

$ apachectl configtest

上記コマンドで以下のようなエラーが発生していました。
AH00526: Syntax error on line XXX of /etc/httpd/conf.d/ssl.conf:
SSLCertificateFile: file ‘/etc/letsencrypt/live/ドメイン名/cert.pem’ does not exist or is empty

対処方法としましては、/etc/letsencrypt/以下のarchiveとliveフォルダに読み取りと実行の権限を与えることで解消されました。

$ sudo chmod a+rx /etc/letsencrypt/{archive,live}

まとめ

本日はCentOS 7 + Apache 2.4 環境に Let’s Encrypt の証明書を導入し、WebサイトをSSL化する手順について解説しました。

ここまでお読みいただきありがとうございました。

-Unix


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

no image

時刻の表示と設定を行うUNIX系コマンドdateの使い方

こんにちは、今日はUnix系OSで時刻の表示と設定を行うことができるコマンドのdateの使い方についてまとめていきます。 使い方 引数なしでコマンドを実行すると現在の日付と時刻を表示します。 $ da …

no image

コマンドの実行履歴を確認できるhistoryコマンドの使い方

こんにちは、今日はUNIXのOSで実行したコマンドの履歴を確認することができるhistoryコマンドの使い方についてまとめていきます。 コマンドの実行履歴を表示 引数なしでhistoryコマンドを実行 …

no image

ディスクの使用量を表示するUNIXコマンドdfの使い方

こんにちは、今日はUNIX系OSのコマンドでディスクサイズを表示することができるdfコマンドの使い方についてまとめていきます。 表示内容 Filesystem 512-blocks Used Avai …

no image

vimコマンドで行番号を表示する方法

こんにちは、今日はvimコマンドで行番号を表示する方法についてまとめていきます。 確認環境 VIM – Vi IMproved 8.0 行番号を表示 行番号を表示するには、ファイルを開いた状態で以下の …

no image

bash組み込みコマンドのヘルプを表示するhelpコマンドの使い方

こんにちは、今日はUNIX系OSの主要なシェル、bashにビルトインされているコマンドのヘルプを表示、ビルトインコマンドの一覧を表示することができるhelpコマンドの使い方についてまとめていきます。 …