質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

91.01%

  • WordPress

    5983questions

    WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

  • AWS(Amazon Web Services)

    1618questions

    Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

  • Ubuntu

    1085questions

    Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

  • HTTPS

    205questions

    HTTPS(Hypertext Transfer Protocol Secure)はHypertext Transfer プロトコルとSSL/TLS プロトコルを組み合わせたものです。WebサーバとWebブラウザの間の通信を暗号化させて、通信経路上での盗聴や第三者によるなりすましを防止します。

【AWS】AWS環境に構築したWordpressのhttpからhttpsへの移行方法

解決済

回答 2

投稿

  • 評価
  • クリップ 2
  • VIEW 315

yamadatar

score 0

前提・実現したいこと

※URLは例としてexample.co.jpとしております
AWSのサービスのみで、Wordpressサーバで構築したHPのアドレスを、httpからhttpsへ移行したいです。
例)http://www.example.co.jp  =>  https://www.example.co.jp

使用環境 ※全てAWS上での環境です

①Wordpressサーバ ※AWSで構築しております
OSはUbuntu16.04 64bit
②Certificate Managemer
example.co.jpのドメインで証明書申請 => 発行完了 
③Application Load Balancer
・リスナーに80と443を設定
・セキュリティーポリシーは「ELBSecurityPolicy-2016-08」を指定
・443には上記②で発行した証明書を設定
・ターゲットは①のポート80を指定、登録済みターゲットに設定
④Route53
・example.co.jpのAレコードをセット
Alias=Yes、Value=③のロードバランサーのDNS名「~.elb.amazonaws.com」を指定して保存
⑤セキュリティーグループの設定
HTTP(80)、HTTPS(443)のインバウンドを許可設定にしております。

発生している問題・エラーメッセージ

Google Chromeにてhttpsで該当のページへアクセスすると、
「この接続ではプライバシーが保護されません」
(該当HP)では、悪意のあるユーザーによって、パスワード、メッセージ、クレジット カードなどの情報が盗まれる可能性があります。
NET::ERR_CERT_AUTHORITY_INVALID
が出力し、アクセス出来ません。
Firefox等で例外許可し、無理やりアクセスする事は可能です。

試した事

①wp-config.phpにて、DBのパスワードなどが記述されている箇所のすぐ下へ次のように追記
define('WP_HOME','https://www.example.co.jp');
define('WP_SITEURL','https://www.example.co.jp');  
※作業開始前からWordpressの管理画面で、Wordpressアドレスとサイトアドレスがグレーアウトになっていました。
この編集を実行した後、HPへアクセスすらできなくなり、wp-config.phpファイルを元に戻しても復旧せず。
仕方なく、事前にとっていたスナップショットから復旧させました。

②.htaccessを編集し、下記の記述を先頭行へ追記
RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
エラー変わらずでした。
③WordpressにReally Simple SSLのプラグインをインストール
エラーとなり、うまくいきませんでした。現在は無効にしてあります。
④ロードバランサーのセキュリティーポリシー設定
「ELBSecurityPolicy-2016-08」以外のポリシー全てに変更してみましたが、変化ありませんでした。

Wordpress、およびネットワークに疎く申し訳ございませんが、お知恵をお貸しください。
どうぞよろしくお願い致します。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

check解決した方法

0

結局、当初の方法を断念し、下記URLを参考にしてそれぞれ対応致しました。

 1. https化

