zoukankan      html  css  js  c++  java
  • 【curl】certificate is bad 问题解决

    参考:https://blog.scottlowe.org/2018/08/20/troubleshooting-tls-certificates/

    我最近正在写一篇博客文章,内容涉及使用TLS证书进行加密和身份验证,但遇到了错误。我检查了所有“常见的嫌疑犯”,包括AWS安全组,主机级防火墙规则(通过iptables)以及应用程序配置本身,但仍然无法使其正常工作。当我终于找到错误时,我认为如果其他人发现它有用时,可能值得分享我使用的命令。

    该错误本身表现出来,因为我能够在回送地址上成功连接到应用程序(使用TLS),但无法成功分配给网络适配器的IP地址。使用ss -lnt,我验证了该应用程序正在侦听所有IP地址(而不仅仅是回送),并且如前所述,我还验证了AWS安全组和主机级防火墙没有起作用。这使我相信我的TLS配置有问题。

    由于应用程序的错误消息非常模糊(甚至与远程TLS无关),所以我决定尝试使用curl来验证TLS是否正常工作。首先,我运行以下命令:

    curl --cacert /path/to/CA/certificate https://127.0.0.1 -v
    

    经过一些输出后,curl报告此错误:

    curl: (35) gnutls_handshake() failed: certificate is bad
    

    最初,我认为这是证书确实有问题,但是我很快意识到这是一个预期的错误-启用了TLS身份验证,并且我没有提供curl正确的参数。因此,这次我使用正确的参数再次尝试:

    curl --cacert /path/to/CA/certificate 
    --cert /path/to/client/certificate 
    --key /path/to/client/certificate/key 
    https://127.0.0.1 -v
    

    这次连接成功,并且curl命令的输出显示TLS加密和身份验证就位且成功。

  • 相关阅读:
    sitemap.xml生成方法(asp和php)(转)
    浏览器缓存机制(转)
    JavaScript在IE浏览器和Firefox浏览器中的差异总结(转)
    JavaScript的数组及其操作
    Google Maps和GIS开发资源收集
    js 字符串转换成数字(转)
    关于构造函数
    C#类型转化
    .net framework
    C#变量
  • 原文地址:https://www.cnblogs.com/zealousness/p/11606512.html
Copyright © 2011-2022 走看看