【初心者向け】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. 2013/8/29

    MEOって何け?
  2. 2014/7/19

    おさんぽ
  3. 2013/7/11

ピックアップ記事

  1. 2016-12-27

    【正月特番!!!】2017年のお正月に見たほうがよい番組はこれ!!!!

    出典:http://www.tv-tokyo.co.jp/oogui/ 2017年のお正月、数々の特…

ピックアップ記事

  1. 2015-9-18

    アメリカでサルバドール・ダリを見てきました。

    こんにちは!9月5日〜11日までアメリカに行ってきました。ツアーの詳細を全く確認せずに旅だったので、…

ピックアップ記事

  1. 2016-11-15

    ずぼらさん必見!簡単ごはん『もぐー』の人気レシピ動画まとめ 〜ごはん編〜

    ずぼらでも簡単においしく作れるレシピまとめ もぐー(mogoo)とは、「かんたん・おいしい・たのし…
ページ上部へ戻る
Top