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

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

  • 相关阅读:
    南桥-- 算法训练 2的次幂表示
    Ajax系列之中的一个:ajax旧貌换新颜
    ASP.NET综合管理ERP系统100%源代码+所有开发文档
    创业建议干货分享
    读取properties属性文件——国际化
    測试赛C
    Android 自己定义ViewGroup手把手教你实现ArcMenu
    【VBA研究】利用DateAdd函数取上月或上年同期的日期
    【Java集合源代码剖析】TreeMap源代码剖析
    openstack neutron L3 HA
  • 原文地址:https://www.cnblogs.com/lulight/p/15716775.html
Copyright © 2011-2022 走看看