2016-03-08 16 views
16

In den Identitätsserver Proben erzeugen wir Code wie folgtWie würde ich die Identity Server-Signaturzertifikat

var certFile = env.ApplicationBasePath + "\\idsrv3test.pfx"; 

var signingCertificate = new X509Certificate2(certFile, "idsrv3test"); 

in Startup.cs finden Wie würde ich über das Ersetzen dieser Szenarien für die Produktion gehen?

Antwort

8

ein dediziertes cert Get - entweder über Ihre PKI oder selbst erzeugen ein:

http://brockallen.com/2015/06/01/makecert-and-creating-ssl-or-signing-certificates/

Import den Schlüssel pair in den Windows-Zertifikatsspeicher und von dort zur Laufzeit laden.

Um die Sicherheit zu erhöhen, verteilen einige Leute die Schlüssel zu einem dedizierten Gerät (genannt HSM) oder zu einem dedizierten Gerät (z. B. hinter einer Firewall). Die ITokenSigningService ermöglicht das Verschieben der eigentlichen Tokensignatur auf diese separate Maschine.

12

Für die Aufzeichnung schlug der Code in dem Bild von RUSS posted:

options.SigningCertificate = LoadCertificate(); 

public X509Certificate2 LoadCertificate() 
{ 
    string thumbPrint = "104A19DB7AEA7B438F553461D8155C65BBD6E2C0"; 
    // Starting with the .NET Framework 4.6, X509Store implements IDisposable. 
    // On older .NET, store.Close should be called. 
    using (var store = new X509Store(StoreName.My, StoreLocation.LocalMachine)) 
    { 
     store.Open(OpenFlags.ReadOnly); 
     var certCollection = store.Certificates.Find(X509FindType.FindByThumbprint, thumbPrint, validOnly: false); 
     if (certCollection.Count == 0) 
      throw new Exception("No certificate found containing the specified thumbprint."); 

     return certCollection[0]; 
    } 
} 
+1

in .NET 4.6 'X509Store' Implementieren von' IDisposable' also nicht 'store.Close()'. Mehr Details hier http://stackoverflow.com/questions/18475558/what-is-the-implication-of-not-using-x509store-close-method – Kuncevic

+0

@Kuncevic: danke, ich aktualisierte die Probe. –

0

Vor kurzem meinen Tokensignaturausgabeprozess neu zu beleben mir entschieden. Wenn Sie Windows 10 ausführen, können Sie das beeindruckende Powershell-Cmdlet New-SelfSignedCertificate verwenden.

Hier ist mein Beispiel Nutzung:

New-SelfSignedCertificate -Type Custom 
-Subject "CN=TokenSigningForIdServer" 
-TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.3") 
-KeyUsage DigitalSignature 
-KeyAlgorithm RSA 
-KeyLength 2048 
-CertStoreLocation "Cert:\LocalMachine\My" 

Stellen Sie sicher, den Befehl als Administrator ausgeführt werden. Sie können die Zertifikatdetails erhalten, indem Sie certlm.msc öffnen. Es sollte unter Persönliche Zertifikate gespeichert werden.

Die meisten Flags sollten offensichtlich sein, abgesehen von der TextExtention. Es gibt an, dass das Feld "Verbesserte Schlüsselverwendung" auf den Wert "Code Signing" festgelegt ist. Sie können mit dem verwendeten Algorithmus spielen, Schlüssellänge, fügen Sie sogar Extaisons durch Bezugnahme auf die folgende documentation Seite.