PHPのfopenやfile_get_contentsでSSL接続が出来たりできなかったりしたメモ 
2024/06/23 Sun.
とあるレンタルサーバーのPHPで
fopen('https://~', 'r');
とやったときに接続できるURL、できないURLがあったので「なんでかなあ」と悩んだのですが、レンタルサーバーのPHPが「SNI」をサポートしてないのが原因でした。
どうしようもないです。はい。
PHPのSNIについては
SSL コンテキストオプション
を参照ください。
SNIを簡単に説明すると、
SSL通信はHTTPヘッダーが暗号化されているので一つのIPで複数ドメイン・ホストを動かしているサーバーでは、どのドメイン・ホストに接続したいのか分かりません。なので名前ベースのバーチャルホストを使っているサーバーはSSL通信ができないのですがそれをできるようにするのがSNIの仕組み。
サーバーとクライアントの両方が対応している必要があります。一般的にクライアントはブラウザになりますが、今回の私の場合はPHPがクライアントとなるわけです。
fopen('https://~', 'r');
とやったときに接続できるURL、できないURLがあったので「なんでかなあ」と悩んだのですが、レンタルサーバーのPHPが「SNI」をサポートしてないのが原因でした。
どうしようもないです。はい。
PHPのSNIについては
SSL コンテキストオプション
を参照ください。
SNIを簡単に説明すると、
SSL通信はHTTPヘッダーが暗号化されているので一つのIPで複数ドメイン・ホストを動かしているサーバーでは、どのドメイン・ホストに接続したいのか分かりません。なので名前ベースのバーチャルホストを使っているサーバーはSSL通信ができないのですがそれをできるようにするのがSNIの仕組み。
サーバーとクライアントの両方が対応している必要があります。一般的にクライアントはブラウザになりますが、今回の私の場合はPHPがクライアントとなるわけです。
- 関連記事
この記事へのコメント
コメントの投稿
コメントは全て管理人が内容を確認してから表示されます(非公開コメント除く)。
内容によっては表示されない場合がありますことご了承願います。
内容によっては表示されない場合がありますことご了承願います。
![コムテック ミラー型ドライブレコーダー ZDR048 デジタルインナーミラー機能搭載 前後2カメラ 前後200万画素 FullHD GPS搭載 PureCel Plus技術搭載高感度センサー採用 後側方接近お知らせ機能搭載 高速起動 [出張取付サービス対応]](https://m.media-amazon.com/images/I/71X8BKMXH9L._AC_SL1500_.jpg)
