ネット上のアクセスボリュームをUPさせ効率の良い集客をご提案します。

カテゴリー「Linux Tips」の記事

SSL化対応-SSL証明書の購入

 / Linux Tips, SEO関連, テクニカル, ノウハウ


SSL化を行うにはSSL証明書を発行する発行局を選び、そこへ前回までに作成した証明書の依頼ファイルを申請し手続きを行う必要がある。

発行局は様々で、証明書の種類も色々なものが存在する。

証明書の購入はほとんどが、代理販売しているショップ、IT企業から購入するが普通。直接発行局からだと割高である。

同じ証明書でも、購入するショップや、IT企業によってプライスは異なる。

主なSSL証明書発行局

  • Symantec
  • GeoTrust
  • Comodo
  • CyberTrust
  • Rapid SSL
  • Global Sign
  • SureServer
  • DigiCart
  • FujiSSL

安く購入できるSSL販売ショップ

弊社では、何かあっても電話するとすぐ早急に対応してくれるSSLストア(ニジモ)をよく利用しています。

SSL化対応-証明書依頼ファイルの作成

 / Linux Tips, SEO関連, テクニカル, ノウハウ


証明書依頼ファイルの作成

証明書買った際に購入先の発行システムへ証明書発行申請する際に証明書依頼ファイルをUPする必要があります。つまりこの作業は役所で手続きする申請依頼書類に記述するのと同じような役目の作業です。

サーバ証明書依頼生成時の署名情報入力例

上記のサーバ証明書依頼ファイルを生成する際に以下の入力が聞かれます。自社にあったものを入力しますが下記のような感じで入力を行ってください。

SSL化対応-サーバキーの生成

 / Linux Tips, SEO関連, テクニカル, ノウハウ


証明書を得るためにはサーバリクエストファイルを作るのですがその前にサーバキー(秘密鍵)を生成する必要があります。これはサーバ証明書の種のようなものでサーバの生成身元保証的な役割を果たします。実際にWEBサーバにも埋め込んで使います。つまりサーバ証明書はこの種から作られたということを保証を取るために使います。

オーソドックスなシンプルなキー生成方法(秘密鍵)

一般的には2048 bitの鍵生成で十分です。RSA方式で暗号化を行います。

一発でサーバーキーからリクエストファイルまで生成する方法

証明書依頼ファイルの作成途中で申請情報入力が促されるのでこちらでやり方を参考に!

https化で出てくる問題(https化した途端にmod_rewriteが効かなくなってしまう)

 / Linux Tips, Wordpress, wordpressテクニカル, トピックス, ノウハウ


Google Chromeの7月リリースバージョンでいよいよサイトのALL SSL化が始まる。
これによりhttpに対応していないサイトは「このサイトは安全でない」の画面が出てしまう。今でも
稀に見ることがある画面ですが、あの画面がでてしまったら当然誰もクリックor タップしないでしょう 。

ということでSSL化をしなければ行けないわけだけど、もう一つこれには考慮が必要なことに気づいた。
スマホとPCコンテンツを分離して作成している場合はアノテーション設定が必要だが、モバイルファーストインデックスも
開始宣言(2/21)が出ているし、何よりもアノテーション設定でURLをhttpsに変更しなければならない。

※レスポンシブで制作している場合は気にする必要はありません。WORDPRESSでデバイスプラグインを使っている人も問題なし

ということでSSL化をやってみると色々な新規顧客である特有の問題が出た。
一番ハマったのが、「https化した途端にmod_rewriteが効かなくなってしまう。httpのときにはmod_rewrite使えたのに!」という現象のサーバが幾つかあった。
つまりWORDPRESSなどではカスタムパーマリンクが使えなくなってしまう現象に遭遇しました。

原因を調べるために、約1日考え込み実験をしまくりました。
や~、これは気が付かなかった。httpd.confを普段触らずVirtualHostでサイト定義するから頭がそちらに向かなかった。
なんとhttpd.confを調べたら下記のようになっているではないですか! なるほど、それではTOPからその設定になっていると
下位で設定したコンフィグは無視されますね!

httpd.conf 修正前)

httpd.conf CentOSの場合修正後)

apache2.conf Ubuntuの場合修正後)



