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
- / Sertifika Satın oluşturun. Özel bir anahtar olduğundan emin olun.
- 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"
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 grantFull control
ekleyin. "DeğiştirinUygulamahavuzuadı" uygulama havuzu (bazenIIS_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
- 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 .
Nasıl oluşturmak için .pfx dosyası .ce...
Böyle büyük mükafat Anahtarlık bu prof...
Nasıl almak için .java anahtar deposu ...
İPhone Dağılımı Sertifika İçin Özel An...
Nasıl NSURLConnection bağlamak için gü...