nginx」タグアーカイブ

SSLサーバー証明書に中間証明書を結合する [(全部俺)何でも Advent Calendar 2013 8日目]

この記事は「(全部俺)何でも Advent Calendar 2013」の8日目です。(2日遅れ

このブログの管理画面用にStartSSLで取得したサーバー証明書を使っていますが、環境によっては中間証明書がインストールされていないために警告画面が表示されてしまいます。
ちょうどサーバー証明書の期限が近づいていたこともあり、更新ついでに証明書を結合してみました。

なお、Apache+mod_sslであればSSLCertificateChainFIleディレクティブで中間証明書を設定できます。
4階層以上の証明ツリーを持つ場合やnginx等の中間証明書を設定できない場合にこの手順を用います。

参考:
nginx – 無料のSSL証明書StartSSLを活用する – Qiita [キータ]
(ELB に)中間証明書とクロスルート証明書の連結する順番に注意 – tkuchikiの日記

Android端末だとどうしても証明書の追加が面倒ですが、この方法を使えばルート証明書がインストールされているなら警告が表示されません。
続きを読む

WordPress+Nginx(リバースプロキシ)+admin-sslプラグインでハマった点

このブログを設置しているサーバーの構成を変更し、リバースプロキシにNginxを設置しました。
(User<->Nginx<->Apache<=>PHP)
その際、admin-sslプラグインでがっつりハマってしまったので記録します。

admin-sslプラグイン

admin-sslプラグインは、WordPressの管理画面へのアクセスをHTTPSで行うよう自動的にURLを書き換えたり、リダイレクトしてくれるプラグインです。デフォルトではPHPの$_SERVER['HTTPS']変数の値でHTTPSかどうか判定します。

NginxをSSLリバースプロキシとして設置する

NginxをSSLを利用できる設定のリバースプロキシとして設置しました。もちろんX-Forwarded-Proto等リバースプロキシであることを示すヘッダを付加してApacheへリクエストしています。ところが・・・

おや?WordPressの様子が・・・

ダッシュボードだと思った?残念リダイレクトループでした!!!

ダッシュボードだと思った?残念リダイレクトループでした!!!

▂▅▇█▓▒░(’ω’)░▒▓█▇▅▂うわああああああ

どうも$_SERVER['HTTPS']が定義されていなかったようです。。。

とりあえず対応

このサイトを見ながらwp-config.phpに以下を追記して事なきを得ました。

if ( isset(  $_SERVER['HTTP_X_FORWARDED_PROTO'] )
        &amp;&amp; $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https' )
        $_SERVER['HTTPS'] = 'on';

閲覧に影響がなかったのは唯一の救いかも。

[メモ] nginxをリバースプロキシとして設置した

去年買ったRaspberry Piを(もう少しがんばれば)Webサーバーとして運用できそうなので、nginxを使って既存サーバーとのリバースプロキシ環境を構築してみました。

構成図

構成図

とはいえ、Raspberry Piはレイテンシ大きすぎて実用に耐えられないんだよなぁ・・・