• IIS证书配置。。这究竟是为什么


    解决一个难题有时候比一帆风顺的做完要爽得多。。

    昨天跟着identityserver4教程做demo,前面几步正常,到写demo客户端连接认证的时候卡住了。

    打开client的Development模式,页面显示的错误是证书错误。

    端口问题?

    但是在identityserver4这边,也开始我看到了重定向地址不匹配的错误,我的IIS配置的是9012端口,而日志显示的是44332。
    我搜索了整个工程,发现只有launchsettings.json里有这个地址,但是发布到IIS后,显然不应该会有相关信息了。
    不管如何,将这个地址也改成9012,并且在Startup中配置了https重定向选项

    
                services.AddHttpsRedirection(options =>
                {
                    options.HttpsPort = 9012;
                });
    

    再发布,再client页面看到的错误没变,不过identityserver没有显示什么异常了。

    其实后来反过头想,可能原来server端异常是我在vs调试时碰到的异常,并不是这次的log,不过没有再深究。

    证书错误?

    因为无论是client还是server的页面,在浏览器中打开,浏览器都提示连接安全,所以我一直没有认为真的时证书问题,还是找Identityserver的问题。

    换证书-IIS

    知道我在一个论坛帖子里(看了太多的解决方案,已经不记得是哪个了),有人说他删除并且重新添加一下证书就好了。

    抱着死马当活马医的心态,我删除了iis的证书,重新在IIS里生成自签名证书,配置到identityserver中,这下好了,浏览器都提示证书不安全了。

    我将新生成的证书挪到受信任根证书颁发者中,浏览器依旧不识别,当然,之前的错误还在。

    重新生成证书-命令

    想了想为什么,发现可能实证书颁发的subject是我的计算机名称,而网站地址我的是localhost,不匹配。

    不过又发现IIS生成的自签名证书,竟然不能改CN字段。。无奈又去网上搜索,不想重新下载什么openssl之类的,最终发现powershell有生成自签名证书的功能:

    New-SelfSignedCertificate -DnsName "localhost" -CertStoreLocation "cert:LocalMachineMy"
    

    重新生成这个证书,在IIS中给identityserver的证书配置为这个(注意,只有存储在My这个区域的证书IIS才能看到)。

    最后将证书在证书管理器(contana搜索栏输入cert就能找到)中,将证书复制到受信任根证书颁发者中。

    重新启动服务器,好了!

    结论

    其实还是不知道为什么,之前的证书按道理也绝对是好的。。。

  • 相关阅读:
    简要集群复制shell脚本
    git命令
    gitlab部署
    QPS、TPS、并发用户数、吞吐量关系
    Windows admin center
    ftp命令行工具
    ftp ftps sftp
    部署 Nethogs
    smtp imap
    如何在【博客园】通过搜索 博主 昵称 来找到博主?
  • 原文地址:https://www.cnblogs.com/mosakashaka/p/12608455.html
Copyright © 2020-2023  润新知