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系コマンドtopの使い方

こんにちは、今日はプロセス一覧を表示し、自動で更新とソートも行うことができるUnix系コマンドtopの使い方についてまとめていきます。 確認環境 macOS Mojave 10.14.6 使い方 引数 …

no image

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

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

no image

vimコマンドでカーソル移動する方法

こんにちは、今日はvimコマンドでカーソル移動する方法についてまとめていきます。 確認環境 VIM – Vi IMproved 8.0 カーソル移動 キー動作h左に移動j下に移動k上に移動l右に移動g …

no image

Unix系OSで現在使用しているシェルを確認する方法

こんにちは、今日はUnix系OSで現在使用しているシェルを確認する方法についてまとめていきます。 変数$0の値を確認する シェルの特殊変数$0には現在実行中のシェル、またはシェルスクリプト名が格納され …

no image

シェルの設定を行うbashビルトインコマンドsetの使い方

こんにちは、今日はUNIX系OSのシェル、bashの設定を行うコマンドであるsetの使い方についてまとめていきます。 引数なしで実行 以下のように引数なしで実行すると定義されている環境変数、シェル変数 …