2

Web サーバーに証明書をインストールしています。1 つのページに ssl 経由でアクセスできるようにしたい場合、そのページに何をマークアップする必要がありますか、それとも別の場所に別の設定がありますか?

4

4 に答える 4

2

つまり、信頼できる唯一の方法は、https://URLのみを使用してリンクすることです。理想的には、ユーザーがHTTPSの使用を期待し、HTTPSが適切に使用されていることを確認する必要があります(つまり、ブラウザーの警告を無視しません)。

プレーンなHTTPリクエストの後にサーバーに適用されるものはすべて、MITM攻撃に対して潜在的に脆弱です。mod_rewriteこれには、PHPヘッダー(Locationヘッダー)、JavaScript(抽出window.location)、...を介したリダイレクトメソッドが含まれます。もちろん、https://リンク自体がプレーンHTTPで提供されるページから取得される場合は、リンク自体の初期配信も含まれます。のようなものによるアクセスの拒否でさえ、SSLRequireSSLプレーンなHTTPリクエストが受信された後にのみ有効になります。

HTTPSを使用しているという事実にユーザーを慣れさせるためだけに、これらのリダイレクト手法を使用することは悪い考えではありません(別の機会に使用していない場合、MITM攻撃を示している可能性がある、奇妙なことに気付く可能性があります)。そして、少なくとも受動的な盗聴攻撃から保護する必要があります。

より一般的には、サービスを提供http://www.example.comhttps://www.example.comていて、同じホスト名(および場合によっては同じサーバーソフトウェア)を使用している場合でも、技術的には2つの異なるホスト(たとえば、Apache Httpd用語の仮想ホスト)であり、1つでホストされるリソースをでホストする必要はありません。他の。単純なHTTPホストでHTTPS経由でのみ必要なページをサーバー化しないでください。また、リダイレクトを使用しないことをお勧めします(少なくとも開発段階では)。これにより、HTTPSを使用してこれらのページにリンクしていないときにリダイレクトが機能しなくなります。これにより、潜在的な混合コンテンツの問題を検出できます。自動リダイレクトは、主にブラウザに直接アドレスを入力するユーザーに役立ちます。

プリロードされたHTTPStrictTransport Securityリストにサイトを含めることを検討できます(または少なくともHSTSを使用すると、ブラウザーは少なくとも1回は機能した後にのみHTTPSを使用するようになります)が、これはホスト全体に適用されます。

詳細については、これらの回答、Security.SEおよびWebmasters.SEを参照してください。

于 2012-10-21T23:34:00.463 に答える
2

これがPHPでそれを行う方法の例です

if($_SERVER['SERVER_PORT'] != 443) {
   header("Location: https://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
   exit;
}

JavaScriptでそれを行う方法は次のとおりです。

<script type="text/javascript">
    if (window.location.protocol != 'https:') {
        window.location.href = 'https://' + window.location.host + window.location.pathname;
    }
</script>

HTMLのみを使用するには、次の操作を実行できます。

<meta http-equiv="refresh" content="0;url=https://www.yoursite.com" /> 

Apacheの設定で直接行うこともできると思います。

于 2012-10-21T00:02:26.400 に答える
0

サーバーが適切に構成されている場合は、ページまたはサーバーへのリンクに配置する必要はありません。SSLRequireSSLディレクティブを使用して、ページのApache構成でLocationブロックを定義するだけです。

于 2012-10-21T23:33:46.600 に答える
0

サーバーが適切に構成されている場合は、https://を使用してそのページにリンクするために必要なすべてのことを実行します。

httpsなしでページにアクセスできないことを確認するには、phpを使用して現在の正確なURLを検索し、httpsがない場合は、https://[URL]に簡単にリダイレクトするかどうかを確認します。

于 2012-10-20T23:26:27.100 に答える