intra-mart Accel Platform Salesforce 連携セットアップガイド 初版 2016-08-01

9.2. 例外ログの内容について

9.2.1. スタックトレースに「status=HTTP/1.1 400 Bad Request UNSUPPORTED_CLIENT:この組織では TLS 1.0 が無効になりました。HTTPS を使用して Salesforce に接続するには、TLS 1.1 以降を使用してください。 」が出力されます。

9.2.1.1. 現象

例外ログのスタックトレースに以下のようなメッセージ「status=HTTP/1.1 400 Bad Request UNSUPPORTED_CLIENT:この組織では TLS 1.0 が無効になりました。HTTPS を使用して Salesforce に接続するには、TLS 1.1 以降を使用してください。 」が出力されます。
Caused by: jp.co.intra_mart.system.salesforce.exception.SalesforceElementUtilityException: [E.IWP.SALESFORCE.LOGIC.00015] 200番台以外のステータスコードが応答されました。(status=HTTP/1.1 400 Bad Request UNSUPPORTED_CLIENT:この組織では TLS 1.0 が無効になりました。HTTPS を使用して Salesforce に接続するには、TLS 1.1 以降を使用してください。 )
   at jp.co.intra_mart.system.salesforce.element.SalesforceElementUtility.processResponse(SalesforceElementUtility.java:284) ~[im_salesforce-8.0.0-main.jar:na]
   at jp.co.intra_mart.system.salesforce.client.processor.impl.SOQLExecutor.executeRequest(SOQLExecutor.java:118) ~[im_salesforce-8.0.0-main.jar:na]
   at jp.co.intra_mart.system.salesforce.client.processor.impl.SOQLExecutor.execute(SOQLExecutor.java:82) ~[im_salesforce-8.0.0-main.jar:na]
   at jp.co.intra_mart.system.salesforce.client.processor.impl.SOQLExecutor.execute(SOQLExecutor.java:63) ~[im_salesforce-8.0.0-main.jar:na]
   at jp.co.intra_mart.system.salesforce.streaming.impl.StandardStreamingRestService.getTopicNames(StandardStreamingRestService.java:60) ~[im_salesforce_streaming-8.0.0-main.jar:na]
   ... 97 common frames omitted

9.2.1.2. 原因

Salesforce への接続に TLS 1.0 を使用している為です。
Salesforce への接続には、TLS 1.1 以降を使用する必要があります。
詳細は、Salesforce の以下のドキュメントを参照してください。

9.2.1.3. 対応方法

Salesforce への接続には、TLS 1.1 以降を使用する必要があります。
ご利用中の Web Application Server 毎に以下の内容を確認してください。
  1. Resin 、または、Oracle WebLogic Server 12c R2(12.2.1) の場合
    JDK 8 (Oracle Java Platform, Standard Edition 8 Development Kit )の場合、TLS 1.2 をデフォルトで使用します。
    その為、Java システムプロパティに以下のプロパティが指定されている可能性があります。
    プロパティ
    https.protocols
    jdk.tls.client.protocols
    TLSv1
    TLS 1.1 以降(TLSv1.1、または、TLSv1.2)を使用するように対応してください。
  2. WebSphere Application Server 9.0.5 の場合
    IBM JDK 7 の場合、TLS 1.0 をデフォルトで使用します。
    Java システムプロパティ「https.protocols」にTLS 1.1 以降を指定する必要があります。
    対応方法の詳細は、「Java VM引数に -Dhttps.protocols=TLSv1.2 を追加する」を参照してください。

9.2.2. スタックトレースに「com.ibm.jsse2.util.j: PKIX path building failed」、および、「The certificate issued by CN=VeriSign Class 3 Public Primary Certification Authority - G5, OU=”(c) 2006 VeriSign, Inc. - For authorized use only”, OU=VeriSign Trust Network, O=”VeriSign, Inc.”, C=US is not trusted」が出力されます。

9.2.2.1. 現象

