web-dev-qa-db-ja.com

Identity Server署名証明書をどのように生成しますか

アイデンティティサーバーのサンプルでは、​​Startup.cs

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

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

これを生産シナリオに置き換えるにはどうすればよいですか?

19
sunil

専用の証明書を取得します-PKIまたは自己生成証明書を使用します:

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

キーペアをWindows証明書ストアにインポートし、実行時にそこからロードします。

セキュリティを強化するために、一部の人々は、専用デバイス(HSMと呼ばれる)または専用マシン(ファイアウォールの背後など)にキーを展開します。 ITokenSigningServiceにより、実際のトークン署名をその別のマシンに移動できます。

12
leastprivilege

記録については、RuSsが投稿した画像で提案されているコード:

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];
    }
}
16
Eric Boumendil

構成のin印から読み込む方法は次のとおりです。 画像を表示するにはここをクリック

5
RuSs

最近、トークン署名発行プロセスを改訂することにしました。 Windows 10を実行している場合、New-SelfSignedCertificateという素晴らしいpowershellコマンドレットを使用できます。

これが私の使用例です:

    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"

管理者としてコマンドを実行していることを確認してください。証明書の詳細を取得するには、certlm.mscを開きます。 Personal\Certificatesの下に保存する必要があります。

-TextExtentionフラグを除いて、ほとんどのフラグは明らかです。 Enhaced Key Usageフィールドが「Code Signing」値に設定されることを指定します。次の documentation ページを参照することで、使用されるアルゴリズム、キーの長さ、エクステントソンを追加することもできます。

5
Evdzhan Mustafa