「wp」カテゴリーアーカイブ

思ったより難しいAWSでSSL化してwordpress

AWSのサブネットにwordpressのデータを置いて保護して、本体のパブリックネットにおいたwordpressをSSL認証つまりhttps://で動かす、という①AWS、②wordpress、③SSL認証、これが思ったより厄介でした。

その原因は、ひとつに、①AWSと②SSL認証をAWSの特徴(特長)を活かして、ELB(ロードバランサー)を使って行うと、他のサーバーで行われる認証キーパスの管理ファィル書き込み型とは異なる管理状態のために、wordpressでもそれを意識した中止が必要なこと、

いまひとつとして、wordpressは実は、SSL認証には完全に対応明日物ではなく、そのためのプラグインが必要なこと。

そして、この両者のために、管理のダッシュボードが、「リダイレクト過多」や「アクセス権限なし」のトラブルでアクセス不能になってしまうことです。

対策

1. wordpressのインストールはSSL設定以前

2.  http://ドメイン名/wp-admin/で管理のダッシュボートを開き、そのままにしておくこと

3. プラグイン

を組み込み、wordpressをSSL課する準備をとておくこと。

4. ダッシュボートから「設定」→「SSLとセキュリティ」でreal simple SSLを開くこと

これにより、SSL課に必要で、まだ行われていないことのリストが出てきます。
詳しくは、AWSでWordPressサイトを構築してSSL化する方法【EC2 ELB ACM Route53】 #Linux – Qiita を

5. SSL認証の取得  

6.     ELBを使ってSSL認証の組み込み

ここで、注意しなければならないのは、ロードバランサーのリスナーに追加するHTTPS用(443ポート)のターゲットグルーブは、HTTP(ポート80用)に準備されたターケットグループにしておく必要があるということです。

7. apacheなどの設定ファイルや.htaccessでやる必要のないこと

一般のSSL認証では、設定ファイルにhttp:からhttps;へのリダイレクト設定が手順としてでてきますが、ここではやってはいけません。理由は2つ、ELBの設定自体が、https://にきたものをhttp://に結びつけているので、これと他のリダイレクトが合わされは無限リダイレクトになってしまいます。またリダイレクトしてしまうと、wordpressのhttp://で開いている管理画面に届かなくなってしまいのす。

8. wp-config.phpの書き換え

  • : wp-config.phpファイルに、以下のコードを追加して、サーバーがHTTPSで動作していることを明示的に伝えます。
    php
    if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
    $_SERVER['HTTPS'] = 'on';
    }
    1. p-config.phpファイルで強制的にHTTPSを使用させる場合、次のコードを追加します。
      php
      define('WP_HOME', 'https://yourdomain.com');
      define('WP_SITEURL', 'https://yourdomain.com');

yourdomein.com はあなたのドメイン名です。AWS以外のサーバーの場合と違い、ここは必ずドメイン名を使用します。ELBを使用している場合はIPアドレスは変化しますので、たとえ表向き固定していても駄目です。

9. これでダッシュボードのreally simple SSLを見ると、「SSLで稼働」のぽたんが青くなっていると思われます。

 まだ、黄色い作業のこしがあっても、ここでボタンをクリックすると https://yordomaim.com/wp-admin/からダッシュボードが操作できます

なぉ、このポタンでwordpressをSSL化させる以前には、wordpressの.cssやるまとなど各所にのこっている http://の記述が、複合サイトになるために、wordpressがきちんと表示されない状態になっています。

以上、作業記憶をもとに記載しました手が。飛ばしているところがあるかもしれないので、うまくイカなかったらかきこみください。

 

 

 

wordpressの画像編集

wordpressのメディア挿入で、ライブラリーの画像がプレビューできず編集できなくなっていました。

対応は、
http://www.dream-seed.com/weblog/note/wordpress-image-edit を参考に、ob_end_clean()は出力バッファをクリアの一文挿入。

—–

wp-includes/class-wp-image-editor-gd.phpに 一文挿入

public function stream( $mime_type = null ) {
        list( $filename, $extension, $mime_type ) = $this->get_output_format( null, $mime_type );

        while (@ob_end_clean());  /* この行を追加 */

        switch ( $mime_type ) {
            case 'image/png':
                header( 'Content-Type: image/png' );
                return imagepng( $this->image );
            case 'image/gif':
                header( 'Content-Type: image/gif' );
                return imagegif( $this->image );
            default:
                header( 'Content-Type: image/jpeg' );
                return imagejpeg( $this->image, null, $this->get_quality() );
        }
    }

 

———————

を実行。

もう一つ、 themeの functions.php の空白行をなくす、という指摘もありましたが、そちらは実行せずにも、問題は解決しました。

ただ、コア部分の手直しなので、バージョンアップがあった時には、また修正が必要です。