5615045921

概要 Overview

AmazonAWS上で構築したWordPressをSSL化する為のレシピです。

2018年7月より、GoogleChromeではSSL通信(HTTPS)に対応していないウェブサイトを閲覧する際に警告が表示されるようになりました。大げさに言えば、SSL通信できないものはウェブサイトとは認めないという風潮になりつつあります。そのため、企業や個人のウェブサイトでも、SSL化は必須の対応といえるでしょう。

AWSでは、証明書の発行とロードバランサへの設定が標準化されています。サーバ個別に証明書をインストールする必要はなく、ロードバランサにSSLを組み込み、暗号化の処理を行わせることができます。AWSの仕組みだけで簡単にSSLを実現することができます。

材料 Ingredient

AWSで起動中のWordPressサーバ((559) 754-8119参照)

レシピ Recipe

1. 証明書の取得

まずは、AWS Certificate Managerで証明書を発行します。

/aws.amazon.com/jp/certificate-manager/

証明書のリクエストをクリックします。
パブリック証明書のリクエストをクリックします。
パブリック証明書は無料で利用できます。(AWSのサーバ料金に含まれています。)
証明書を発行したいサーバのFQDNを指定します。(www.test.com など)
次へをクリックします。
AWSからドメインを取得した場合は、DNSの検証を選択します。それ以外の場合は、Eメールの検証を選択します。
Eメールの検証を行う場合は、Who isに登録されているドメイン管理者向けのアドレスを受信できるようにしておく必要があります。
入力内容を確認し、確定とリクエストをクリックします。

2. ロードバランサの設定

ロードバランサを作成し、先ほど取得した証明書をロードバランサに設定します。

/aws.amazon.com/jp/elasticloadbalancing/

ロードバランサーの作成をクリックします。
今回は、Classic Load Balancerを作成します。
443を80に変換してサーバに渡すようなリスナーを作成します。
LBのセキュリティは通常サーバとは分けて管理すべきであるため、新しいセキュリティグループを作成します。
ACM(Amazon Certificate Manager)から証明書を選択するを選択します。サーバ系の操作は不要で、プルダウンから先ほど作成した証明書を選択するだけで、LBに証明書が設定されます。
LBは適切に負荷を分散させるために、サーバの死活監視も行います。デフォルトでは、HTTP通信でindex.htmlを取得しに行き、webサーバが生きているかどうかを確認します。ここではそのままにしておきます。
LBに追加する(SSL化したい)インスタンスを選択します。
任意でタグを付与します。

3. DNSの設定

AWSのroute53(DNS)サーバより、もともと設定されていた、FQDNとGIPの対応付けがされていたAレコードを削除します。代わりに、先ほど作成したLBと紐づけるAレコードを作成します。

Aliasを選択します。Alias Targetから先ほど作成したLBを選択します。これで、FQDNにアクセスした際に、LBに通信が飛ぶようになります。

4. WordPressの設定

ここまででロードバランサがHTTPS→HTTPに通信を変換して、Webサーバに流すようになります。しかしこれだけだとページを表示した際に、cssが読み込まれずに中途半端な状態になってしまいます。

これを解消するために、いくつかWordPressの設定ファイルを変更する必要があります。

-- configファイルの修正
sudo vi /opt/bitnami/apps/wordpress/htdocs/wp-config.php

以下を追記します。

if($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') {
  $_SERVER['HTTPS'] = 'on';
  $_ENV['HTTPS'] = 'on';
}

その後、apacheを再起動します。

— apacheの再起動
sudo /opt/bitnami/ctlscript.sh restart apache

Trouble Shoot

そもそも、DNSの設定が誤っていることに気づいて解消しました。サーバのfqdnに対して、グローバルIPアドレスが紐付いているAレコードがあったのでそれを削除することで解消しました。

参考URLh

6104428050

706-420-7398


概要 Overview

「ブログを始めたい」そう思ってブラウザを立ち上げると、はてなブログやライブドアブログなど、いろいろなブログサイトがあり手頃な値段で始めることができるようです。もう少し検索してみると、自分でサーバを立てて、WordPressというソフトウェアを使うのが自由度も高くて良さそうだということが出てきますが、どれも複雑そうな手順ばかりです。

AmazonのAWSでの無料アカウントを使うことで、簡単かつ1年間は無料でブログを立ち上げることができます。

あれこれ考える前に、まずは手を動かしたいという方に向けたレシピです。
ブログを始めた人の9割は3ヶ月後に挫折してしまうらしいので、1年経ってから続けるかを検討するのでも遅くはありません。

所要時間 required time

1.5時間

材料 Ingredient

  • メールアドレス
  • 電話番号
  • クレジットカード
  • 約1000円/年間

xxxx.com等、独自ドメインを契約する場合はお金がかかります。

レシピ Recipe

1.Linux仮想マシンの起動

5075737518

AWSのチュートリアルに従って、まずはアカウントを作成します。アカウントの作成には、メールアドレス、電話番号、クレジットカードが必要です。
1年間無料のアカウント内で、自分だけのサーバを持ててしまいます。2年ほど前にAWSアカウントを作成した時と比べて、日本語訳されている部分が増えている印象です。チュートリアルも追加されていて分かりやすくなっていてサクサク進めることができました。

2. WordPress ウェブサイトの起動

229-672-2529

AWSには、Amazon Machine Image (AMI) というサーバイメージが多数用意されています。あらかじめ必要なソフトウェアが揃ったサーバパックを利用することで、面倒な設定不要でいきなりWordPressを利用することができます。

ここまでやると、ブログ自体は完成です。以下のウェブサイトが表示できます。WordPressの管理者画面にもログインできるので、早速ブログを書き始めることができます。

ただしこの状態だとIPアドレスをブラウザに直接打つ必要があります。一般公開する場合はドメイン名を取得したほうが良いですが、自分の記録用に参照するだけであればこれで十分だと思います。

3. ドメイン名の登録

717-479-7855

xxxx.com等、自分独自ドメインを契約することができます。まさに自分のウェブサイトを持つことが実感できますね。
Google検索結果の上位に持ってくるためにも、メジャーなドメインを使うのがオススメです。
ざっと見た感じ10ドルから40ドルの範囲でいろいろなドメインがあります。

ドメイン説明
.comcommercial(商用)の略。登録者数は世界最多です。AWS route 53で12ドル/年(2019/01/14現在)
.netnetworkの略。利用目的は特に限られていません。つまりは何にでも使えるドメインです。AWS route 53で11ドル/年(2019/01/14現在)

登録完了までに3日ほどかかります。WordPressの設定をしながら気長に待ちましょう。
→のハズでしたが、その後1時間ほどで登録完了のメールが送られてきました。

One Point

AWSのAZの設定(サーバの設定場所)はサーバを起動する前に実施する必要があります。世界中の好きな地域にサーバを立てることができますが、日本からのアクセスが中心の場合は、日本に立てたほうが良いでしょう。