Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

Apache

Let’s Encryptの証明書をApacheに適用する手順(CentOS7を例にご紹介)

投稿日:2021年3月1日 更新日:

<目次>

(1) Let’s Encryptの証明書をApacheに適用する手順(CentOS7を例にご紹介)
 (1-0) 前提事項
 (1-1) STEP1: Let’s Encryptクライアント(Certbot)のインストール
 (1-2) STEP2:証明書の発行
 (1-3) STEP3:証明書のステータスチェック
 (1-4) STEP4:疎通確認

(1) Let’s Encryptの証明書をApacheに適用する手順(CentOS7を例にご紹介)

本記事ではLet’s Encryptから証明書を発行し、Apacheに適用する事でよりセキュアな通信を実現する手順をご紹介します。

この記事のSTEPを踏んでいくと、正式な証明書によるセキュアなhttps通信をする事ができます。

自身で発行できる「自己証明書」(通称:オレオレ証明書)によるhttps疎通だと、図のBeforeのように「保護されていない通信」という警告が表示されますが、本記事で紹介するLet’s Encryptの証明書を使うと、正規のhttps通信でWebサイトを届ける事ができます(南京錠のマークになる)

(図101)

(1-1) STEP1: Let’s Encryptクライアント(Certbot)のインストール

Let’s Encryptは非営利のCA(認証局)で、公開鍵証明書の発行を行ってくれる団体の一つです。CertbotはそのLet’s Encryptが発行する無料のTLS証明書を、コマンドで簡単に発行するためのOSSです。

(1-1-1) 事前準備

Let’s Encryptから証明書を取得するための前準備として、以下の対応が必要となります。
 
(前準備)
①Apacheの「mod_ssl」のインストール(⇒インストール手順はコチラ
②Certbotのインストール(⇒当記事でご紹介)
 
mod_ssl はApacheでSSLを使用するために必要なモジュールで、こちらに関しては本記事の前段階の記事(⇒Apacheで自己証明書によりhttps化する方法)でご紹介しています。
 
①については別記事でご紹介しているので、以下は②の手順についてご紹介します。

(1-1-2) EPELリポジトリの追加

certbotのパッケージは標準のパッケージマネージャー(rpm等)からは利用できないため、インストールするためにはEPELリポジトリを有効化する必要があります。

$ sudo yum install epel-release

(図111)

(1-1-3) certbotのインストール

【CentOS7以降の場合】
$ sudo yum install certbot python2-certbot-apache

(図112)①


(図112)②

これらのモジュールの導入が完了すると、次はいよいよCertbotを使って証明書を発行していきます。

目次にもどる

(1-2) STEP2:証明書の発行

この手順ではご自身のドメイン(例:tennis-database.com)のSSL証明書を発行します。
 
証明書はcertbotコマンド(通称Let’s Encryptクライアント)を使って、Apache用のものを発行していきます。基本的にコマンドを実行すると、certbotが自動でSSL証明書を取得~インストール~ドメインに適用までの流れを実施してくれます。
 
今回は「–apache」のプラグインを用いてApacheに適した発行を行い、かつ「-d」オプションで証明書を発行する対象のドメインを指定します。ドメインの指定が漏れても、その後に入力を促すプロンプトが出るため、その場合も心配ありません。
 
(構文)
$ sudo certbot --apache -d [ご自身のドメイン]

(例)

$ sudo certbot --apache -d tennis-database.com

(図121)

コマンドを実行すると対話形式で数回、確認事項のプロンプトが出るので、それに答えていきます。
・利用規約への同意
・EFFへのメールアドレスの連携

など

(図122)

 

証明書の発行が完了すると、次のような完了画面が表示されます。
(図123)
(参考①)
発行された証明書は、以下のディレクトリ配下にあるご自身のベースドメイン名(例:tennis-database.com)と同じ名前のディレクトリの中に保存されています。
$ cd /etc/letsencrypt/live/
(図124)「.pem」の拡張子で証明書や鍵が生成されています。

(参考②)
「/etc/httpd/conf.d」のconfファイル(ssl.conf)の中身を見てみると、前回の「自己証明書によるhttps設定」の時と比べて、Lets’s Encrypt証明書の使用するための、いつかの情報が追記・更新されている事が分かります。

(図142)

(参考③)
ドメインは複数指定する事が可能で、その場合は「-d [ドメイン名①] -d [ドメイン名②]」のように連結していきます。その際、最初に指定されたドメインが「ベース」ドメインの扱いとなります。なので、通常は最初にドメイン名を指定し、2つ目以降は「サブドメイン」(例:www.tennis-database.comなど)を指定します。
 

(1-3) STEP3:証明書のステータスチェック

Certbotが正しく証明書を発行したかどうかをチェックするために、Qualys社が提供するSSLサーバテスト(SSLの設定が正しく出来たかを確認するためのテスト)を行います。
 
次のURLの末尾の部分にご自身のドメインを入れて開きます。
https://www.ssllabs.com/ssltest/analyze.html?d=[ご自身のドメイン名]
(図131)

 

URLを入力すると即時でテストが開始され、様々な観点からSSLが適正に設定されているか?をチェックしていきます。具体的には証明書の各種情報の収集や、プロトコル、暗号スイート(予め決められたプロトコルの暗号化方法の組み合わせ)。
 
テストは数分で完了し、ブラウザの画面が自動で更新されます。
 
テストが完了すると、セキュリティや設定の質を評価した判定(グレード)が表示されます。デフォルトの設定の場合は「A判定」になります(A+、A、B、C、D、E、Fの7段階)。
 
(図132)
 

目次にもどる

(1-4) STEP4:疎通確認

この段階で、発行した証明書を使ったhttps接続が可能になっているはずです。その際、冒頭で書いた通りブラウザのURLの左側にあるマークが南京錠の マークに変わっているはずです。

(図141)

目次にもどる

Adsense審査用広告コード


Adsense審査用広告コード


-Apache

執筆者:


comment

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

関連記事

Let’s Encryptの証明書の自動更新の手順(Apacheに適用した例で解説)

<目次> (1) Let’s Encryptの証明書の自動更新の手順(Apacheに適用した例で解説)  (1-1) Let’s Encriptで発行した証明書の期限について  (1-2) …

Apacheのリバースプロキシの設定方法をご紹介

<目次> (1) Apacheのリバースプロキシの設定方法をご紹介  (1-1) 設定の概要  (1-2) 設定の手順   (1-2-1) STEP1:リバースプロキシ用のモジュール確認   (1-2 …

一つの物理サーバに複数のIPアドレスやドメインを設定する方法~Apacheの仮想ホストの種類や設定方法

(0)目次&概説 (1) 記事の目的  (1-1) 目的  (1-2) 前提条件 (2) Apacheの仮想ホストとは? (3) IPベース仮想ホスト  (3-1) 方式の概要  (3-2) 設定方法 …

TomcatのURLに付くポート番号8080を非表示にしてドメイン名のみでサイトにアクセスする方法と手順

本記事で実現したい事は下記2点、①URLのポート番号・アプリ名を非表示(リバプロ)と②JSP/Servlet名非表示(web.xml)です。これらを実現する事でブラウザにドメイン名のみ(例:XXXX. …

Apacheのリバースプロキシでセッションを維持する方法

<目次> (1) Apacheのリバースプロキシでセッションを維持する方法  (1-1) 発生状況・エラーメッセージ  (1-2) 調査  (1-3) 原因  (1-4) 対処法 (1) Apache …

  • English (United States)
  • 日本語
Top