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

Unityで処理時間を計測する

System.Diagnosticsに定義されているStopwatchクラスを使用して処理時間を計測します。 System.Diagnostics.Stopwatch stopWatch = new …

no image

環境変数を設定するUNIX系コマンドexportの使い方

こんにちは、今日はUNIX系OSで環境変数の設定を行うことができるコマンドexportの使い方についてまとめていきます。 環境変数の定義方法 すでに定義されているシェル変数を環境変数にエクスポート以下 …

no image

実行中のプロセス一覧を表示するUnix系コマンドpsの使い方

こんにちは、今日はUnix系OSで実行中のプロセス一覧を表示するコマンド、psの使い方についてまとめていきます。 使い方 引数なしでコマンドを実行すると、現在のユーザが実行中のプロセスの一覧が表示され …

no image

bashのキーバインドまとめ

こんにちは、今日はbashで割り当てられているキーバインドについてまとめていきます。 確認環境 GNU bash, version 3.2.57 主なキーバインド一覧 キー説明Ctrl + a行頭にカ …

no image

ビルトインコマンドを実行するコマンドbuiltinの使い方

こんにちは、今日はエイリアスが設定されているものでもビルトインのコマンドを実行することができるコマンドbuiltinの使い方についてまとめていきます。 確認環境 bash 使い方 biltinコマンド …