PowerCMS™
2025年1月1日購入分よりライセンスの価格を改定いたします。
[ブログ] PowerCMS 6 でのアップデートまとめ を追加しました。
[よくあるご質問] システムログに「タスクを実行するために必要なロックを獲得できませんでした」というログが残っている を追加しました。
[よくあるご質問] 特定のシステムログに絞って確認できますか? を追加しました。

PowerCMS ブログ

ホーム > PowerCMS ブログ > トラブルシューティング > イントラ環境のWindows ServerでPowerCMS SocialからFacebook投稿で…

2016年10月07日

イントラ環境のWindows ServerでPowerCMS SocialからFacebook投稿できない場合の対処方法

弊社のPowerCMS Socialをイントラ環境に置いたWindowsサーバーでご利用の場合に、Proxyサーバーを越えてFacebook投稿ができないという事例がありましたので、この記事で解決のノウハウを共有できればとおもいます。

運用環境

この記事では、以下のような環境を想定しています。

  • 企業様のイントラネット環境に設置されたWindows Server 2012 R2上のIISで、PowerCMSとPowerCMS SocialがFastCGIで動作している
  • PowerCMSで作成した記事をFacebookにも投稿したい
  • PowerCMSが動作するWindowsサーバーから外部インターネットと通信するには、Proxyサーバーを経由する必要がある
  • Facebookとの通信には、HTTPSによる通信を行う必要がある。またPOODLEと呼ばれるSSLv3 脆弱性への対策のため、TLSで通信する必要がある
  • ProxyサーバーはSSL通信の中身も記録するため、CMSとProxyサーバー間は、Proxyサーバーの用意した代理証明書で通信する

設定方法

通常、Movable TypeやPowerCMSをProxyサーバーの内側で利用する場合はHTTPSProxy環境変数を設定と考えてしまいそうですが、Perlの制約から、そう簡単ではありませんでした。

以下、簡単にまとめて記載いたしますが、ここに至るまでにはかなりの時間がかかってしまいました。

  1. IISのFastCGI設定での環境変数には、どのアプリケーションにも何も指定されていないことを確認してください。
  2. Windows Serverのシステム環境変数には、以下が設定されていることを確認してください。
    環境変数備考
    HTTPS_PROXY例) http://127.0.0.1:15080/ProxyサーバーへのURLに修正します。
    PERL_NET_HTTPS_SSL_SOCKET_CLASSNet::SSL内部で利用しているLWP::UserAgentでHTTPS proxy通信を行うために必要です。
  3. PowerCMSに、この記事からリンクしているプラグインをインストールしてください。
  4. mt-config.cgi には、以下を設定してください。
    環境変数備考
    SSLVerifyNone1Proxyサーバーが持つ代理証明書のホスト名は確認しないため
    FCGI_ENV_HTTPS_PROXYhttp://127.0.0.1:15080/利用しているProxyサーバーのIPアドレスまたはホスト名に変更します。ポート番号も適宜変更します。この値はデフォルト値です。
  5. 上記のOS環境変数などを初めて設定した場合は、念のためサーバーを再起動します。

その他のノウハウ

さきほどのPOODLE脆弱性をはじめ、HTTPS通信をめぐる環境は、ここ最近になって目まぐるしく変化しています。そのため、安定性を求めて古いバージョンのPerlを利用している場合などに、Crypt::SSLeayや Net::SSLeayといった、OpenSSLに依存するPerlモジュールが原因で、TLSなどのプロトコルで通信できない場合がありました。そのような場合は、これらのPerlモジュールをバージョンアップすることで解決しました。

使用したプラグイン

IISFastCGIENVConfigプラグイン


カテゴリー
トラブルシューティング
投稿者
持田 徹

Recent Entries