2013-03-21 37 views
5

私はセントレイルサインオンに対して認証するサイトをローカルに開発しています。手順の1つは、アクセストークンを取得するためにhttpsリソースにカール要求を出すことです。カール設定のOS/PHPでCURLOPT_SSL_VERIFYHOST = 2を有効にする方法

一部です:あなたが見ることができるように

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);           
    //curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); 

私はCURLOPT_SSL_VERIFYHOSTオプションをコメントアウト。私はphp.netとさまざまなブログ/ stackoverflow(Security consequences of disabling CURLOPT_SSL_VERIFYHOST (libcurl/openssl))の投稿でこれらのオプションが何を意味するのかを読んだ。

私の開発マシンでCURLOPT_SSL_VERIFYHOST 2はうまくいきました。私はちょうどubuntu 12.04 php5パッケージとphp5-curlで提供されているバニラPHPのインストールを使用しています。

生産中(ラックスペース雲台)CURLOPT_SSL_VERIFYHOST 2が機能していないため、これを問題にするためにfalseに変更しました。ローカルホスト上でこれを有効にするために何も明示的に行わなかったので、どのディレクティブ/ configオプションがこれを制御するのか分かりません。

は、私はそれが「働いてない」の意味VERIFYHOST2に設定されている場合、製造上のカールコールが0http_codeを返しているということです。私はFALSEに設定すると、それは200

のステータスコードを返して私の質問は:

私はLinuxボックスにSSL_VERIFYHOSTを有効にするにはどうすればよいですか?

ご協力いただければ幸いです。ありがとうございました。

+2

カールのデフォルトは 'この設定の2'です –

答えて

4

「2」では、SSL証明書の共通名が使用されているホスト名と一致するようにする必要があります。これはデフォルトであり、SSL証明書が使用されているホスト名(一般名)に対して適切に作成されている限り、簡単です。 PHPのマニュアルますcurl_setoptから

1 SSLピア証明書の共通名の有無をチェックします。 2を実行して共通名の有無を確認し、提供されたホスト名と一致することを確認します。実稼働環境では、このオプションの値は2(デフォルト値)に保持する必要があります。 http://php.net/manual/en/function.curl-setopt.php:

Manual Entry for curl_setopt

関連する問題