google-apps-script - Google Apps 脚本中国防部网站的 SSL 验证

标签 google-apps-script

我们最近遇到了一个错误,该错误似乎是由于 Google 在 Google Apps for Gov 服务上处理 Google Apps 脚本中 SSL 信任的方式发生了变化而引起的。我们有一些 Apps Script 系统——特别是两个是服务器监控系统和基于 Web 服务的日历同步工具——它们通过 SSL 连接与我们端的服务器进行通信。这几个月来一直运行良好,直到 2012 年 9 月 20 日晚上 9 点 15 分,几乎所有这些(和类似的)连接都开始失败,因为无法信任对我们来说是强制性的 DOD 签名证书东西的。

更奇怪的是,这有点不一致——也就是说,我可以成功要求 Google 连接到 https://usuportal.usuhs.mil。它加载得很好。但是,如果我尝试以下任何一种:

https://www.us.army.mil

https://www.nps.edu

https://www.disa.mil

https://learning.usuhs.edu

......他们都失败了。我怀疑这与某些服务器将自己绑定(bind)到的根证书有关,足以让所有将“DOD Root CA-2”证书作为终结者绑定(bind)到失败 - 对我们来说是一个真正的问题。

对于我们的服务器监控,我们已经能够通过在 Apps Script 中禁用 SSL 验证来临时解决这个问题,但是该选项不可用于访问 web 服务 [编辑:我们正在使用 SoapService 处理 WS 请求和返回],让我们无法只要存在此问题,就可以继续使用这些工具。不过,鉴于我们可以准确识别相关变化何时发生,我希望谷歌至少(相对)能够快速查明发生了什么。

如果它有帮助,下面是一个快速的 Google Apps 脚本功能,它将根据它是否能够信任端点的 SSL 证书来注销成功/失败。

function checkSSL()
{
// The server to go look at to see if we can trust it.
// Again, usuportal.usuhs.mil has been observed to work; all others tested have failed
//
var serverToTest = "https://www.disa.mil";

// options defines the options which will be used by the UrlFetchApp to define its behavior.
// In this case, we may be interested in disabling SSL validation.
//

var options =
{
    "validateHttpsCertificates" : false
};

// First, try without disabling validation
//
try {
    response = UrlFetchApp.fetch(serverToTest);
    Logger.log("I was able to reach " + serverToTest +" without disabling certificate validation.");
}
catch (e)
{
    // Logger.log(e.toString());
    Logger.log("I was not able to reach " + serverToTest +" without disabling certificate validation.");
}

// Now let's try it with validation disabled
//
try {
    response = UrlFetchApp.fetch(serverToTest, options);
    Logger.log("I was able to reach " + serverToTest +" with certificate validation disabled.");
}
catch (e)
{
    // Logger.log(e.toString());
    Logger.log("I was not able to reach " + serverToTest +" with certificate validation disabled. Maybe it's really just down?");
}
}

最佳答案

请登录 Issue Tracker .我已经能够在内部深入研究这一点,这实际上是我们认为的问题。将其登录到问题跟踪器后,您将能够跟踪此问题的进度。

我们可能会通过为 SoapSerivce 添加类似的“validateHttpsCertificates”标志来解决这个问题,就像 UrlFetchApp

关于google-apps-script - Google Apps 脚本中国防部网站的 SSL 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12990851/

相关文章:

google-apps-script - 谷歌应用脚​​本: How to set "Use column A as labels" in chart embedded in spreadsheet?

google-apps-script - 将格式化文本从 Google 表格转换为 Google 文档

Javascript/Google Apps 脚本比较 2 个数组,返回不匹配的项目

javascript - 在运行时使用 GAS 调整 HTML 模态的大小

xml - 使用 XmlService 解析时如何从字典 API 获取子元素

triggers - 使用 Google Apps 脚本编辑时延迟执行

javascript - Google表格中是否有可能存在双向编辑关系?

mysql - Google 表格 JDBC 脚本中的西里尔数据库内容

javascript - Google 脚本 API 路由错误 409

java - Google 电子表格月份减 1