首页 文章

facebook webhook验证失败

提问于
浏览
1

试图做一个facebook消息机器人测试 . 成功设置工作https://www.mydoamin.com . (从namecheap的comodo,DV(域验证)购买SSL,这是最基本的SSL产品 . 据说DV / SSL足以用于facebook app . ) . 这是一个真正的公共网站,通过https正常工作 . 测试 .

点击webhook设置页面上的“验证并保存”按钮后,从Facebook Webhook验证中获取错误信息:“无法验证URL . 回调验证失败,出现以下错误:curl_errno = 35; curl_error =错误:14082174: SSL例程:ssl3_check_cert_and_algorithm:dh键太小; HTTP状态代码= 200; HTTP消息= Build 连接 . “(但在我的服务器端,我没有看到任何日志信息,即看起来facebook平台没有真正与我的应用服务器交互在它结束验证之前falied .... ???)

我用于处理webhook回调测试的java服务器代码如下:

public void doGet(HttpServletRequest request,HttpServletResponse response){

log.info("MyIS FB Webhook callback starts...");

    HttpSession session = request.getSession();
    String selectedScreen = request.getServletPath();
    String VALIDATION_TOKEN = "WebhookToken";

    try {
      if(selectedScreen.equals("/webhook")){
        log.info("/webhook starts....");
        if (request.getParameter("hub.mode").equals("subscribe") &&
         request.getParameter("hub.verify_token").equals(VALIDATION_TOKEN) {
           response.setStatus(HttpServletResponse.SC_OK);
           PrintWriter out = response.getWriter();
           out.write(request.getParameter("hub.challenge"));
           out.flush();
           out.close();  
          } else {
             log.info("/webhook failed....");
             response.setStatus(403);          
          }  
     }
   } catch(Exception e){
    log.info(".....");
   }
   log.info(".....");

}

谁能告诉我出了什么问题?我错过了什么?感谢您的任何帮助!最好的祝福

2 回答

  • 0

    curl_error =错误:14082174:SSL例程:ssl3_check_cert_and_algorithm:dh键太小;

    您是否为SSL证书生成了2048位RSA密钥?

    这看起来像是来自证书提供者的相关知识库文章:

    https://support.comodo.com/index.php?/Default/Knowledgebase/Article/View/689/17/your-rsa-key-is-too-small-or-this-csr-uses-an-unsupported-key-size

  • 1

    最后,经过一周的努力解决问题,找到解决这个问题的方法,即facebook message / webhook验证错误/抱怨:...... dh键太小.....

    • 根本原因:我的Web应用程序服务器启用了sslv3,以及一些周密码套件 .

    • 解决方案:要解决此问题,需要禁用sslv3,启用TLSv1及更高版本,指定Web应用程序服务器使用的强密码套件 .

    • 我是怎么做到的:a)将我的linux服务器从centOS5.6升级到centOS6.8 b)在我的web应用服务器的配置文件server.xml上将jdk从1.6升级到1.7 c),指定强密码套件为used,sth like:sslProtocol =“TLSv1”SSLHonorCipherOrder =“On”ciphers =“TLS_RSA_WITH_3DES_EDE_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256”

    • 结果:facebook / message / webhook verify-safe显示:“green-complete” - :)(代码是直的,正确的,没有任何错误 . 它是服务器ssl env . 已经固定 . )

相关问题