cPanel ホスティング、クラウドサーバー、Cloudflare、EasyEngine、Cloudways に SSL を実装して、WordPress サイトに HTTPS 経由でアクセスできるようにします。
Web サイトの保護はオプションではなく、コンテンツ、デザイン、SEO と同じくらい重要です。サイトを保護するための重要なタスクの 1 つは、SSL/TLS (Secure Socket Layer/Transport Layer Security) 証明書を構成して、Web サイトにHTTPS経由でのみアクセスできるようにすることです。
HTTPS (HyperText Transfer Protocol Secure) により、クライアント (ブラウザ) とサーバー間のデータ トランザクションが確実に暗号化されます。 オンライン ストアを運営している場合、データはユーザー名、電子メール、パスワード、クレジット カードなどあらゆるものになります。
最近では検索順位シグナルにもHTTPSが含まれるようになったので、ECサイトだけでなく全てのサイトに当てはまります。良いのは、無料で始められることです。
技術的な詳細について説明しましょう。
SSL ハンドシェイクを複数のレベルでオフロードできます。
- ウェブサーバー
- ロードバランサ
- ネットワークエッジ/CDN
HTTPS 経由で Web サイトにアクセスできるように構成するための前提条件は、 SSL/TLS 証明書です。
Let’s Encrypt は無料の証明書を提供していますが、ここで説明したように他にもいくつかあります。 Symantec、Thawte、GeoTrustなどを購入したい場合は、 SSL Storeから入手できます。実装の詳細を見てみましょう。以下では、 Genesis テーマを使用してテスト ドメイン (techpostal.com) を使用しました。
ベスト プラクティスとして、変更を加える前にバックアップを作成し、何か問題が発生した場合にロールバックできるようにします。
Site Ground、 Bluehostなどのトップ共有ホスティングのほとんどは、すべてのプランで無料の証明書を提供しています。 cPanel ホスティングでサイトをホストしている場合は、次の手順が役に立ちます。
以下の例は Site Ground のものですが、どの cPanel ホスティングプロバイダーでも動作するはずです。
- サイトグラウンドへのログイン
- 「マイアカウント」に移動 >> 「cPanel」に移動
- 「ツール」の下の「WordPress ツールキット」に移動します。
- 「アクション」の下の「管理」をクリックします
- 「SSLの構成」をクリックします
- ポップアップが開くので、 「SSL を有効にする」を選択して変更します。
SiteGround は、ドメインの Let’s encrypt 証明書をプロビジョニングし、WordPress で必要な変更を加えて、HTTPS 経由でアクセスできるようにします。
ブラウザで https を使用して URL にアクセスすることで検証できます。私のシナリオでは、https://techpostal.com になります。
これは、私の WordPress サイトで SSL が有効になっていることを示しています。これは問題ありませんが、小さな問題があります。
問題は、サイトが HTTP と HTTPS の両方でアクセスできることですが、これは良くないので、すべてのリクエストが HTTPS 経由でのみ処理されるようにするには、構成をもう 1 つ変更する必要があります。
- cPanelに移動
- 少し下にスクロールして、「セキュリティ」セクションの下にある「暗号化しましょう」をクリックします。
HTTPS 強制と外部リンク書き換えをオンにする
おめでとうございます!共有ホスティングでホストされている WordPress サイトの証明書が正常に有効になりました。いくつかのページにアクセスして、期待どおりに動作することを確認します。
注: HTTP 経由でロードしようとすると画像が表示されないと報告する人もいます。この問題が発生した場合は、 SSL Insecure Content Fixer プラグインをインストールすることで問題を解決できます。デフォルト設定は私にとってはうまくいきました。
ホスティング プロバイダーが無料の SSL を提供していない場合は、Site Ground を試してみることをお勧めします。
クラウド/VPS
個人的には、 SSL ハンドシェイクをネットワーク エッジ デバイスまたは CDN で終了させることを希望します。
以下の手順は、Let’s Encrypt が提供する無料の証明書を使用した Ubuntu 16.04 上の Nginxに基づいています。ただし、Apache HTTP サーバーを使用している場合は、従来の証明書についてはこれを参照し、暗号化についてはこれを参照してください。
- root でクラウド/VPS サーバーにログインします。
- Let’s Encrypt クライアントをインストールする
apt-get install letsencrypt
- ドメインの証明書を生成する
letsencrypt certonly --webroot -w /var/www/html -d techpostal.com -d www.techpostal.com
注: --webroot
実際のDocumentRootの場所に変更してください。上記のコマンドでは、 www を含むドメインの証明書を生成しているため、誰かが www を使用してアクセスしようとしても、証明書エラーは発生しません。
- メールアドレスの入力を求められます
- 利用規約に同意する
数秒かかります。証明書の場所を含むメモが記載された確認メッセージが表示されます。
IMPORTANT NOTES:
- If you lose your account credentials, you can recover through
e-mails sent to ck@chandan.io.
- Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/techpostal.com/fullchain.pem. Your cert will
expire on 2017-11-10. To obtain a new version of the certificate in
the future, simply run Let's Encrypt again.
- Your account credentials have been saved in your Let's Encrypt
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Let's
Encrypt so making regular backups of this folder is ideal.
- If you like Let's Encrypt, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
ポート 443 でリッスンし、SSL 証明書の詳細を提供するように Nginx を構成しましょう。
- Nginx 設定ファイル/etc/nginx/sites-available/defaultを編集し、
listen
ディレクティブの下のserver
ブロックに次の行を追加します。
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
ssl_certificate /etc/letsencrypt/live/techpostal.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/techpostal.com/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_session_cache shared:SSL:15m;
ssl_session_timeout 15m;
- Nginxを再起動します
service nginx restart
これで、クラウド上でホストされている WordPress に HTTPS 経由でアクセスできるようになります。
デフォルト + 上記の構成では、Nginx はポート 80 (HTTP) と 443 (HTTPS) の両方でリッスンします。これは、Web サイトが両方のプロトコルでアクセスできることを意味します。すべてのリクエストが HTTPS 経由で確実に処理されるようにするには、 Really Simple SSL プラグインをインストールします。
- プラグインがインストールされたら、[設定] に移動し、[SSL を有効化してください!] をクリックします。
- アクティブ化すると確認が表示されます
http:// を使用してサイトにアクセスして確認すると、https:// にリダイレクトされることがわかります。さらに、サイトに SSL/TLS の脆弱性がないかテストすることもできます。
素晴らしい! WordPress サイトは、クラウド サーバー上の SSL 証明書で正常に保護されています。
クラウドフレア
Web サイトに SSL を追加する最も簡単な方法の 1 つは、Cloudflare を使用することです。 Cloudflareは、無料のSSL証明書を含む、パフォーマンスとセキュリティの多くの利点を提供します。
すでにサービスを使用している場合は、すぐに有効にする方法を次に示します。
- Cloudflareにログインし、 「暗号化」タブに移動します
- SSL 設定がオフになっていないことを確認します (柔軟性が良い)
- 少し下にスクロールし、「自動 HTTPS 書き換え」で「オン」を選択します。
簡単ですね。
注: 混合コンテンツの問題に気付いた場合は、ここで説明したようにCloudflare Flexible SSL プラグインをインストールする必要がある場合があります。
イージーエンジン
私はEasyEngine が大好きです。これは、WordPress を 10 分以内にクラウドサーバーまたは VPS 上で実行できる最も迅速かつ簡単な方法の 1 つです。
EasyEngine を使用してhttp://
で WordPress をインストールした場合は、次のコマンドを使用してhttps://
にアップグレードできます。
- EasyEngineサーバーにログインし、以下のコマンドを実行します。
ee site update yourwordpresssite.com --letsencrypt
元:
root@techpostal:~# ee site update techpostal.com --letsencrypt
Letsencrypt is currently in beta phase.
Do you wish to enable SSl now for techpostal.com?
Type "y" to continue [n]: y
Downloading LetsEncrypt [Done]
Please Wait while we fetch SSL Certificate for your site.
It may take time depending upon network.
Let's Encrypt successfully setup for your site
Your certificate and chain have been saved at /etc/letsencrypt/live/techpostal.com/fullchain.pem
Configuring Nginx SSL configuration
Adding /var/www/techpostal.com/conf/nginx/ssl.conf
Adding /etc/nginx/conf.d/force-ssl-techpostal.com.conf
Added HTTPS Force Redirection for Site http://techpostal.com
Creating Cron Job for cert auto-renewal
Reload : nginx [OK]
Congratulations ! Successfully Configured SSl for Site https://techpostal.com
Your cert will expire within 89 days.
root@techpostal:~#
簡単なコマンドを 1 つ実行するだけで完了します。
クラウドウェイズ
Cloudways は、クラウドでホストされるプラットフォームの管理に最適です。中央プラットフォームから Google Cloud Platform、AWS、Kyup、Vultr、DigitalOcean 上で Web サイトを起動できます。
Cloudways を通じて管理されている WordPress サイトで Let’s Encrypt SSL 証明書を有効にするには、次の手順を実行する必要があります。
- Cloudways プラットフォームにログイン >> アプリケーション
- WP サイト >> SSL 証明書を選択します。
- メールアドレスとドメイン名を入力し、「証明書のインストール」をクリックします。
- 数分かかりますが、完了すると、ドメイン名で正常に有効になっていることがわかります。
良い点は、Cloudways が自動的に自動更新を行うため、証明書の更新について心配する必要がないことです。 Cloudways は無料トライアルを提供しているので、実際にどのように機能するかを試してみることができます。
今日は、 WordPress で SSL/TLS 証明書を正しく実装する方法について説明しました。これがお役に立てば幸いです。