• IdentityServer4 自定义证书设置


    IdentityServer4组件token类型如果选择jwt,则需要RS256算法生成非对称签名,私钥服务端保留,公钥则通过IS4公钥接口对外提供。默认情况下,IS4提供了AddDeveloperSigningCredential方法作为开发环境的生成测试RSA文件,提供私钥和公钥。如果正式一点的话,需要我们自己生成一个加密证书。OpenSSL就是这样的一个工具。

    OpenSSL制作证书

    1. 下载OpenSSL,地址:https://i-beta.cnblogs.com/posts/edit;postId=12531161。安装完成后,通过CMD,cd 到 bin目录下
    2. 执行申请证书命令,中间会让你输入一堆国家、公司、邮箱等相关信息。命令完成后会在当前目录下生成cas.clientservice.cer、cas.clientservice.key两个文件。.cer即为证书,.key是密钥
      ./openssl req -newkey rsa:2048 -nodes -keyout cas.clientservice.key -x509 -days 3650 -out cas.clientservice.cer
    3. 我们需要将证书和Key生成一个文件。执行以下命令。中间会让你输一个密码,需要记下来。完成后在生成ids4.pfx证书文件,这个就是IS4需要的证书了
      ./openssl pkcs12 -export -in cas.clientservice.cer -inkey cas.clientservice.key -out ids4.pfx

    IdentityServer4中使用证书

    IS4提供了AddSigningCredential扩展方法加入自定义证书。构造证书类 X509Certificate2 代码如下:

            public static X509Certificate2 GetCertificate(IConfiguration configuration)
            {
                var certFullPath = Path.Combine(configuration["IdentityServer:Certificates:CerPath"]);
                return new X509Certificate2(certFullPath, configuration["IdentityServer:Certificates:Password"]);
            }

    扩展知识

    各种签名证书分类: https://www.cnblogs.com/xq1314/archive/2017/12/05/7987216.html

    私钥、公钥和证书的关系:https://blog.csdn.net/qq_34115899/article/details/81298284

  • 相关阅读:
    GUID
    ORA-04044: 此处不允许过程, 函数, 程序包或类型和
    去掉word文档两边的空白
    Mysql数据库服务启动
    计算两个日期之间的天数
    SpringMVC——接收请求参数和页面传参
    ajax中get和post区别
    如何实现两个页面之间进行传值
    面试题
    MySQL数据库优化
  • 原文地址:https://www.cnblogs.com/gt1987/p/12531161.html
Copyright © 2020-2023  润新知