Bitnami wordpressをLet’s Encryptを使って無料でSSL化【AWS】  
まず、上記でhttps化を行いました。 ※念のためリンク先の内容をザッと転記します。

  1. Gitをインストール  
    sudo apt-get install libcurl4-gnutls-dev libexpat1-dev gettext  
    sudo apt-get install git

  2. Let’s Encryptのインストール  
    cd  任意のディレクトリ  (Let’s Encryptの展開場所)  
    git clone https://github.com/letsencrypt/letsencrypt  
    cd letsencrypt  
    ./letsencrypt-auto --help  

  3. Let’s EncryptでSSL証明書を発行  
    ./letsencrypt-auto certonly -a standalone -d <証明書を取得したいドメイン>  
    Congratulations!とでればSSL証明書の発行成功。
    ※以下のエラーが出た場合はApacheを一度停止してから再度コマンドを実行。  
    sudo /opt/bitnami/ctlscript.sh stop apache
    At least one of the (possibly) required ports is already taken.  
    <生成した証明書の確認>   
    sudo ls /etc/letsencrypt/live/<domain>  

  4. Apacheでhttps通信を有効化    

  • /opt/bitnami/apache2/conf/httpd.confの下記コメントアウトを外す      
    Include conf/extra/httpd-ssl.conf  

  • /opt/bitnami/apache2/conf/extra/httpd-ssl.confの編集  
    ※発行した証明書のパスを指定  
    SSLCertificateFile "/etc/letsencrypt/live/<domain>/cert.pem"  
    SSLCertificateKeyFile "/etc/letsencrypt/live/<domain>/privkey.pem"  
    SSLCertificateChainFile "/etc/letsencrypt/live/<domain>/chain.pem"  
    元の設定はコメントアウトするか削除する  

  • /opt/bitnami/apache2/conf/bitnami/bitnami.confの編集  
    <IfModule mod_rewrite.c>    
    RewriteEngine On  
    RewriteCond %{HTTPS} !=on  
    RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R,L]
    </IfModule>
     
      
    ↓からファイルの最終行まですべてコメントアウト   
    Default SSL Virtual Host configuration   

  • /opt/bitnami/apache2/conf/extra/httpd-ssl.confの編集  
    </VirtualHost>  
    ↓    
    Include "/opt/bitnami/apache2/conf/bitnami/bitnami-apps-prefix.conf"
    </VirtualHost>  
    Include "/opt/bitnami/apache2/conf/bitnami/bitnami-apps-vhosts.conf"
     
     
    これでhttps通信が有効化となる。  
    但し、httpからのリダイレクトが完了していない状態。

  • /opt/bitnami/apache2/conf/extra/httpd-ssl.confの編集  
    <VirtualHost _default_:443>
    Header set Strict-Transport-Security "max-age=315360000; includeSubDomains"  
    ※この2行を追加

  • Apacheの再起動  
    sudo service httpd restart  
      

 2.WordPressのデータベース置換  

【リス様】WordPressのデータベース置換プラグインといえばSearch Regex      
 
続いて、上記でサイト内にあるデータの一括https置換を行いました。  
一部ページでhttpのままだったりしましたが、ヘッダーのロゴ画像だけhttpsに置換されていなかったりしましたので、
該当の画像を設定している場所をWordpressの管理コンソールから探し、直接変更する事で解消しました。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

つい最近全く同じ現象になり、結局ELBを外し正しく動作しました。
ELBにACMで取得した証明書を付与しSSL対応しているかと思うのですが、結局ELBのリスナーで80番ポートが指定されているのもややこしい原因なのではないかと思い。
EC2単体にしてSSL対応はこちらの記事の通り、Let's Encryptを使って行いました。

