Mule Salesforce Connector TLS 1.1升级问题

时间:2016-06-27 18:33:49

标签: salesforce mule

我正在开发一个将连接到salesforce帐户的poc。 mule版本是6.3.2,销售力版本是6.3.2。直到2 [![在此输入图像描述] [1]] [1]天后它工作正常。

我开始知道,上周末销售人员将TLS从1.0升级到1.1。当我测试我的流程时得到以下异常:

根异常堆栈跟踪: [UnexpectedErrorFault [ApiFault exceptionCode ='UNSUPPORTED_CLIENT'  exceptionMessage ='此组织中已禁用TLS 1.0。使用https连接到Salesforce时,请使用TLS 1.1或更高版本。 ] ]

当我看到mule文档时,它说salesforce连接器7.1.2解决了这个问题,我在工作室更新了我的连接器,并重新尝试了无效的方案。

有人可以帮我解决这个问题。

此致 维克拉姆

5 个答案:

答案 0 :(得分:0)

我以前必须在应用程序设置中设置以下属性:

https.protocols = TLSv1.1,TLSv1.2

-Dhttps.protocols = TLSv1.1,TLSv1.2在我的wrapper.conf for Mule standalone。

答案 1 :(得分:0)

您可以将配置放在tls-default.conf MULE_ESB/conf/文件夹中 然后把值放在里面,如下所示:

enabledProtocols=TLSv1.1, TLSv1.2
enabledCipherSuites=TLS_KRB5_WITH_3DES_EDE_CBC_MD5, TLS_KRB5_WITH_RC4_128_SHA, SSL_DH_anon_WITH_DES_CBC_SHA

或者,如果您想从anypoint studio进行测试,只需创建tls-default.conf并放在resources文件夹下

我可以添加的另一个信息是尝试将您的网址目的地输入https://www.ssllabs.com/ssltest/,以确保您的端点启用TLSv1.1或者也可以启用chiper套件

答案 2 :(得分:0)

https://forums.mulesoft.com/questions/41012/getting-error-when-hitting-a-rest-api-via-https.html#answer-43960

中回答了类似问题

以下是我发布的答案。

  

我在我的系统中解决了它。

     

当它在Anypoint中附加的运行时中不起作用时   工作室然后按照以下步骤操作。

Navigate to the Anypoint studio installation directory

Search for "tls-default.conf" in the folder. This will show you all the files for all the Runtimes that you have installed.

there will be a property "enabledProtocols" make sure that it contains the TLSv1 in it as below

enabledProtocols=TLSv1,TLSv1.1,TLSv1.2
     

以上内容应适用于云中心(大部分时间已经存在   启用)或内部部署系统。

答案 3 :(得分:0)

Salesforce现在是disabling TLS 1.0, forcing TLS 1.1 or higher。 对于Java版本> = 1.8,这不是问题,但对于早期版本,您需要设置SSLContext。这个解决方案对我有用:

if (Double.parseDouble(Runtime.class.getPackage().getSpecificationVersion()) <= 1.7) // Java versions > 1.7 are compatible with TLS 1.1 or higher by default - we want TLSv1.2 for our needs
    setSSLContext(SSLContext.getInstance(SSL_VERSION_TO_USE_FOR_SALESFORCE_LOGIN));

private static void setSSLContext(SSLContext context) {
    SSLContext.setDefault(context);
    try {
        /*  Either of the first two parameters may be null in which case the installed security providers will be searched for the highest priority implementation of the appropriate factory.
             Likewise, the secure random parameter may be null in which case the default implementation will be used. */
        context.init(null, null, null);
    } catch (KeyManagementException e) {
        // handle exception
    }
}

答案 4 :(得分:0)

  • 导航至“设置”
  • 在“快速查找”栏中,键入“关键更新”
  • 选择关键更新
  • 在“更新名称”列下的“HTTPS连接”中找到“需要TLS 1.1或更高版本”
  • 点击停用。

enter image description here