【初心者向け】CentOS 7 + Apache + 無料SSLによる HTTP/2 の導入方法

CentOS 7 + Apache 2.4 + 無料SSL で、
HTTP/2 の導入方法を細かく丁寧にご紹介します!

HTTP/2、体感でも速くなっているのがわかります。

※Apacheは、2.4.17以降から HTTP/2 に対応しています。

 

1、開発ツールの準備

CentOS7.1を「最小限のインストール」で導入されている場合は、
入れといてください。

一応、yumのアップグレードも

 

2、http と https の許可設定

まず、現在の設定の確認をしてみます。

ssh のみが許可されている状態です。

続いて、http と https を許可設定します。

設定を読込みなおします。

再度、設定を確認します。

 

3、リポジトリの追加

・RPMForge

・EPEL

・remi

一部、下のように変更しておきます。

 

4、HTTP/2のために必要なモジュールのインストール

①OpenSSL 1.0.2 のインストール
・OpenSSLのコンパイルに zlib が必要なので、インストールします。

・ついでにCコンパイラもインストール

・OpenSSL本体のインストール

・OpenSSL1.0.2h のライブラリにパスを通します。

②Nghttp2 のインストール
・Nghttp2 が必要とするライブラリをインストール

・Nghttp2 本体のダウンロード

・Nghttp2 のインストール
環境変数 OPENSSL_CFLAGS と OPENSSL_LIBS に先ほどインストールした、
OpenSSL1.0.2h のディレクトリパスを指定してコンパイルします。

/usr/local/lib 配下に「libnghttp2」がインストールされるので、
こちらもライブラリのパスに追加しておきます。

 

5、Apache 2.4.20のインストール

①ARP 、 ARP-util 、PCREライブラリのインストール
Apache 2.4系を、ソースコードからインストールする場合は、
ARP と ARP-util が必要になるので、インストールします。

ARP

ARP-util

また、PCREライブラリも必要になるので、インストールします。

②Apache 2.4.20 本体のインストール
Apache 2.4.20 ソースコードのダウンロード

ダウンロードしたソースコードを解凍して、ディレクトリを移動します。

HTTP/2 を使うために必要なモジュール mod_http2 と mod_ssl を有効にし、
–with-ssl オプションで、OpenSSL1.0.2h のディレクトリパスを指定してインストールします。

以上で Apache 2.4.20 が /usr/local/apache2/ 以下にインストールされました。

③シンボリックリンクを作成する

ついでに、設定ファイルも作成

④自動起動の設定

httpdファイルを以下のように変更します。

 

 

6、httpd.confファイルの設定

・以下のモジュールを有効にします。

・以下をhttpd.confの行頭に追加

ついでに、起動時にアラートが出るので、
ServerName のコメントも外しておきます。

・設定ファイルのインクルード

・初期のドキュメントルートのコメントアウト
以下の箇所をコメントアウトします。

・バーチャルホストの設定

まずは、デフォルトのバーチャルホストの記述をコメントアウトします。

その後、
YourDomainNameを取得したドメイン
YourDirectoryNameをドキュメントルートのディレクトリ名
に置き換えて以下を追加

ドキュメントルートも一緒に作成しておきます。

・httpd-mpm.confの設定

以下のように変更

・httpdの再起動
シンタックスエラーチェック

エラーがなければ再起動

ブラウザでドメインにアクセスして

This is a test.

が表示されればオッケー!

 

7、SSL(無料で使えるLet’s Encrypt 証明書)の導入

・まずは、gitクライアントのインストール

・Lets Encrypt クライアントのインストール

・Lets Encrypt クライアントが依存するパッケージのインストール

・証明書取得コマンドの実行
YourDirectoryNameの部分をドキュメントルートに置き換えて
以下を実行します。

・SSLの設定ファイルのインクルード

・httpd-ssl.confの設定

まず、SSLの暗号化方式を変更します。

脆弱性のある SSLプロトコルを無効にします。

HTTP/2 を有効にするため「Protocols h2 http/1.1」ディレクティブを追加します。
デフォルトのバーチャルホストの記述をコメントアウトして、
YourDomainName
YourDirectoryName
を置き換えて、
以下のようにバーチャルホストを追加します。

・Lets Encryptの証明書の自動更新設定
Lets Encryptの証明書は、有効期限が90日であるため、
自動更新の設定を行います。

毎月、1日のAM:5:00に更新されるように設定します。

以下を追加

・httpd再起動
シンタックスエラーチェック

エラーがなければ再起動

・HTTP/2の確認
httpsでドメインにアクセスします。
ブラウザのデバッグツールで
HTTP/2.0通信になっていればオッケーです!
ちなみに下の画像では、FireFoxで確認しています。

HTTP:2_confirm

 

最後に

Apache 2.4.20 に Lets Encryptで無料のSSLを使って、
HTTP/2 プロトコルを設定しました。

2016年6月2日時点では、yumで一気にインストールとはいかず、
ソースからコンパイルしないと導入できないのですが、
HTTP/2は、やっぱり速いです!

苦労するだけの価値があると思います!

次回は、2倍の高速化を達成したといわれる

PHP 7 の導入方法を紹介します!

関連記事

コメントは利用できません。

ピックアップ記事

  1. 2016-12-6

    参考にしたい最新ランディングページ5選〜2016年冬版〜

    最近太りに太りまくっています。 はぁ・・・。 ということでお気に入りのLPを紹介します。 …

ピックアップ記事

  1. 2016-10-14

    【テクニック不要!】合コンで絶対に守るべき5つのポイント

    合コンで出会った女の子となかなか次に発展しない… お礼のLINEを送っても返ってきたことがない…そ…

ピックアップ記事

  1. 2016-6-28

    【売れっ子への道渋滞中】若手芸人高齢化について考える。其の一

    若手といえば何才くらい?テレビで体を張って笑いを取る若手芸人たち。「若手」という言葉を聞けば、誰もが…
ページ上部へ戻る
Top