[解決済み] 私のOS/PHPでCURLOPT_SSL_VERIFYHOST = 2のサポートを有効にする方法
質問
セントレジスド・サインオンの認証を行うサイトをローカルで開発しています。 その手順の1つに、アクセストークンを取得するためにhttpsのリソースにcurlリクエストをすることが必要です。
curlの設定の一部を紹介します。
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で読みました( CURLOPT_SSL_VERIFYHOST (libcurl/openssl) を無効にすることによるセキュリティ上の影響 これらのオプションが意味するものは何ですか?
私の開発マシンでは
CURLOPT_SSL_VERIFYHOST 2
は正常に動作しています。 私は、ubuntu 12.04 の php5 パッケージで提供される vanilla php インストールと php5-curl を使っているだけです。
本番環境(Rackspace cloudsites)では
CURLOPT_SSL_VERIFYHOST 2
が機能しないので、これが問題であることを確認するために false に変更したのです。私のローカルホストでこれを有効にするために明示的に何もしなかったので、どのディレクティブ/設定オプションがこれを制御しているのかわかりません。
動作しないとはどういう意味かというと、本番環境では、curl呼び出しが、"quot;not working" "を返すということです。
http_code
の
0
を使用すると
VERIFYHOST
が設定されています。
2
. に設定すると
FALSE
のステータスコードを返しています。
200
質問です。
を有効にするには、どうすればよいのでしょうか?
SSL_VERIFYHOST
を使用しています。
何かお手伝いいただけると助かります。 ありがとうございます。
解決方法は?
2」については、SSL証明書のコモンネームが、利用するホスト名と一致することを確認する必要があります。これはデフォルトで、SSL証明書が使用するホスト名(コモンネーム)に対して適切に作成されていれば、簡単にできるはずです。
PHP curl_setopt マニュアルより。
1は、SSLピア証明書のコモンネームの存在を確認するため。2は、コモンネームの存在を確認し、さらにそれが提供されたホスト名と一致するかどうかを検証します。実稼働環境では、このオプションの値は2(デフォルト値)のままにしておく必要があります。
関連
-
[解決済み] Uncaught SyntaxError: JSON の位置 1 に予期しないトークン o があります。
-
[解決済み] cURLでJSONデータをPOSTするにはどうすればよいですか?
-
[解決済み] PHPで配列から要素を削除する
-
[解決済み] PHPでSQLインジェクションを防ぐにはどうしたらいいですか?
-
[解決済み] YouTube APIからYouTubeビデオのサムネイルを取得する方法を教えてください。
-
[解決済み] PHPでHTML/XMLをパースして処理する方法とは?
-
[解決済み] PHPのエラーを表示させるにはどうしたらいいですか?
-
[解決済み] cURL呼び出しによるHTTPリクエストを使用してヘッダーを送信する方法は?
-
[解決済み】PHPの'foreach'は実際どのように動作するのですか?
-
[解決済み] リファレンス - このシンボルはPHPで何を意味するのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】move_uploaded_fileは、「failed to open stream: Permission denied" というエラーが出る
-
[解決済み】不明なMySQLサーバーのホスト
-
[解決済み】foreach()に与えられた引数が無効です。)
-
[解決済み】Chrome net::ERR_INCOMPLETE_CHUNKED_ENCODING エラーが発生しました。
-
[解決済み】警告。数値でない値に遭遇しました
-
thinkphp5 timestamp 非整形の数値に遭遇した。
-
MacでPHPを実行した際に、メモリサイズが134217728バイトも消費される問題の解決方法について
-
[解決済み] SSLエラー SSL3_GET_SERVER_CERTIFICATE:証明書の検証に失敗しました。
-
[解決済み] PHP 未定義関数への呼び出し
-
[解決済み] $_SERVER['DOCUMENT_ROOT'] と $_SERVER['HTTP_HOST'] の違いについて