脱力系備忘録BloG ホーム » PHP »PHPのfopenやfile_get_contentsでSSL接続が出来たりできなかったりしたメモ

PHPのfopenやfile_get_contentsでSSL接続が出来たりできなかったりしたメモ  

とあるレンタルサーバーのPHPで

fopen('https://~', 'r');

とやったときに接続できるURL、できないURLがあったので「なんでかなあ」と悩んだのですが、レンタルサーバーのPHPが「SNI」をサポートしてないのが原因でした。

どうしようもないです。はい。

PHPのSNIについては
SSL コンテキストオプション
を参照ください。

SNIを簡単に説明すると、
SSL通信はHTTPヘッダーが暗号化されているので一つのIPで複数ドメイン・ホストを動かしているサーバーでは、どのドメイン・ホストに接続したいのか分かりません。なので名前ベースのバーチャルホストを使っているサーバーはSSL通信ができないのですがそれをできるようにするのがSNIの仕組み。
サーバーとクライアントの両方が対応している必要があります。一般的にクライアントはブラウザになりますが、今回の私の場合はPHPがクライアントとなるわけです。
関連記事

category: サーバー PHP

この記事へのコメント

コメントの投稿

非公開コメント

コメントは全て管理人が内容を確認してから表示されます(非公開コメント除く)。
内容によっては表示されない場合がありますことご了承願います。

プロフィール

お問い合わせ

最新記事

最新コメント

▲ Pagetop