- 締切済み
SSLのページかどうか判別する方法
情報漏えい防止のため、PCからのアクセスをSSLに限定したいのですが、SSLかどうかを判別する方法で困っています。 あるサーバでは以下のスクリプトでうまく稼動しています。 しかし、別のサーバでは「サーバが見つかりません」となってしまいます。 // SSLかチェック(SETTLEMENT_SCRIPTにはSSLのアドレス) //if( !$_SERVSER["SSL_SERVER_DN"] && !$_SESSION["user_mobile"] ) header("Location: " . SETTLEMENT_SCRIPT ); $_SERVSERの値を調べてみたら通常のページでもSSLのページでも値が変わる変数はなく、$_SERVSER["SSL_SERVER_DN"]という変数もないためでした。 レンタルサーバに問い合わせると、「SSLはもっと前の段階で振り分けているため機能しない」というようなことを言われました。(聞いてもよく分からなかった) こういう場合、どう処理してよいのかわかりません。 携帯でアクセスしてきたユーザーがアドレスを見て、同じURLでPCでアクセスしてきてしまったらお手上げです。 携帯もSSLで接続できればいいのですが、携帯で接続しようとすると「このサイトは安全でない可能性があるため接続できません(発行者エラー)」と表示され、接続できません。 どうしたらよいのでしょう? 環境: PHP Version 4.3.0 SSLはレンタルサーバの共有SSL
- みんなの回答 (6)
- 専門家の回答
補足
レンタルサーバーに問い合わせてみました。 以下、回答です。 ----------------------------------------------------- ■SSL通信につきまして 弊社で提供しておりますの共有SSLの仕組みにつきまして説明させていただきます。 SSLアクセラレーターを通じてSSL通信を実現しております。 SSL通信を行う際、閲覧者とSSLアクセラレーター間はSSL通信を行いますが、 SSLアクセラレーターからお客様サーバー間は通常のHTTP通信となります。 従いまして、お客様のご指摘通り、SSL通信であるか否かの判定が行えない環境で ございます。 ■独自SSLでは 共有SSLのほかにベリサインなどの独自SSLの場合につきましても、同様の仕組みを 採っていますが、こちらに関しましてはお客様のご要望に応じてSSLアクセラレーター 経由ではなく、サイトに直接、証明書をインストールする対応をさせていただいて おります。 この場合にはSSL通信の判定が可能になります。 大変恐縮ではございますが、結果としまして共有SSLの場合には、お客様のご要望に ございます、SSL通信の判定が行えない環境でございます。 ----------------------------------------------------- ということは、あきらめるしかないということですね。。。