[PHP-users 35687] Re: curlのエラーについて

Michiyoshi Buniu(DreamLink) buniu @ dream-link.jp
2012年 3月 8日 (木) 19:10:52 JST


加藤様

豊丹生です。早々の返信ありがとうございます。

証明書は先方から配布されてる正しいものなはずなのですが、
何か私が初歩的な勘違いしてるのかもしれません。

Subjectが「Test Test」のようにスペースが入った文字列なので、
curl_initのホスト名と一致させることもできない状態です。
(文章がおかしかったらすみません。)

アドバイス頂いた以下も追加して試したのですが、
同じエラーが出る状況です。
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, "FALSE");

結局、色々やってみたところ、
少し件名とは逸れてしまうのですが、
stream_socket_client
を使ってやりたいことが実現できました。
(そもそもcurlの使い方が間違ってたのかもしれません。)

$context = stream_context_create();
stream_context_set_option($context, 'ssl', 'cafile', '/usr/***/ca.pem');
stream_context_set_option($context, 'ssl', 'local_cert',
'/usr/***/client.pem');
$fp = stream_socket_client('tls:// ***:9212', $errno, $errstr, 30,
STREAM_CLIENT_CONNECT, $context);
(この後で、ヘッダやデータを送信)

ちなみに、php4.4.2だとstream_socket_clientは使えず、
fsockopenの第6引数に証明書などを渡してやることで実現できました。
$context = stream_context_create();
stream_context_set_option($context, 'ssl', 'local_cert',
'/usr/***/client.pem');
stream_context_set_option($context, 'ssl', 'cafile', '/usr/*** /ca.pem');
$fp = fsockopen('tls://***', 9212, $errno, $errstr, 30, $context);

また何かありましたら、よろしくお願いします。

> -----Original Message-----
> From: php-users-bounces @ php.gr.jp
> [mailto:php-users-bounces @ php.gr.jp] On Behalf Of KATOH Yasufumi
> Sent: Thursday, March 08, 2012 4:27 PM
> To: php-users @ php.gr.jp
> Subject: [PHP-users 35686] Re: curlのエラーについて
>
> 加藤泰文です.
>
> >>> On Thu, 8 Mar 2012 13:27:58 +0900
>     in message   "[PHP-users 35685]	curlのエラーについて"
>                   Michiyoshi Buniu(DreamLink)-san wrote:
>
> > Curl error: SSL: certificate subject name '*****' does not match
> > target host name 'IPアドレス'
>
> # 手元で↑のエラーを生成できなかったので以下は当てずっぽうですが.
>
> サーバにインストールされている証明書の Subject の中身が curl に指定
>> ている URL のホスト部分の文字列と一致しない,って事ですね.
>
> curl_init で指定しているホスト名を証明書の Subject に一致するように
>> るか,
>
> テスト環境でそれではアクセス出来ないとか,テスト環境なので証明書自体
>> 当に作ったもので Subject も適当なのであれば,例えば
>   curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, "FALSE");
> こんな感じにするかでどうでしょう?
>
> ただし,これは SSL サーバ証明書の検証を行わないわけですから,本番環境
> ではやってはいけませんので,それまでには削除しましょう.テスト環境も
>> ちんとした環境にするのが一番ですね.
>
> --
> ==============================================
> ((((    加藤泰文
> ○-○                karma @ jazz.email.ne.jp
> ==============================================
>  (Web Page) http://www.ten-forward.ws/
> ==============================================
> _______________________________________________
> PHP-users mailing list  PHP-users @ php.gr.jp
> http://ml.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://oldwww.php.gr.jp/php/novice.php3




PHP-users メーリングリストの案内