wordpressにSiteGuardを入れる際、画像認証や更新通知を利用できずにハマった。

管理しているHTTPSを利用しているサイトでwordpressを導入したのだけど、「画像認証」を利用しようとすると、「この機能を使用するには、httpd.confのAllowOverrideにLimitを指定する必要があります。」というエラーが出る。
「更新通知」を利用しようとすると、「wp-cron.phpにアクセスできない問題を解決してください。アクセス制御が関係している可能性があります。」というエラーが出る。

httpd.confのAllowOverrideはAllに設定しているし、wp-cron.phpも特に制限していないので、理由がわからなかったので、SiteGuardプラグインのソースを見ることにしました。該当箇所をみてみるとwp_remote_getやwp_remote_postがエラーを吐いている感じ。返り値をvar_dumpしてみると以下のようなエラーが確認できました。

WP_Error Object ( 
 [errors] => Array ( 
  [http_request_failed] => Array ( 
   [0] => SSL connect error )
  ) 
 [error_data] => Array ( )
)

で、今度は、wp_remote_getやwp_remote_postを知るためにwordpressのソースを確認。内部でcurlを利用していることがわかったので、サーバに入り、コマンドラインで確認したところ、「SSL connect error」が出ていることが分かりました。

> curl -v https://www.neo-vps.com
* About to connect() to www.neo-vps.com port 443 (#0)
* Trying 2401:2500:102:2214:133:242:209:192... connected
* Connected to www.neo-vps.com (2401:2500:102:2214:133:242:209:192) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* CAfile: /etc/pki/tls/certs/ca-bundle.crt
 CApath: none
* NSS error -12263
* Closing connection #0
* SSL connect error

curl: (35) SSL connect error

ブラウザからは普通にアクセスできているのになんでだろうと悩むこと1日。
で、気が付きました。ipv6で接続しようとしている‥。orz

httpdのssl.confの

<VirtualHost 133.242.209.192:443>

<VirtualHost 133.242.209.192:443 [2401:2500:102:2214:133:242:209:192]:443>

としてhttpdをリスタートしたら、無事SiteGuardの設定もできるようになりました。
長かった。