証明書はあらかじめ用意しておく。 openssl なり何なり使って、自己署名証明書を作成するなら↓みたいな感じ。
#!/bin/bash DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" PRIVATE_PEM=$DIR/private.pem PUBLIC_PEM=$DIR/public.pem PFX=$DIR/<証明書ファイル名>.pfx PASSWORD=$1 if [ -z "$PASSWORD" ] then PASSWORD="<パスワード>" fi echo "秘密鍵を生成" openssl genrsa 2048 > $PRIVATE_PEM echo "公開鍵を生成" echo """JP <都道府県> <市区町村> <組織名> <部門名> <FQDN> <メールアドレス> """ | openssl req -x509 -days 36500 -new -key $PRIVATE_PEM -out $PUBLIC_PEM echo "証明書を生成" openssl pkcs12 -export -in $PUBLIC_PEM -inkey $PRIVATE_PEM -out $PFX -password pass:$PASSWORD
あとは IdentityServer4 の構成で、用意した証明書を指定すれば OK。
var builder = services.AddIdentityServer(options => { options.EmitStaticAudienceClaim = true; options.AccessTokenJwtType = "jwt"; }); if (Environment.IsDevelopment()) { builder.AddDeveloperSigningCredential(); } else { var cert = new X509Certificate2( ".pfx ファイルのパス", ".pfx ファイルのパスワード", X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.Exportable ); builder.AddSigningCredential(cert); }