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

MacOSXでCPU温度やファン回転数をコマンドラインから取得するコマンドiStatsの使い方

こんにちは、今日はMacOSXでCPU温度やファン回転数を取得することができるコマンドiStatsの使い方についてまとめていきます。 iStatsはRubyで書かれたツールでRubyGemsを用いてイ …

no image

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

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

no image

vimコマンドでファイル差分を確認する方法

こんにちは、今日はvimコマンドでファイル差分を確認する方法についてまとめていきます。 確認環境 VIM – Vi IMproved 8.0 差分表示 vimエディタで差分を確認するにはdiffspl …

no image

bashのシェル変数一覧

こんにちは、今日はUNIX系OSのシェルbashでシェルによって定義されている変数についてまとめていきます。 シェルによって定義されている変数一覧 変数名説明BASHbashシェルのパスBASH_AR …

no image

findコマンドで取得したファイルをmvコマンドに渡す方法

mvコマンドの-tオプションを使用する 以下の例では拡張子がlogのファイルをlogsというディレクトリに移動します。 $ find . -name "*.log" | xargs …