zoukankan      html  css  js  c++  java
  • 【Azure 环境】当在Azure 环境中调用外部接口不通时,如何定位SSL Certificate Problem

    问题描述

    如果在Azure VM中,发现同一个API,一台VM可以访问成功,另外一台访问失败。如何来调试并定位问题呢?

    问题分析

    第一步,查看访问外部API不通时候出现什么错误。如果没有明确的错误消息,就通过ping API的域名,检查网络连通性

    第二步,nslookup 查看域名是否能够解析成功

    第三步,tcpping/ping/psping等各自方式对外部API的域名进行网络连通性检查

    第四步,  使用curl -v https://api.kdniao.com 来查看是否能成功与服务器建立连接

    第五步,如果发现是SSL建立连接时候出现SSL Certificate problem. 则可以定位出是所访问的外部API服务器证书问题

    那如何来解释多台VM的情况下,一些可以,一些不可以呢?

    答案:这是因为外部API的服务器并不是一台VM,而是启用了CDN的多个服务器节点,在不同的VM中Dig域名就会拿到不同的服务器IP,而因为旧证书过期,而新证书还没有全网同步的时候,就会在部分VM中出现SSL Certificate Problem:certificate has expired。

    如以 api.kdniao.com  为例,解析出来的IP地址有 203.205.159.22 和 106.55.97.71,在Linux机器中,使用curl 访问并指定解析的IP地址,得出两种不同的结果:

    一:SSL 连接失败

    curl -vo /dev/null 'https://api.kdniao.com/Ebusiness/EbusinessOrderHandle.aspx' --resolve api.kdniao.com:443:203.205.159.22

    二:SSL 连接成功

    curl -vo /dev/null 'https://api.kdniao.com/Ebusiness/EbusinessOrderHandle.aspx' --resolve api.kdniao.com:443:106.55.97.71

    参考

    HTTPS协议、TLS协议、证书认证过程解析 : https://www.cnblogs.com/snowater/p/7804889.html

    当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!

  • 相关阅读:
    小球掉落
    String当中与转换相关常用的方法有
    字符串的截取方法
    golang 管道
    golang--协程之间通信的方式
    golang--goroutine
    go 时间操作
    吉格勒定理
    检视阅读
    git branch -a发现分支显示不全
  • 原文地址:https://www.cnblogs.com/lulight/p/15716775.html
Copyright © 2011-2022 走看看