• ベストアンサー

非SSLアクセスをはじく方法

SSL認証のサーバを運営していますが、 SSL通信を行いたいページでも、 http://~の非SSLでもアクセスできてしまいます。 SSLページと、非SSLページが混在しているため、 ポート80番を閉じることはできません。 プログラムでSSLで見せたいページは、https://~で 呼び出しているのですが、 利用者が自らブラウザで「s」をはずしてしまった事態に、アクセスできない対応を取りたいのです。 プログラムはPerlです。 SSLと非SSLとどのような判別方法があるでしょうか? ご教授願います。

質問者が選んだベストアンサー

  • ベストアンサー
  • Ethersky
  • ベストアンサー率71% (168/235)
回答No.1

環境変数で判断すればいいでしょうね。 例えば、SERVER_PORTならサーバーのポート番号になるのでこれが443でなければSSLでのアクセスでないことがわかります。 他にもSSL通信のときにのみ現れる環境変数があるのでそれで判断することもできます。 一例 SSL_CIPHER SSL_CIPHER_ALGKEYSIZE SSL_CIPHER_EXPORT SSL_CIPHER_USEKEYSIZE SSL_CLIENT_CERT SSL_CLIENT_VERIFY SSL_PROTOCOL SSL_SERVER_A_KEY SSL_SERVER_A_SIG SSL_SERVER_CERT SSL_SERVER_I_DN SSL_SERVER_I_DN_C 以下略(他にもあります)

suzucchi
質問者

お礼

環境変数、いろいろ調べたのですが、 こんなのがあるのですね。 ありがとうございました。 結局、SSLページのディレクトリを変えて、 .htaccess に SSLRequireSSL ディレクティブを 記述することで対応しました。 どうもありがとうございました。

関連するQ&A