VPS を使用しています。HTTPS プロトコル経由でサーバーに接続し、ブラウザ接続を HTTPS 接続にリダイレクトするにはどうすればよいですか?
現在、SSH トンネルを使用していますが、遅すぎます。
答え1
私はSquidをプロキシサーバーとして使用しており、スタンネルSSL ラッパーとして。キャッシュにより非常に優れたパフォーマンスを発揮します。
Squid の設定
Squidをインストールしたら、Squid ドキュメント設定します。設定例は次のとおりです。
http_port 3193 透過 キャッシュディレクトリ ufs /var/cache/squid 128 16 128 キャッシュメモリ 1 MB メモリ内の最大オブジェクトサイズ 512 KB 最大オブジェクトサイズ 1 MB 表示ホスト名 ホスト名.com 階層ストップリスト cgi-bin ? リフレッシュパターン ^ftp: 1440 20% 10080 リフレッシュパターン ^gopher: 1440 0% 1440 リフレッシュパターン -i (/cgi-bin/|\?) 0 0% 0 リフレッシュパターン . 0 20% 4320 ACL マネージャー プロトコル cache_object ACL ローカルホスト src 127.0.0.1/32 ::1 ACL to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1 acl localnet src 10.0.0.0/8 # RFC 1918 可能な内部ネットワーク acl localnet src 172.16.0.0/12 # RFC 1918 可能な内部ネットワーク acl localnet src 192.168.0.0/16 # RFC 1918 可能な内部ネットワーク acl localnet src fc00::/7 # RFC 4193 ローカルプライベートネットワーク範囲 acl localnet src fe80::/10 # RFC 4291 リンクローカル(直接接続)マシン acl SSL_ports ポート 443 acl Safe_ports ポート 80 # http acl Safe_ports ポート 21 # ftp acl Safe_ports ポート 443 # https acl Safe_ports ポート 70 # gopher acl Safe_ports ポート 210 # wais acl Safe_ports ポート 1025-65535 # 未登録のポート acl Safe_ports ポート 280 # http-mgmt acl Safe_ports ポート 488 # gss-http acl Safe_ports ポート 591 # ファイルメーカー acl Safe_ports ポート 777 # マルチリング http acl CONNECT メソッド CONNECT auth_param 基本プログラム /usr/libexec/squid/pam_auth auth_param 基本子 5 auth_param 基本レルム Squidy auth_param 基本認証情報ttl 4 時間 acl パスワード proxy_auth 必須 http_access 許可マネージャー http_access 拒否!セーフポート http_access 拒否 CONNECT !SSL_ports http_access パスワードを許可する http_access ローカルホストを許可する http_access ローカルネットを許可する http_access すべて拒否 オフ経由 forwarded_for オフ request_header_access すべて許可する request_header_access 認証すべて許可 request_header_access WWW認証すべて許可 request_header_access プロキシ認証すべて許可 request_header_access プロキシ認証すべて許可 request_header_access Cache-Control すべて許可 request_header_access コンテンツエンコーディング すべて許可 request_header_access コンテンツ長 すべて許可 request_header_access コンテンツタイプ すべて許可 request_header_access 日付 すべて許可 request_header_access 期限切れ すべて許可 request_header_access ホストはすべて許可 request_header_access If-Modified-Since すべて許可 request_header_access Last-Modified すべて許可 request_header_access 場所 すべて許可 request_header_access プラグマすべて許可 request_header_access すべて許可する request_header_access Accept-Charset すべて許可 request_header_access Accept-Encoding すべて許可 request_header_access Accept-Language すべて許可 request_header_access コンテンツ言語 すべて許可 request_header_access Mime-Version すべて許可 request_header_access 再試行後すべて許可 request_header_access タイトル すべて許可 request_header_access 接続はすべて許可 request_header_access プロキシ接続すべて許可 request_header_access ユーザーエージェントすべて許可 request_header_access Cookie すべて許可 request_header_access すべてすべてを拒否
ポートを listen します3193 tcp
。次に、キャッシュ オプション、いくつかの ACL コマンド、auth_param
および PAM 認証 (おそらく、プロキシを開いてスパム レポートで VPS を失うことは望ましくないでしょう) が続きます。request_header_access
行は必須ではありません。これにより、匿名性が高まります。
Stunnel サーバーの構成
サーバーに stunnel をインストールします。サンプル構成は次のとおりです。
setuid = stunnel setgid = stunnel CAファイル = /etc/stunnel/certs.pem CRLファイル = /etc/stunnel/crls.pem [プロキシ] 受け入れる = 8888 接続 = 127.0.0.1:3193
おそらく、stunnel のインストール時に作成された認証ファイルです。 のファイル パスを確認してくださいCAfile
。ポートをリッスンし8888 tcp
、復号化されたストリームを Squid にリダイレクトするだけです。そのため、アクセス可能であることを確認しましょう。
iptables -I INPUT 1 -p tcp --dport 8888 -j ACCEPT
Squid リスニング ポートを世界中からアクセス可能にする必要はなくなりました。
Stunnel クライアントの設定
ローカル マシンに stunnel をインストールし、必要に応じてこの構成を変更します。
setuid = stunnel setgid = stunnel pid = /var/run/stunnel/stunnel.pid [ポキシー] 受け入れる = 8123 接続 = server_ip:8888 クライアント = はい libwrap = いいえ
server_ip を適切な値に置き換えます。次に、サーバー上で Squid を起動し、クライアントとサーバー上で Stunnel を起動します。localhost:8123
ブラウザと同じようにプロキシを設定します。すべてが機能する場合は、ユーザー名とパスワードの入力が求められます。
答え2
https サーバーは Apache ですか? 状況を完全には理解していませんが、mod_proxy があれば、必要な操作を実行できる可能性があります。
答え3
仮想ホストに何かを設定したことはありませんが、一般的な HTTPS に関する情報は次のとおりです。
HTTPS は HTTP と SSL の組み合わせを使用します (Wikipedia の記事を参照してください)。http://en.wikipedia.org/wiki/HTTP_Secure)。HTTPS は、それ自体が独自のプロトコルというわけではなく、SSL トンネル上で実行される通常の HTTP です。
HTTPS は、CA (証明機関) と PKI (公開鍵インフラストラクチャ) を使用して、ユーザーがサイトを「信頼できる」ようにします。Web サーバー用の公開鍵証明書を作成し、信頼できる CA (VeriSign など) によって署名されている必要があります。信頼できる証明書を取得するには、維持費として年間料金がかかる場合があります。
信頼できる CA を経由しない場合、ユーザーがサイトに接続しようとすると警告が表示されます。これにより、ユーザーはセキュリティ上のリスクと見なし、サイトから離れてしまうことがよくあります。
また、HTTP はデフォルトでポート 80 を使用するのに対し、HTTPS は 443 を使用するので、ポート転送/ポート ブロックがある場合は、接続できるようにポートが開いていることを確認する必要があります。HTTPS を使用するには、サイトに移動するときに URL に入力する必要があります。そうしないと、デフォルトで HTTP が使用される可能性があります。
編集: HTTPS の動作に関する優れた紹介がここにあります: http://securityworkshop.blogspot.com/2009/01/how-httpsssl-works-part-1-basics.html
答え4
私の水晶玉は、あなたが見るべきと告げていますhttp://www.stunnel.org/static/stunnel.html
ボールが間違っていても、とにかく痛くはありません。