收藏
回答

小程序申请退款出现 没有识别提供给安全包的凭证

在自己电脑上调试的时候是正常的   上服务器的时候将证书放到服务器上 也导入成功了  项目中的证书路径也改好了

就是在退款的时候就出现  没有识别提供给安全包的凭证 的错误  自己电脑上调试是完全正常的

错误是这样的

INFO  2019-10-31 17:47:13,293 [12   ] in.Health._Payment.bss_PaymentAppService - 2019-10-31 17:47 出错了WxPayException: System.Net.WebException: The SSL connection could not be established, see inner exception. 没有识别提供给安全包的凭证 ---> System.Net.Http.HttpRequestException: The SSL connection could not be established, see inner exception. ---> System.ComponentModel.Win32Exception: 没有识别提供给安全包的凭证

最后一次编辑于  2019-10-31
回答关注问题邀请回答
收藏

3 个回答

  • LazyCoder
    LazyCoder
    2019-11-25

    你好! 回答一下你的问题。哈哈。

    这个问题产生 的原因 有大神说是,HttpClient 的继承类 关系导致。这个我不太赞同,因为你看看爆出的错误 他是 The SSL connection could not be established,  也就是 无法解析的问题。所以我想你的 程序是 。net 写的,本地没有问题 而远程有问题。问题就是权限。你本地用管理员登陆的,而且你只有一个账户:再服务器上你的用账户就不一定是一个。 对吧。特别是ECS 登陆,管理员非要给我二级用户,还有IIS 本身也不是默认账户 管理的。导入证书就有问题了。 用代码说吧:

      X509Certificate2 cert = new X509Certificate2(“你的证书地址” ,“你密钥”,X509KeyStorageFlags.MachineKeySet);

    DefaultKeySet 0

    使用默认密钥集。The default key set is used.  用户密钥集通常是默认值。The user key set is usually the default.

    EphemeralKeySet 32

    与 PFX 文件相关联的密钥是在内存中创建的,导入证书时它不会保留在磁盘上。The key associated with a PFX file is created in memory and not persisted on disk when importing a certificate.

    Exportable 4

    导入的密钥将标记为可导出。Imported keys are marked as exportable.

    MachineKeySet 2

    私钥存储在本地计算机存储,而非当前用户存储。Private keys are stored in the local computer store rather than the current user store.

    PersistKeySet 16

    导出证书时,与 PFX 文件关联的密钥将会保留。The key associated with a PFX file is persisted when importing a certificate.

    UserKeySet 1

    私钥存储在当前用户存储,而非本地计算机存储。Private keys are stored in the current user store rather than the local computer store. 即使证书指定密钥应放入本地计算机存储,也仍会按此方式存储。This occurs even if the certificate specifies that the keys should go in the local computer store.

    UserProtected 8

    通过对话框或可访问密钥的其他方法通知用户。Notify the user through a dialog box or other method that the key is accessed.  由使用中的加密服务提供程序 (CSP) 定义精确行为。

    看看你会发现问题的。不知有没有用,哈哈哈有用的就是一句。。。

    X509Certificate2 cert = new X509Certificate2(“你的证书地址” ,“你密钥”,X509KeyStorageFlags.MachineKeySet); 修改一个后面的参数。

    2019-11-25
    有用 7
    回复 4
    • 👀
      👀
      2020-02-09
      大赞。。 完美解决
      2020-02-09
      回复
    • 开发君
      开发君
      2020-08-20
      感谢回答!!
      2020-08-20
      回复
    • 叶焕意ጿ ኈ ቼ ዽ ጿ
      叶焕意ጿ ኈ ቼ ዽ ጿ
      03-22
      蟹蟹
      03-22
      回复
    • 袁某人
      袁某人
      06-13
      X509KeyStorageFlags.MachineKeySet 基本属于完美解释
      06-13
      回复
  • Roy Yi
    Roy Yi
    2021-09-13

    非常感谢,的确加上第3个参数就解决了问题。

    X509Certificate2 cert = new X509Certificate2(PayHelper.CertPath, PayHelper.CertPassword, X509KeyStorageFlags.MachineKeySet);

    我的场景是移置到阿里云服务器上后出现问题:The SSL connection could not be established

    2021-09-13
    有用
    回复
  • 微信支付技术助手1
    微信支付技术助手1
    2019-10-31

    看看证书路径是不是有问题。

    2019-10-31
    有用
    回复 2
    • 谨年
      谨年
      2019-10-31
      试过了 证书路径改了还是不行
      2019-10-31
      回复
    • 谨年
      谨年
      2019-10-31
      INFO 2019-10-31 17:47:13,293 [12 ] in.Health._Payment.bss_PaymentAppService - 2019-10-31 17:47 出错了WxPayException: System.Net.WebException: The SSL connection could not be established, see inner exception. 没有识别提供给安全包的凭证 ---> System.Net.Http.HttpRequestException: The SSL connection could not be established, see inner exception. ---> System.ComponentModel.Win32Exception: 没有识别提供给安全包的凭证  这个是错误提示
      2019-10-31
      回复
登录 后发表内容
问题标签