あまりいい解決策ではないのですが、様々な方法を試してみて結果ELBを外すという選択をしました...

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/11/11 03:26

    >>kenny_sayamaさん

    リンクの添付、ありがとうございます。
    記事の情報を参考に進めてみましたが、mod_sslのインストール部分でつまづいております。
    私の環境ではApache2.4.25を使用しております。
    投稿されているリンク先の記事と同様に、mod24_sslのインストールとなるかと思います。
    しかし、下記コマンドを実行しても何もヒットしません。

    yum search mod ssl

    mod24_sslがヒットしないのです。
    以下、検索結果です。

    ============================ N/S Matched: mod, ssl =============================
    globus-openssl-module.i686 : Globus Toolkit - Globus OpenSSL Module Wrapper
    globus-openssl-module.x86_64 : Globus Toolkit - Globus OpenSSL Module Wrapper
    globus-openssl-module-devel.i686 : Globus Toolkit - Globus OpenSSL Module
    : Wrapper Development Files
    globus-openssl-module-devel.x86_64 : Globus Toolkit - Globus OpenSSL Module
    : Wrapper Development Files
    globus-openssl-module-doc.noarch : Globus Toolkit - Globus OpenSSL Module
    : Wrapper Documentation Files
    perl-Net-FTPSSL.noarch : Perl module for FTP over SSL/TLS
    perl-Net-SSLGlue.noarch : Add/extend SSL support for common perl modules

    Full name and summary matches only, use "search all" for everything.

    何かお分かりになりますでしょうか?

    キャンセル

  • 2017/11/11 18:53

    ubuntuをお使いの場合は、yumが使えないからでないでしょうか?
    ubuntuだとapt-get installかと思うのですが、いかがでしょうか?

    キャンセル

  • 2017/11/11 23:29

    >> Kenny_sayamaさん

    ご返信ありがとうございます。
    おっしゃる通り、Ubuntuですのでyumは使用不可でした。
    apt-get install ですと E: Unable to locate package mod24_ssl となってしまい、ダメでした。
    そこで、yumを別途インストール、epelリポジトリを登録したのですが、
    mod24_sslは見つからずにインストール出来ないという状態になります。

    キャンセル

  • 2017/11/13 09:24

    Amazon Linuxをお使いではないということですよね?
    であれば、別の記事を参照した方が良さそうです。。
    ubuntuではパッケージ名などが少し変わってくるなどあると思うので、以下の記事を参照してみてはいかがでしょうか?
    https://qiita.com/tontan9616/items/bd8b2f1f360f26c7bb46

    キャンセル

  • 2017/11/13 14:24

    >>kenny_sayamaさん

    AWS上にあった、WordPress Certified by Bitnamiを使用しています。
    最初からインストールされている、
    /opt/bitnami 内のApache2を使用しております。
    参照記事ありがとうございます。
    なかなかうまくいきませんが、色々と試してみようと思います。

    キャンセル

  • 2017/11/13 23:10

    Amazon Linuxで一からやってみてはどうでしょうか?

    キャンセル

  • 2017/11/15 09:57

    >> kenny_sayamaさん
    ありがとうございます。
    現在の環境で移行したかった為、今回質問させて頂きました。
    最終手段としてはAmazon Linuxでhttps環境を作り、サイトデータを移行する方法を考えています。

    キャンセル

  • 2017/11/15 12:28

    あまりお力になれず申し訳ありません...

    キャンセル

  • 2017/11/15 12:38

    >> kenny_sayamaさん
    そんな事はありません。
    教えて頂いた記事の手順などは、一からやる際に役立ちます。
    こんなに早く一次回答をくれる方がいるとは思いませんでした。
    ご丁寧にありがとうございます。

    質問はこのままのステータスで残しておき、自分でも色々試してみます。
    自己解決した場合にはステータスを更新します。

    キャンセル

  • 2018/03/29 18:44 編集

    結局、当初の方法を断念致しました。

    下記URLを参考にしてそれぞれ対応致しました。

    1. Bitnami wordpressをLet’s Encryptを使って無料でSSL化【AWS】
    https://www.moor-triangle.com/2017/02/01/%E3%80%90aws%E3%80%91bitnami-wordpress%E3%82%92lets-encrypt%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E7%84%A1%E6%96%99%E3%81%A7ssl%E5%8C%96/

     まず、上記でhttps化を行いました。


    2.【リス様】WordPressのデータベース置換プラグインといえばSearch Regex
    https://website-homepage.com/wordpress/plugin/manage/search-regex

     続いて、上記でサイト内にあるデータの一括https置換を行いました。


    以上です。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 91.01%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • WordPress

    5983questions

    WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

  • AWS(Amazon Web Services)

    1618questions

    Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

  • Ubuntu

    1085questions

    Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

  • HTTPS

    205questions

    HTTPS(Hypertext Transfer Protocol Secure)はHypertext Transfer プロトコルとSSL/TLS プロトコルを組み合わせたものです。WebサーバとWebブラウザの間の通信を暗号化させて、通信経路上での盗聴や第三者によるなりすましを防止します。