web-dev-qa-db-ja.com

ASP.NetアプリケーションでHTTPSを使用する方法

ASP.NET WebアプリケーションでHTTPSを使用したいのですが、Login.aspxページのみに使用します。

どうすればこれを達成できますか?

44
Mon Aung
  1. 最初に証明書を取得または作成します

  2. SecureWebPageModuleモジュールを http://www.codeproject.com/Articles/7206/Switching-Between-HTTP-and-HTTPS-Automatically-Ver から取得します。セットアップの手順については、記事をご覧ください。

  3. SecureWebPagesタグをweb.configに追加します

    <configuration>
        ...
        <secureWebPages enabled="true">
            ...
        </secureWebPages>
        ...
        <system.web>
            ...
        </system.web>
    </configuration>
    
  4. Httpsプロトコルに使用するファイルとディレクトリを追加します。

    <secureWebPages enabled="true">
        <file path="Login.aspx" />
        <file path="Admin/Calendar.aspx" ignore="True" />
        <file path="Members/Users.aspx" />
        <directory path="Admin" />
        <directory path="Members/Secure" />
    </secureWebPages> 
    

お役に立てれば!

30
Talley

独自の証明書を公開することも、購入することもできます。注意点は、会社によって異なりますが、ほとんどのブラウザーの証明書ストアに既に保存されていることです。自己公開されたものはそうではなく、ユーザーは証明書をインストールする追加の手順を実行する必要があります。

使用しているIISのバージョンは言いませんが、 ここにIIS 6 の詳細な手順があります

比較的安価な証明書を購入するか、大きな男の子(verisign)にアクセスして、IEのアドレスバーを緑色にする拡張検証証明書を取得できます。また、多少厳密な検証プロセスであり、時間がかかります。

Webサイトにアクセスするすべてのユーザーを知っている場合、自分のWebサイトをインストールしても問題はありません。ただし、匿名ユーザー(知らない)を使用するオープンWebサイトの場合は、ほとんどの主要なブラウザーである証明書ストアに既に存在するWebサイトを購入することをお勧めします。

IISでSSLを有効にし、それをlogin.aspxページのみに要求し、残りは要求しません。

12
GregD

SSLのセットアップ/インストールが完了したら、ログインページでhttps://への何らかのリダイレクトを行います。検証後にユーザーが送信されるページは、http://になります。

Protected Sub Page_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRender
    If Request.IsSecureConnection = False And _
        Not Request.Url.Host.Contains("localhost") Then

        Response.Redirect(Request.Url.AbsoluteUri.Replace("http://", "https://"))
    End If
End Sub

これは、マスターページまたはhttpsを必要とするすべてのページに簡単に実装できます。 「localhost」を確認することで、テスト環境でエラーが発生することを回避できます(テストサーバーに、「mytestservername」を確認する以外の名前がない場合)。

10
JeffO

免責事項-私はこのプロジェクトの開発に関わっていました

http://nuget.org/packages/SecurePages/ を使用することをお勧めします。特定のページを保護したり、正規表現を使用して一致を定義したりできます。また、正規表現に一致しないページまたはHTTPに直接指定されていないすべてのページを強制します。

NuGet経由でインストールできます:Install-Package SecurePages

ドキュメントはこちら: https://github.com/webadvanced/Secure-Page-manager-for-asp.net#secure-pages

簡単な使用法:

SecurePagesConfiguration.Urls.AddUrl("/cart");

または

SecurePagesConfiguration.Urls.AddRegex(@"(.*)account", RegexOptions.IgnoreCase | RegexOptions.Compiled | RegexOptions.Singleline);
5
Paul

IIS configでHTTPSを有効にできますが、SSL証明書を取得してIISにプラグインしない限り、「安全」ではありません。ポート443が開いていることを確認してください。

3
tsilb