• ベストアンサー

Apache-PHP-fsockopenでSSL通信が出来ない。

----phpinfoの一部--- Apache/2.2.0 (Win32) DAV/2 mod_ssl/2.2.0 OpenSSL/0.9.8a mod_autoindex_color PHP/5.1.1 openssl OpenSSL support enabled OpenSSL Version OpenSSL 0.9.8a 11 Oct 2005 ------------------------- OpenSSL0.9.8aをインストール済みでコマンドプロンプトから実行可能な状態。パスも通しています。 -------------------------- <?php $fp=fsockopen("ssl://www.netsecurity.ne.jp",443); if (!$fp) { die("ERROR\n"); } /* 接続を終了 */ fclose($fp); ?> これを実行するとIEのステータスバー「https://xxxxxxxx/xampp/1.phpを開いています」と表示されたままになってしまいます。 SSLではない接続だと問題なく接続できます。 winXP xamppです。 「www.netsecurity.ne.jp」は適当にSSL通信できるサイトを見つけてテストしてみましたが…。 設定・テスト方法等、注意すべき点をご指摘いただきたく思います。

  • PHP
  • 回答数2
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

$fp = fsockopen("ssl://www.example.com", 443, $errno, $errstr, 30 ); ――のように、エラーコード/エラー文字列/タイムアウト時間を指定してデバッグしてみては。

その他の回答 (1)

  • nya0124
  • ベストアンサー率0% (0/1)
回答No.2

configure時に --with-openssl オプションを設定すればできたと思います。

