人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

phpで証明書付きのSSL通信を行おうとしているですが、証明書をどうやって使えば良いのかが分かりません。
以下のようにすると$fpにちゃんと値は返ってくるのですが、この後、証明を使う方法が分かりません。
証明書は同じフォルダに pkcs12.pfx のようなファイル名で置いています。
SSLeayモジュールを使わないとできないのでしょうか?

$fp = fsockopen('https://www.test.com/');

●質問者: MrB
●カテゴリ:コンピュータ
✍キーワード:FP PHP SSL ファイル フォルダ
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● pahoo
●20ポイント

PHPでSSL通信する場合は、直接、電子証明書には触れません。fsockopenなどの関数がSSL通信に対応していることが必要です。

具体的な確認手順は「PHPでSSL通信する時の注意点」を参照ください。

この記事に補足すると、OpenSSLが有効なら、phpinfoの openssl の項目に enable という表示があります。


また、OpenSSLの入手方法と使い方については「OpenSSL」を参照ください。

◎質問者からの返答

ありがとうございます。&私の書き方が悪くてすみません。openssl自体は有効です。ただ、fsockopenだけでは、証明書がないため、HTTPリクエストをしてもHTTPレスポンスが返ってこないのです。perlの場合は、環境変数HTTPS_PKCS12_FILE、HTTPS_PKCS12_PASSWORDを設定して、通信を行えばできたのですが、PHPだとどうするのかと思って、質問させて頂きました。証明書が要らないSSLだとfsockopenだけでできるんですけどね。


2 ● ken33jp
●10ポイント

>SSLeayモジュールを使わないとできないのでしょうか?

YES

◎質問者からの返答

ありがとうございます。


3 ● pahoo
●100ポイント

perlの場合は、環境変数HTTPS_PKCS12_FILE、HTTPS_PKCS12_PASSWORDを設定して、通信を行えばできたのですが

SSLクライアント認証を行いたいというご質問ですね。

PHPではcurl関数群を使うのが一般的です。まず、PKCS#12形式証明書をPEM形式に変換する必要があります。

下記サイトを参考にしてください。

◎質問者からの返答

そうです。すみません。質問の仕方がおかしかったですね。

fsockopenでやりたかったので、1つ目の方法を試してみたのですが、PEM形式まではできたのですが、最終的に、通信が行えませんでした。

2つ目のcurlを試してみます。色々とありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