PHPでSSL通信

PHPで https で通信したい場合、

$file = file('https://hoge.com/');

みてーな感じですが、OpenSSL関数が使用できるのになってないとあかんのですよ。 で、それには、

  1. OpenSSLのインストール
  2. PHPのコンパイルオプションに --with-openssl[=DIR] を追加

要するにPHPのリコンパイルが必要です。まんどくさい。

で、上手く行くとhttpsで通信できるようになるんですが、 PEARのHTTP_Requestとかでhttps通信しようとすると、更に以下が必要。

  1. curl-develのインストール
  2. PHPのコンパイルオプションに --with-curl[=DIR] を追加

要するに更にリコンパイルが必要です。先に言え。

PEARのSOAPでの通信にhttpsを使用する場合、 SOAPパッケージが内部的にHTTP_Requestを使用しているので、 curlが必須となります。

ちなみに、PEARのHTTP_Request使う場合、現時点(2004.12.16)では、 関連パッケージを全部最新にすると、https通信する際に何かエラーになっちゃう。 で、Net_Socketのみ1.0.2を使うとエラー出ないっす。 何でも最新にすりゃいいってもんじゃない、と。

Installed packages:
===================
Package        Version State
Archive_Tar    1.2     stable
Console_Getopt 1.2     stable
DB             1.6.8   stable
HTTP           1.3.3   stable
HTTP_Request   1.2.3   stable
Log            1.8.6   stable
Mail           1.1.4   stable
Mail_Mime      1.2.1   stable
Net_DIME       0.3     beta
Net_SMTP       1.2.6   stable
Net_Socket     1.0.2   stable
Net_URL        1.0.14  stable
PEAR           1.3.3.1 stable
SOAP           0.8.1   beta
XML_Parser     1.2.1   stable
XML_RPC        1.1.0   stable

いやー、SSL、めんどくさかった。。。 ちなみに、検証環境はPHP4.3.9です。

このメソ知恵は訳に立ちましたか?

選択肢 投票
はい 43  
いいえ 18  

  • PHP4.3.*以下のバージョンでのOpenSSLは動作しますか? -- DK? 2005-11-01 (火) 16:06:19
  • 4.3.0未満と言う事でしょうか?すいません、4.2系のPHPは触った事すらないのでちょっと分かりません・・・。コンパイルオプションを確認して with-openssl があるのであれば動作自体はするのではないかと思うのですが。(未確認です。すいません) -- メソ 2005-11-01 (火) 17:27:09

URL B I U SIZE Black Maroon Green Olive Navy Purple Teal Gray Silver Red Lime Yellow Blue Fuchsia Aqua White