apacheを再起動してめでたくmod_rewriteがSSLで使えるようになりました。
上記の設定はDirectoryディレクティブを使用しているため、適切に範囲設定をその環境内で
望ましい設定を厳密には行う必要があります。上記のケースでは”/”でAllowOverride Allにしているためセキュリティを
高くするためにはフォルダーの範囲をもう少し狭めたほうが良い場合もあるので実験して良いバランスの設定を考慮スべきと思います。

他にも、https化で出てくる作業が多いのでメモをしておきます。

https化で遭遇する付帯作業

  • Google Search Consoleにhttpsでサイト登録が必要
  • 旧httpアドレスがインデックスされたり、他サイトと連携している場合はhttpアドレスからhttps転送設定が必要
  • 転送設定をjavascriptでやる場合は注意が必要。コンバージョンが拾えなくなる可能性がある。リファラーを追加する設定が必要かも
  • Google Analysticsの管理画面でプロパティ、ビューのURLをhttpsに切り替える。ビューのコンバージョンURLも変更。
  • sitemap.xmlをhttpsのアドレスになっているかチェック、なっていなかったら作り直し
  • WORDPRESSのプラグイン経由でanalysticsを設定、取得している場合は再設定が必要になる場合が多い

delegated Reverse Proxy SSL接続 ワンライナーWEBサーバとの連携にどうぞ!

 / Linux Tips, Security Tips, テクニカル, トピックス, ノウハウ


昔からある和製ProxyサーバDelegated Proxy Server。海外のオープンソースがひしめく中で高機能で堅牢なProxyサーバです。他のProxy Serverにはない機能が沢山あり使う度にこんなこともできるんだと感心することもあります。今回の投稿ではこの和製ProxyサーバでSSL接続する方法を紹介したいと思います。


まずはdelegated proxyサーバをダウンロードしましょう。ソースからコンパイルして使うのが良いですね。CentOSというかRedHat系はすんなりコンパイルできますが、Ubuntuは古いバージョンのDelegatedでないと確実にエラーが発生しますので、最新のDelegatedバージョンを入れるならバイナリーをダウンロードして設置しsslwayだけRedhat系でコンパイルしたものを持ってきて使うのが簡単です。当方で確認した限りでは特に問題なくこのやり方でSSLの接続動作しました。何故かsslwayはバイナリーパッケージにはバンドルされていなかった。

Delegated ダウンロード公式ページ(source) Delegated ダウンロード公式ページ (Binary)

※現在の最新は9.9.13でソースからコンパイルするならdelegate9.9.13.tar.gzをダウンロードしてください。

コンパイルの仕方

直接起動スクリプトにパラメータを設定してdelegatedを起動する場合の必要最低限のインストール

Reverse Proxy構成例


起動スクリプトの準備

下記は内部8080ポートで起動しているWEBサーバにproxy転送する場合だ。最近のプログラム言語は自前でWEBサーバが起動できるケースが殆どなので、マルチスレッドで内部WEBサーバを立てローカルホストでListen起動させておけば余計なポート&アドレスへの攻撃から遮断した上で本格的なSSL接続仕様にできる。
Reverse Proxy仕様でSSLを行う場合のメリットは元のサーバのソースコードを弄らなくて良いところ、そして堅牢性に不安がある場合にある一定の防御壁として動作してくれるため通常の外部WSGIサーバ連携などよりもいい場合もある。やはりケースバイケースのSSL接続の方式選択があると思う。

このケースではSSLの証明書は作成時にパスワード無しで処理しているがパスワード付きで証明書を生成しているなら「-pass file:path」or 「-pass pass:password」をsslwayの引数指定で設定すれば問題ない。尚「POODLE」攻撃を防ぐ施策として「-tls1 -tls1_1 -tls1_2 -no_ssl23」の指定を行っている。このパラメータは本サイトで紹介されていないので非公開のスイッチかもしれない。ソースコードから調査して見つけました。ペネトレーションテストでも調査済みで有効なSSLスイッチでした。またCipherSuiteに関しても環境変数(SSL_CIPHER)で指定できることがわかりましたのでご紹介しています。

SSL証明書の指定は-certと-keyが使えるので、もしCA rootの証明書があるならサーバ証明書「-cert」のファイルにサーバ証明書とCA root証明書を結合して設置すればOK。

実行権を付与しdelegatedの起動

TOPへ戻る