IdentityServer4 Admin 部署到IIS血泪史

捣鼓了几天,终于部署起来了,效果如下.

源代码来源:https://github.com/skoruba/IdentityServer4.Admin

主要难点:

 1,证书的生成和配置。

 2,秘钥的配置。

3,IIS服务器读取证书问题。

下面进入正题

下载完代码,在本地跑是基本上没有太多问题,源代码会自动在本地生成证书,但是这个证书无法在服务器上面使用,只能用于测试环境,所以部署的第一步是先生成证书,采用OpenSSL工具 ,OpenSSL工具使用网上很多教程.

证书生成教程:https://www.cnblogs.com/chenyishi/p/10922326.html

唯独需要注意的是,"颁发给"需要是域名或者IP地址,需要和服务器地址保持一致,否则无法使用,我的服务器是内网服务器没有域名,如果有域名则采用域名,没有则使用IP。

证书生成好后,需要架设3个网站,分别是:Admin,Api,identityServer

然后将生成证书的3个文件(.cer,.key,pfx)放入到服务器identityServer网站根目录,放好后再进入appsettings.json进行配置,配置如下

下一步,3个网站都分别启动HTTPS,需要安装IIS证书模块,安装好了使用证书模块导入,

进入证书模块导入,选择生成好的证书.pfx后缀的文件导入,并且输入生成时候的密码,导入后到具体网站启动HTTPS选择导入的证书

服务器证书如果有信任问题则进入MMC证书管理,导入到受信任证书,这个配置似乎不一定需要。

然后进入应用池,配置加载用户配置为:true,这个非常重要!!!,不然直接报错

客户端秘钥生成:选择SharedSecret,哈希类型Sha256

 一般没有部署好是无法进入管理端,不过本地生成好,然后导入到服务器数据库

配置在Admin项目的配置文件里面,这里不一定需要配置,如果采用初始项目配置,则不需要改变,我是因为采用了新的客户端

到这里重点的配置基本上弄完了,大功告成,登录后应该是可以成功,当然很多细节配置需要自己去处理下,不是很难.

其他一些错误说明:

上面错误基本上是证书没有加载正确,检查是否有配置,加载用户配置为:true

出现:“invalid_client”基本上是秘钥不正确,请检查。

未解决问题关于http连接https在谷歌浏览器跨域问题(edge没有问题),问题如下:

解决中.......

已解决,登录后台配置API跨域即可,

猜你喜欢

转载自blog.csdn.net/ysq5202121/article/details/109105244