SORU
9 NİSAN 2010, Cuma


Nasıl sertifika deposuna bir sertifika özel anahtar için ASP.NET erişim vermek için?

Sertifika deposuna bir sertifika özel anahtar erişen ASP.NET bir uygulama var. Windows Server 2003 winhttpcertcfg.exe özel anahtar AĞ HİZMETİ hesabı için erişim vermek için kullanmayı başardı. Peki Windows Server üzerinde sertifika deposuna bir sertifika (Yerel Bilgisayar\Kişisel) Özel bir Anahtar erişim izinlerini IIS 7.5 web 2008 R2 veririm?

Tam Güven erişmek için vermeye çalıştım "Herkes", "", "IIS_IUSRS" ve everyother güvenlik hesabı Sertifikaları kullanarak MMC'YE bulabilirim (Server 2008 R2). IIS AppPool\DefaultAppPool Kod aşağıda ancak bu kodu özel anahtarı ile alınan bir sertifika Özel Anahtar erişimi yok gösteriyor. Kodu yerine özel anahtar özelliği erişilen zaman hata atar.

Varsayılan.SEO

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Import Namespace="System.Security.Cryptography.X509Certificates" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Repeater ID="repeater1" runat="server">
            <HeaderTemplate>
                <table>
                    <tr>
                        <td>
                            Cert
                        </td>
                        <td>
                            Public Key
                        </td>
                        <td>
                            Private Key
                        </td>
                    </tr>
            </HeaderTemplate>
            <ItemTemplate>
                <tr>
                    <td>
                    <%#((X509Certificate2)Container.DataItem).GetNameInfo(X509NameType.SimpleName, false) %>
                    </td>
                    <td>
                    <%#((X509Certificate2)Container.DataItem).HasPublicKeyAccess() %>
                    </td>
                    <td>
                    <%#((X509Certificate2)Container.DataItem).HasPrivateKeyAccess() %>
                    </td>
                </tr>
            </ItemTemplate>
            <FooterTemplate>
                </table></FooterTemplate>
        </asp:Repeater>
    </div>
    </form>
</body>
</html>

Varsayılan.SEO.cs

using System;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;
using System.Web.UI;
public partial class _Default : Page 
{
    public X509Certificate2Collection Certificates;
    protected void Page_Load(object sender, EventArgs e)
    {
        // Local Computer\Personal
        var store = new X509Store(StoreLocation.LocalMachine);
        // create and open store for read-only access
        store.Open(OpenFlags.ReadOnly);
        Certificates = store.Certificates;
        repeater1.DataSource = Certificates;
        repeater1.DataBind();
    }
}
public static class Extensions
{
    public static string HasPublicKeyAccess(this X509Certificate2 cert)
    {
        try
        {
            AsymmetricAlgorithm algorithm = cert.PublicKey.Key;
        }
        catch (Exception ex)
        {
            return "No";
        }
        return "Yes";
    }
    public static string HasPrivateKeyAccess(this X509Certificate2 cert)
    {
        try
        {
            string algorithm = cert.PrivateKey.KeyExchangeAlgorithm;
        }
        catch (Exception ex)
        {
            return "No";
        }
        return "Yes";
    }
}

CEVAP
15 NİSAN 2010, PERŞEMBE


  1. / Sertifika Satın oluşturun. Özel bir anahtar olduğundan emin olun.
  2. Al içine belgesi "Yerel Bilgisayar" hesabı. En iyi Sertifikaları MMC'YE kullanmak için.Kontrol ettiğinizden emin olun "özel anahtar dışa Ver"
  3. Hangi dayalı, IIS 7.5 Uygulama Havuzu kimliği aşağıdakilerden birini kullanın.

    • IIS 7.5 web Sitesi Applicationpoolıdentity altında çalışıyor. MMC'YE = ^ aç . Ek = ^ Sertifikaları ekleyin . Sertifikalar (Yerel Bilgisayar) =>Kişisel =>Sertifikalar =>Sağ tıklatın faiz sertifika =>Tüm görevler =>Özel anahtar = ^ yönetin . IIS AppPool\AppPoolName ve grant Full control ekleyin. "DeğiştirinUygulamahavuzuadı" uygulama havuzu (bazen IIS_IUSRS) adı ile
    • IIS 7.5 web Sitesi ŞEBEKE SERVİSİ altında çalışıyor. Sertifikaları kullanarak DEPOLANMIŞTIR eklenen "NETWORK SERVİCE" için sertifika üzerinde Tam Güven "Yerel Bilgisayar\Kişisel".
    • IIS 7.5 web Sitesi altında çalışıyor "MyİİSUser" yerel bilgisayar kullanıcı hesabı. Sertifikaları kullanarak MMC'YE, ekledi "" (yeni yerel bilgisayarda kullanıcı hesabı) sertifika üzerinde Tam Güven "Yerel Bilgisayar\Kişisel". MyİİSUser

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Goran Dimov

    Goran Dimov

    1 HAZİRAN 2014
  • jocc talking shit

    jocc talking

    6 NİSAN 2007
  • Philip DeFranco

    Philip DeFra

    16 EYLÜL 2006