GCPとWordPressを使って独自ドメインブログを無料で運営してみよう!「7.証明書設置(Let’s encrypt)」

2017-09-15

この連載ももう中盤です。
もうしばらくお付き合いください。
今回はドメインをSSL対応にします。
何をするかと簡単に言うと「http」ではなく「https」に対応するようにします。
そのためには証明書と言うのが必要ですが、これがまた高いんですよね。
しかも有料で定期的に更新しないといけない。
お値段が気になる方はこちらとかのぞい見てください。
https://www.joes-ssl.com/hikaku/

しかし!
これも無料でやってみましょう。

なんで証明書を取得するかは下方に書いておきますので、気になる方は読んでみてください。

とりあえずやってみよう

GCPにアクセス

https://cloud.google.com/

ログイン

前回登録したアカウントでログインして下さい。

コンソールにアクセス

コンソールリンクをクリックします。

Compute Engineにアクセス

Compute Engineをクリックします。

VMインスタンス選択

「wordpress-1-vm」などのwordpressに関連する名前があると思いますので、それをクリックします。

SSH接続

SSHと書かれているところをクリックします。

ブラウザによっては「SSH接続を開始しますか」と聞かれますが、その場合は「Yes」を押して進みましょう。

SSHに不慣れな方はまず心に準備を

わけ分かんない黒い画面(以下、SSH。SSLではない)が出現します。

ここからはマウスはあまり使えなく、キーボードを打たないといけませんし、間違えて打つと正常に動かなかったりします。
不慣れの方は不安かも知れませんが、怖がる必要はありません。
このポストに書かれている通りにすれば大丈夫です。
ちなみにこれからいくつかのポストでSSHの画面を使うので、このSSH画面に辿りつく方法を覚えるか、SSH画面を閉じないようにしてください。

必要なプログラム設置

下記のをSSH画面に入力します。
コピー&貼りつけでもOKです。

sudo apt-get install python-certbot-apache -t stretch-backports

注意:今までこのポストに書かれてあったsudo apt-get install certbot python-certbot-apache -t jessie-backportsのコードですが、このブログを書く時にはlaunchpadで配布されるOSのバージョンがDebian 8だったためこのコードで大丈夫でした。しかし、2019年1月28日現在確認したところDebian 9になっているため、新たにWordPressを設置する方は上記のコードを利用しなければなりません。

そしてEnterを押下。

しばらくしたら続けるか聞かれますので、「y」を入力してEnterを押下して下さい。

何やらが始まりますが、これは必要なものをサーバーにダウンロードしているのです。
2~3分すると終わります。

SSLサーバー証明書取得

下記のようにSSH画面に入力してEnterを押下。

sudo certbot certonly --email [あなたのEmailアドレスを入力] --webroot -w /opt/bitnami/apps/wordpress/htdocs/ -d [wwwが付いて無いあなたのドメインを入力] -d [wwwが付いてあるあなたのドメインを入力]

例:

sudo certbot certonly --email abc@gmail.com --webroot -w /opt/bitnami/apps/wordpress/htdocs/ -d yongjinkim.work -d www.yongjinkim.work

そうすると、利用規約同意が表示されるので、「A」を入力してEnterを押します。

しばらくすると「Congratulations!」と成功したとメッセージが出ます。

Webサーバーにサーバー証明書を認識させる

下記のようにSSH画面に入力してEnterを押下。

sudo ln -sf /etc/letsencrypt/live/[wwwが付いて無いあなたのドメインを入力]/fullchain.pem /opt/bitnami/apache2/conf/server.crt
sudo ln -sf /etc/letsencrypt/live/[wwwが付いて無いあなたのドメインを入力]/privkey.pem /opt/bitnami/apache2/conf/server.key

例:

sudo ln -sf /etc/letsencrypt/live/yongjinkim.work/fullchain.pem /opt/bitnami/apache2/conf/server.crt
sudo ln -sf /etc/letsencrypt/live/yongjinkim.work/privkey.pem /opt/bitnami/apache2/conf/server.key

Webサーバー再起動

下記のをSSH画面に入力してEnterを押下。

sudo /opt/bitnami/ctlscript.sh restart apache

このように表示されれば再起動出来たことになります。

確認

あなたのドメインの先頭に「https://」を付けてアクセスしてみましょう。
Chromeでアクセスした場合、「保護された通信」と表示されたら、SSL導入成功になります。

お疲れ様でした。

FAQ

SSLってなに?

Secure Sockets Layerの略字です。
サーバーとそのサーバーにアクセスしている利用者間の通信を暗号化するものです。

SSL導入すると何が良いの?

  • 良いことの一つは入力した内容が保護されます。
    例えば、あなたが今まで設置したあなたのブログにログインする際にIDとパスワードを入力した時、httpのままだと筒抜けになります。
    筒抜けになる原理はあなたが入力したIDとパスワードはあなたのブログサーバーにダイレクトに送られるのではなく、多数のルーターを通っていくためです。
    悪意を持った人がルーターに細工をすると、暗号化されてないIDとパスワードはその人に読み取られるのです。
  • もう一つの良いことはSEO面で効果があります。
    これはGoogleの公式ブログにも書かれている内容です。
    https://webmaster-ja.googleblog.com/2014/08/https-as-ranking-signal.html
    これによると凄く影響があるわけではないが、「長い期間をかけて強化していきます」と明記しているので、SEO対策になるはずです。

正常に動作しない!!

原因はさまざまなのでどれが原因かは直接見ない限り俺にも分かりません。
これに関する公式文書がありますので、こちらを参考にしてみてください。
https://docs.bitnami.com/virtual-machine/components/apache/#how-to-install-the-certbot-client-for-the-lets-encrypt-certificate-authority

  • この連載を読んで独自ドメインのWordPressブログを立ち上げた方々へお願い。

    簡単な紹介で良いので、このポストを見てブログを立ち上げたことを自分自身のブログに書いてください。俺のためにも、あなたのためにも、そしてあなたのブログを見た人のためにもなりますのでみんなHappyになります。是非お願いします!

    そしてもし必要であれば、あなたのブログの紹介をコメントに書いて頂ければ、それを利用してリンクをこのブログに貼って差し上げます。いくらかSEO対策になると思います。 コメントへのリンクはこちら

関連連載リスト