例外ログのスタックトレースに以下のようなメッセージが出力されます。
Caused by: javax.net.ssl.SSLHandshakeException: com.ibm.jsse2.util.j: PKIX path building failed: java.security.cert.CertPathBuilderException: PKIXCertPathBuilderImpl could not build a valid CertPath.; internal cause is:
    java.security.cert.CertPathValidatorException: The certificate issued by CN=VeriSign Class 3 Public Primary Certification Authority - G5, OU="(c) 2006 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US is not trusted; internal cause is:
    java.security.cert.CertPathValidatorException: Certificate chaining error
    at com.ibm.jsse2.j.a(j.java:6) ~[na:7.0 build_20141202]
    at com.ibm.jsse2.aq.a(aq.java:705) ~[na:7.0 build_20141202]
    at com.ibm.jsse2.A.a(A.java:337) ~[na:7.0 build_20141202]
    at com.ibm.jsse2.A.a(A.java:401) ~[na:7.0 build_20141202]
    at com.ibm.jsse2.B.a(B.java:861) ~[na:7.0 build_20141202]
    at com.ibm.jsse2.B.a(B.java:570) ~[na:7.0 build_20141202]
    at com.ibm.jsse2.A.t(A.java:225) ~[na:7.0 build_20141202]
    at com.ibm.jsse2.A.a(A.java:452) ~[na:7.0 build_20141202]
    at com.ibm.jsse2.aq.a(aq.java:30) ~[na:7.0 build_20141202]
    at com.ibm.jsse2.aq.h(aq.java:790) ~[na:7.0 build_20141202]
    at com.ibm.jsse2.aq.a(aq.java:371) ~[na:7.0 build_20141202]
    at com.ibm.jsse2.h.write(h.java:20) ~[na:7.0 build_20141202]
    at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:94) ~[na:1.7.0]
    at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:152) ~[na:1.7.0]
    at org.apache.commons.httpclient.methods.StringRequestEntity.writeRequest(StringRequestEntity.java:146) ~[commons-httpclient-3.1.jar:na]
    at org.apache.commons.httpclient.methods.EntityEnclosingMethod.writeRequestBody(EntityEnclosingMethod.java:499) ~[commons-httpclient-3.1.jar:na]
    at org.apache.commons.httpclient.HttpMethodBase.writeRequest(HttpMethodBase.java:2114) ~[commons-httpclient-3.1.jar:na]
    at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1096) ~[commons-httpclient-3.1.jar:na]
    at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:398) ~[commons-httpclient-3.1.jar:na]
    at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171) ~[commons-httpclient-3.1.jar:na]
    at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397) ~[commons-httpclient-3.1.jar:na]
    at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323) ~[commons-httpclient-3.1.jar:na]
    at jp.co.intra_mart.system.oauth.client.http.impl.ApacheHttpClient31Delegate.execute(ApacheHttpClient31Delegate.java:106) ~[im_oauth_client-8.0.3-main.jar:na]
    ... 101 common frames omitted
Caused by: com.ibm.jsse2.util.j: PKIX path building failed: java.security.cert.CertPathBuilderException: PKIXCertPathBuilderImpl could not build a valid CertPath.; internal cause is:
    java.security.cert.CertPathValidatorException: The certificate issued by CN=VeriSign Class 3 Public Primary Certification Authority - G5, OU="(c) 2006 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US is not trusted; internal cause is:
    java.security.cert.CertPathValidatorException: Certificate chaining error
    at com.ibm.jsse2.util.h.a(h.java:69) ~[na:7.0 build_20141202]
    at com.ibm.jsse2.util.h.b(h.java:50) ~[na:7.0 build_20141202]
    at com.ibm.jsse2.util.g.a(g.java:14) ~[na:7.0 build_20141202]
    at com.ibm.jsse2.ay.a(ay.java:133) ~[na:7.0 build_20141202]
    at com.ibm.jsse2.ay.a(ay.java:191) ~[na:7.0 build_20141202]
    at com.ibm.jsse2.ay.checkServerTrusted(ay.java:43) ~[na:7.0 build_20141202]
    at com.ibm.ws.ssl.core.WSX509TrustManager.checkServerTrusted(WSX509TrustManager.java:372) ~[com.ibm.ws.runtime.jar:na]
    at com.ibm.jsse2.aw.checkServerTrusted(aw.java:45) ~[na:7.0 build_20141202]
    at com.ibm.jsse2.B.a(B.java:725) ~[na:7.0 build_20141202]
    ... 119 common frames omitted
Caused by: java.security.cert.CertPathBuilderException: PKIXCertPathBuilderImpl could not build a valid CertPath.
    at com.ibm.security.cert.PKIXCertPathBuilderImpl.engineBuild(PKIXCertPathBuilderImpl.java:410) ~[na:na]
    at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:256) ~[na:na]
    at com.ibm.jsse2.util.h.a(h.java:27) ~[na:7.0 build_20141202]
    ... 127 common frames omitted
Caused by: java.security.cert.CertPathValidatorException: The certificate issued by CN=VeriSign Class 3 Public Primary Certification Authority - G5, OU="(c) 2006 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US is not trusted
    at com.ibm.security.cert.BasicChecker.<init>(BasicChecker.java:111) ~[na:na]
    at com.ibm.security.cert.PKIXCertPathValidatorImpl.engineValidate(PKIXCertPathValidatorImpl.java:176) ~[na:na]
    at com.ibm.security.cert.PKIXCertPathBuilderImpl.myValidator(PKIXCertPathBuilderImpl.java:737) ~[na:na]
    at com.ibm.security.cert.PKIXCertPathBuilderImpl.buildCertPath(PKIXCertPathBuilderImpl.java:649) ~[na:na]
    at com.ibm.security.cert.PKIXCertPathBuilderImpl.buildCertPath(PKIXCertPathBuilderImpl.java:595) ~[na:na]
    at com.ibm.security.cert.PKIXCertPathBuilderImpl.engineBuild(PKIXCertPathBuilderImpl.java:356) ~[na:na]
    ... 129 common frames omitted
Caused by: java.security.cert.CertPathValidatorException: Certificate chaining error
    at com.ibm.security.cert.CertPathUtil.findIssuer(CertPathUtil.java:297) ~[na:na]
    at com.ibm.security.cert.BasicChecker.<init>(BasicChecker.java:108) ~[na:na]
    ... 134 common frames omitted

9.2.2.2. 原因

Web Application Server に WebSphere Application Server を利用している場合、SSL証明書の認証問題が発生します。
WebSphere Application Server のトラストストアに受信した証明書が登録されていない可能性があります。

9.2.2.3. 対応方法

WebSphere Application Server のトラストストアに証明書を追加する必要があります。
対応方法の詳細は、「VeriSign Class 3 Public PCA - Generation 5 (G5) を追加する」を参照してください。