関連するQ&A

  • fsockopenを使った証明書付きのSSL通信

    お世話になっております。 fsockopenを使って、証明書付きのSSL通信をして表示内容を取得したいのです。 いろいろ見て回って、下記のようなソースを作りました。 ------------------------------------------------------------------------ $context = stream_context_create(); stream_context_set_option($context, 'ssl', 'local_cert', './client.pem'); stream_context_set_option($context, 'ssl', 'cafile', './ca.pem'); $host = "aaa.bbb.ne.jp"; $fp = fsockopen("ssl://{$host}", 443, $errno, $errstr, 10, $context); ------------------------------------------------------------------------ すると、 Warning: fsockopen() expects at most 5 parameters, 6 given と怒られます。fsockopenに6つ目のパラメータは渡せないってことですよね? 仕方がないので、 $contextをはずしてみると、当然証明ができないので怒られます。 Warning: fsockopen(): SSL operation failed with code 1. OpenSSL Error messages: error:14094410:SSL routines:func(148):reason(1040) in xxxxxxx~ Warning: fsockopen(): Failed to enable crypto in xxxxxxx~ Warning: fsockopen(): unable to connect to ssl://aaa.bbb.ne.jp:443 (Unknown error) in xxxxxxx~ まる一日解決方法を探し続けているのですが、だめです。 漠然とした内容で申し訳ありませんが、どなたかご教授願えませんでしょうか。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • fsockopen関数について

    fsockopen関数を使って、POSTでリダイレクトさせています。 リダイレクト先ページで以下の文言が表れます。 ”HTTP/1.1 200 OK Date: Mon, 27 Nov 2006 05:53:05 GMT Server: Apache/1.3.37 (Unix) mod_ssl/2.8.28 OpenSSL/0.9.7l Connection: close Content-Type: text/html; charset=Shift_JIS ” 消すにはどうすればよろしでしょうか?

    • 締切済み
    • PHP
  • fsockopenなどについて

    呼び出し元:aaaa.php 呼び出し先:https://bbbbb.jp/php/cccc.php 認証:Basic ユーザー/パス:user/pass メソッド:POST PHP:5.x という前提でfsockopenを使ってaaaa.phpからcccc.phpにPOSTでデータを投げようと考えています。 今回初めてコマンドラインからPOSTをすることになり、いろいろと模索している状況です。PEARやPECL系は入れないみたいなので、fsockopenをつかうことになりました。 aaaa.phpの中身 $POST = "postData"; $request = "POST /php/cccc.php HTTP/.0\n". "Host: https://cccc.jp\n". "Authorization: Basic".base64_encode("dddd:eeee"); "\n". $POST ."\n". "\n"; $fp = fsockopen("ssl://bbbbb.jp",443); fputs($fp,$request); $res=""; while(!feof($fp)){ $res=fgets,4096); fclose($fp); と、こんな感じです(今手書きだったので、このままだとコンパイルエラーになる可能性もありますが、それは無視とします) タイムアウトを15に設定しデバッグしても、それを過ぎてもなんのレスもない状態です。 requestの書き方がまずいんだと思うのですが、どこをどうすればいいのかわかりません。 authを入れない状態だと、resに"</body></html>"というタグが入ってきます。 受け取り側のスクリプトはPOSTで受け取ったものをログに吐き出すだけの単純なものです。 ちょっとつかみづらい内容で申し訳ありません。もし情報が足りなければ捕捉いたしますので、ご教授願います。

    • 締切済み
    • PHP
  • SSLの導入とApache1.3.x、PHP、PostgreSQLのインストールについて

    こんにちは。3点質問があります。 1、現在、Redhat7.3にApache1.3.x(RPM)、PHP4.3.x、PostgreSQL7.3.xが インストールしてある状態です。 この環境にSSLを導入しようと考えていますが、 下記のような作業手順で問題ありませんでしょうか? また何か注意する点がありましたら教えてください。 ------ SSLの導入を機に、Apache1.3.27からApache1.3.28にします。 Apache1.3.27(RPM)をアンインストールして 次にApache1.3.28(ソース)+mod_ssl+opensslのインストール。 ------ 2、Apache1.3.x、PHP、PostgreSQLのインストールについて これらのソフトをインストールする順番は 動作に何か影響がありますでしょうか? 3、mmについて SSLについて調べてみましたところ mod_sslといっしょにmmをインストールすると解説されているサイトがいくつかありました。 mmとはどのような役割をするソフトですか? 以上です。よろしくお願いします。

  • ApacheとPHPの連携

    はじめまして。 今サーバーを立てようと思ってApacheとPHPを設定しているところです。 apache_2.0.59-win32-x86-no_ssl.msi php-4.3.11-Win32 を使ってインストールをしているのですが サイトに載っているとおり 設定をしていろいろやっているのですが apacheをリスタートした後 最終的にtest.phpをwindowsのapache配下のhtdocsに格納 内容 <?php phpinfo(); ?> http://localhost/test.php そうするとメモ帳でtest.phpが開いてしまいます。 何が原因かわかる方教えていただけないでしょうか? よろしくお願いします。

    • 締切済み
    • PHP
  • SSLのインストールについて

    RedHat7.3、apache1.3.33です。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1260172 でPHPをインストールしうまく動作はしました。 次はSSLを導入しようと考えており、いろいろネット上でインストール方法を調べましたが疑問におもったことがあったので質問させていただきました。 まず、 Apache-SSL+OpenSSLのインストール mod_ssl+OpenSSLのインストール の2つの方法でどちらにするかまよっております。 またSSLを新たに追加する場合apacheを一からコンパイルする必要があるみたいに書かれています。 SSL,PHP,mysqlなどapache関連のインストールをする場合apacheをオプション指定して再configureする必要があるのですか? 追加追加でインストールする方法はあるのでしょうか? わかりにくい説明ですみません。 早い話、SSLとPHPとmysqlを導入したいということです。 ご教授よろしくおねがいします。

  • fsockopenで下層ページの内容を取得するには

    わたくしphp歴4ヶ月のものです。 fsockopenで下層ページの内容を取得するにはどうすればよいのでしょうか。説明がうまくできないので例を書きます。 business.yahoo.co.jp/prod/store を指定するとエラーが出ます。 例1) $fp=fsockopen("business.yahoo.co.jp/prod/store", 80, $errno, $errstr, 30); if(!$fp) { echo "$errstr ($errno)<br>\n"; } else{ fputs($fp, "GET / HTTP/1.0\r\n\r\n"); while(!feof($fp)) { echo fgets ($fp,600); } fclose($fp); } business.yahoo.co.jpを指定するとエラーが出ません。 例2) $fp=fsockopen("business.yahoo.co.jp", 80, $errno, $errstr, 30); if(!$fp) { echo "$errstr ($errno)<br>\n"; } else{ fputs($fp, "GET / HTTP/1.0\r\n\r\n"); while(!feof($fp)) { echo fgets ($fp,600); } fclose($fp); } 下層ディレクトリのページはどのように指定すればよいのでしょうか。/←スラッシュに問題があるのでしょうか。 その場合のエラーの内容は下記です。 Warning: fsockopen(): php_network_getaddresses: getaddrinfo failed: Name or service not known in /home/mero/public_html/test.php on line 23 Warning: fsockopen(): unable to connect to business.yahoo.co.jp/prod/store:80 in /home/mero/public_html/test.php on line 23 No such file or directory (2) 基本的な質問でたいへん恐縮ですが、 ご指導お願いいたします!

    • ベストアンサー
    • PHP
  • XAMPP1.7.3でApacheが起動しない

    よろしくお願いします。 ローカルPCのOSはWin7の32bitで、xampp-win32-1.7.3をインストールしました。 Apacheが起動しなくて困ってます。 エラー表示は、Busy・・・ Apache started。 保存先は、c:\pg\xamppでxampp\xamppのようにはしてません。 xampp-portcheckでは、Statusは全てfreeになってます。 \apache\conf\httpd.confの、 # Perl settings Include "conf/extra/httpd-perl.conf" の部分は、 # Perl settings # Include "conf/extra/httpd-perl.conf" とコメントアウトにしました。 コマンドプロンプトのnetstat -aonで80番ポートを調べましたが、 0.0.0.0:80はありませんでした。 Apacheのerror.logは以下です。 (↓エラーログ) [Fri Apr 01 23:30:50 2011] [notice] Digest: generating secret for digest authentication ... [Fri Apr 01 23:30:50 2011] [notice] Digest: done [Fri Apr 01 23:30:51 2011] [notice] Apache/2.2.14 (Win32) DAV/2 mod_ssl/2.2.14 OpenSSL/0.9.8l mod_autoindex_color PHP/5.3.1 mod_apreq2-20090110/2.7.1 mod_perl/2.0.4 Perl/v5.10.1 configured -- resuming normal operations [Fri Apr 01 23:30:51 2011] [notice] Server built: Nov 11 2009 14:29:03 [Fri Apr 01 23:30:51 2011] [crit] (22)Invalid argument: Parent: Failed to create the child process. [Fri Apr 01 23:30:51 2011] [crit] (OS 6)ハンドルが無効です。 : master_main: create child process failed. Exiting. [Fri Apr 01 23:30:51 2011] [notice] Parent: Forcing termination of child process 36 ちなみに、MySQLも起動しません。 エラー表示は、同様にBusy・・・ MySQL started。 どうかよろしくお願いします。

    • ベストアンサー
    • MySQL
  • PHPでMySQLに入力した半角スペースが?になる

    いつもお世話になっております。 PHP初心者なのですが質問させてください。 タイトルの通りPHPからMySQLへと流したデータの一部半角スペースが 半角のクエスチョンマーク(?)に勝手に変換され困っています。 色々他のサイトを見て回った結果 <?php mb_internal_encoding("utf-8"); //内部文字コードを変更 mb_language("uni"); mb_http_input("auto"); mb_http_output("utf-8"); mysql_query("SET NAMES utf8"); (以下DB接続部は略) ?> とし、my.iniに skip-character-set-client-handshake を加えました。 環境はXAMPPを使っており次の通りです。 よろしくお願いします。 # Apache/2.2.11 (Win32) DAV/2 mod_ssl/2.2.11 OpenSSL/0.9.8i PHP/5.2.9 # MySQL クライアントのバージョン: 5.0.51a

    • ベストアンサー
    • PHP
  • apache2.0.40の./configer …でエラー

    こんばんは。 現在、redhat9にhttpd-2.0.40を./configure --enable-sslしたと ころ、途中で「requires OpenSSL 0.9.6e or higher」とエラー メッセージが表示されて先に進めなくなってしまいました。 しかし、OpenSSLは、上位の「openssl-0.9.7a-2」がインストールさ れておりました。 httpをあとからインストールするのは、ディレクトリ構成をOSイン ストール時と異なる環境が作業する上での要件にあるためです。 解決策やアドバイスをお願いします。 ~環境~ redhat9 カーネル:2.4.20-8 (雑誌付録版) インストールでは、WWW(httpd_2.0.40)は、除外しました。 ~処理経過~ ○./configure --enable-sslを実行にあたり #tar zxvf httpd-2.0.40.tar.gz #cd httpd-2.0.40 #./configure --enable-ssl :(処理中) checking whether to enable mod_proxy_http... no checking whether to enable mod_ssl... checking dependencies checking for SSL/TLS toolkit base... configure: error: requires OpenSSL 0.9.6e or higher ←エラーメッセージ # ○opensslのインストール確認 #rpm -qa | grep openssl openssl-0.9.7a-2 openssl-devel-0.9.7a-2 #

専門家に質問してみよう