• ベストアンサー

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

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

  • CGI
  • 回答数1
  • ありがとう数2

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

  • ベストアンサー
  • 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

  • SSLでのアクセス制限

    特定のページを SSLでしかアクセスできないようにしたいのですが可能でしょうか? つまりそのページはポート80では接続できないように したいのです。 参考になるサイトなどがありましたら教えてください。 RedHat 8.0 Apache 1.3.27 + mod_ssl 2.8.14 + tomcat4.1.24

  • ssl 443 以外

    教えてください。 インターネットを介してリモートアクセスする際に、SSL通信で社内のサーバにアクセスをする場合を想定しています。 そのときに、社内WEBサーバにアクセスするときは、リモートPCからSSL-VPN装置までは「443」番ポートでアクセスすると思っています。 ただ、例えばそれが、メールサーバ(WEBメールではなくPOPやSMTP)だったり、RDP(リモートデスクトッププロトコル)だったり、ファイルサーバ(FTP)にアクセスする際も、やはりTCP「443」番でカプセル化されているのでしょうか?それとも、それぞれ別のポート番号なのでしょうか?

  • SSLページ対応のアクセス解析について

    ワダックスの共用サーバーを借りて、ネットショップオーナーというソフトを使ってネットショップを運営しています。 アクセス解析はCGI Cafeの高機能アクセス解析を使っています。 そこで、これまではSSLを使っていなかったのですが、有効にしてみて、SSLページを開くと警告画面が出るようになりました。 調べてみると、SSLページに設置したアクセス解析のタグが原因であるとわかりました。削除したら警告画面がでなくなりました。 このSSLページでもアクセス解析を使いたいのですが、問題なく使えるアクセス解析はないでしょうか。 サーバーも影響しているのでしょうか。 詳しい方がいらっしゃいましたらアドバイスよろしくお願いいたします。

    • ベストアンサー
    • CGI
  • ssl 基本認証でアクセス制限について

    ssl telnet 基本認証でアクセス制限について教えてください。 sslについて知識がありません。 ネットで調べながらやってみたのですがわからないので教えてください。 基本認証(BASIC認証)をしたいと思っています。 サーバーはロリポップです。 sslを利用するためにチカッパプランに変更しました。 参考にしたページはこちらです。 http://allabout.co.jp/gm/gc/23780/3/ 手順1~手順5までは出来ましたが、最後の手順6のファイルの保存の方法がわかりません。 「htpasswd -c」で、ファイルを新規作成する際にフルパスで記述もしてみましたが ファイルが作成できません。 「which htpasswd」でプログラムのフルパスの位置を調べるとusr/bin/htpasswdとなりましたが ファイルがどこにあるのかがわかりません。 .htaccessは AuthUserFileのフルパスの位置を指定する以外はちゃんとできていると思います。 指定したフォルダ以下のページを開こうとするとIDとパスワードを要求する画面が出ます。 困っています。 ご回答お願いします。

    • 締切済み
    • CGI
  • SSLについて

    apatch&linux初心者です。 SSLを使用する場合には、CA(認証機関?)に登録(?)しなければならないのでしょうか? また、こんなことはできますか? 証明書を独自に作成し、その証明書を配布してブラウザにインポートした人だけがhttpsでwebサーバにアクセスできるようにしたいとおもっています。

  • .htaccessで携帯アクセスを非SSLに振り分け

    CGI送信フォームを入れたのですが、(さくらの共有SSLにて) パソコンからの送信はなんとか可能になりましたが、 モバイルからはSSL通信が拒否されアクセスすらできません。 とっても困りました・・・((+_+)) そのため、モバイルのアクセスだけを非SSLにしようと考えました。 この考えは正しいですか? パソコン  https://****.sakura.ne.jp/form.html モバイル  http://****.sakura.ne.jp/form.html 上記の様に .htaccessで携帯のアクセスだけを非SSLにしようと思いますが 今のフォームをそのままにしておいて モバイルアクセスを非SSLのhtppに飛ばす事が可能ですか? その場合、.htaccessにどう書いたら良いでしょうか? お願いします<(_ _)> また、その場合 現在、トップページのリンクは、https://~ のままですが .htaccessで振り分ければ、このままのリンクで大丈夫でしょうか?

  • PerlからSSLのページを読み込みたい

    ここのページを参考にuse Socketでホームページを読み込むスクリプトを作りました。 http://ash.jp/perl/socket_http.htm httpは問題なく読み込めるのですが、httpsのページが読み込めません。 以下のように'http'を'https'に変更してみたのですが、エラーになります。 $port = getservbyname('https', 'tcp'); ■エラー Your browser sent a request that this server could not understand. Reason: You're speaking plain HTTP to an SSL-enabled server port. Instead use the HTTPS scheme to access this URL, please. ---- use Socketではsslのページを読めないのでしょうか? Perlでsslのページを読む方法はありますでしょうか?

    • ベストアンサー
    • Perl
  • IE8・SSLページで警告が出ないサイトを作りたい

    IE8で、SSLページにアクセスすると 「セキュリティで保護されたwebページコンテンツのみを表示しますか?」という 警告が出ます。 これを個人のインターネットオプションの設定を変更するという対策ではなく、 ソースを書き換える、もしくはサーバー側からの設定で 出ないようにしたいと思っています。 素材の中にhttps://~とhttp://が混在しないようにして作っているのですが、 どうしても出てしまいます。 素材が全くない空ページでも出ます。 その後、ベリサインやグローバルサインなどのSSL証明書を発行するサイトの SSLページにアクセスしても警告が出ることがわかりました。 このような会社でも警告が出ないようにサイトを作れないということは、 IE8を使っている限り、SSLページにアクセスした時は、必ず警告は出る、 個人のブラウザの設定でしか回避策はないということでしょうか? それとも私のPCの環境の問題(windows7です)でしょうか? ご存知の方がいらっしゃいましたら、是非、教えて下さい。 よろしくお願い致します。

  • SSLについて

    自社サーバーにて REDHAT apache2.0+openSSLで SSL証明書をインストールしましたが、公開サーバーに内部LANからはhttps://xxxでアクセスできますが、 外部からはhttps://xxx でアクセスできません。  http://では問題ありません。 ポート443を調べても外部からは通信できることを確認しています。 なぜhttps:で接続できないのか分かりません どなたかお分かりになられる方はおられましたら宜しくお願い致します。

  • ポート:443 にアクセスできるようにする方法について

    ポート:443 にアクセスできるようにする方法について すごく初歩的なことかもしれませんが質問させてください。 CentOS5.5でwebサイトを立ち上げようとしているのですが、 ファイアウォールの設定でポートの443は開放されているはず なのに、「ポート:443 にアクセスできませんでした」という メッセージが出てしまいます。 (http://www.cman.jp/network/support/port.htmlで確認) 少し調べてみたのですが、ポートの443番を使うのにはSSLなどが サーバで使えるようになっていることが必須なのでしょうか。 よろしくお願いいたします。

専門家に質問してみよう