2016-09-23 15 views
7

मैं एक एडब्ल्यूएस एपीआई लागू कर रहा हूँ, मैंनहीं X509TrustManager कार्यान्वयन उपलब्ध

Exception in thread "main" com.amazonaws.AmazonClientException: Unable to execute HTTP request: java.security.cert.CertificateException: No X509TrustManager implementation available 
     at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:709) 
     at com.amazonaws.http.AmazonHttpClient.doExecute(AmazonHttpClient.java:449) 
     at com.amazonaws.http.AmazonHttpClient.executeWithTimer(AmazonHttpClient.java:411) 
     at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:360) 
     at com.amazonaws.services.kms.AWSKMSClient.doInvoke(AWSKMSClient.java:2723) 
     at com.amazonaws.services.kms.AWSKMSClient.invoke(AWSKMSClient.java:2693) 
     at com.amazonaws.services.kms.AWSKMSClient.generateDataKey(AWSKMSClient.java:1488) 
     at com.infor.aws.KMSTest.createDEK(KMSTest.java:217) 
     at com.infor.aws.KMSTest.main(KMSTest.java:144) 
Caused by: javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No X509TrustManager implementation available 
     at sun.security.ssl.Alerts.getSSLException(Alerts.java:192) 
     at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1949) 
     at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:302) 
     at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:296) 
     at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1509) 
     at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:216) 
     at sun.security.ssl.Handshaker.processLoop(Handshaker.java:979) 
     at sun.security.ssl.Handshaker.process_record(Handshaker.java:914) 
     at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1062) 
     at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375) 
     at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403) 
     at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387) 
     at org.apache.http.conn.ssl.SSLConnectionSocketFactory.createLayeredSocket(SSLConnectionSocketFactory.java:394) 
     at org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:353) 
     at com.amazonaws.http.conn.ssl.SdkTLSSocketFactory.connectSocket(SdkTLSSocketFactory.java:132) 
     at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:141) 
     at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:353) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:498) 
     at com.amazonaws.http.conn.ClientConnectionManagerFactory$Handler.invoke(ClientConnectionManagerFactory.java:76) 
     at com.amazonaws.http.conn.$Proxy2.connect(Unknown Source) 
     at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:380) 
     at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236) 
     at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184) 
     at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184) 
     at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82) 
     at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55) 
     at com.amazonaws.http.apache.client.impl.SdkHttpClient.execute(SdkHttpClient.java:72) 
     at com.amazonaws.http.AmazonHttpClient.executeOneRequest(AmazonHttpClient.java:854) 
     at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:697) 
     ... 8 more 
Caused by: java.security.cert.CertificateException: No X509TrustManager implementation available 
     at sun.security.ssl.DummyX509TrustManager.checkServerTrusted(SSLContextImpl.java:1119) 
     at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1491) 
     ... 35 more 

मैं Stackoverflow पर यहाँ एक से अधिक थ्रेड के माध्यम से चला और सभी आवश्यक truststore, truststoretype प्रणाली गुण जोड़ लिया है निम्न त्रुटि में प्रदर्शन जारी रहे। यह thread मैंने कोशिश की है। लेकिन कुछ भी काम नहीं कर रहा है। क्या कोई इस पर आ गया है? मैं इसे पसंद

नीचे
TrustManagerFactory tmf = TrustManagerFactory 
            .getInstance(TrustManagerFactory.getDefaultAlgorithm()); 

KeyStore ks = KeyStore.getInstance("BCFKS"); 
ks.load(new FileInputStream("<jre-home>\\\\lib\\\\security\\\\cacerts"), "changeit".toCharArray()); 
tmf.init(ks); 

// Get hold of the trust manager 
X509TrustManager x509Tm = null; 
for (TrustManager tm : tmf.getTrustManagers()) { 
    if (tm instanceof X509TrustManager) { 
      x509Tm = (X509TrustManager) tm; 
      break; 
    } 
} 
+0

आप इसे कैसे आमंत्रित कर रहे हैं? उछाल वाले महल के लिए – EJP

+0

बीसीएफकेएस? यदि आप डिफ़ॉल्ट प्रकार के केएस का उपयोग करना चाहते हैं, 'KeyStore ks = KeyStore.getInstance (KeyStore.getDefaultType()); ' – riversun

+0

बाउंसी महल – yogsma

उत्तर

0

यह जब हम विश्वास की दुकान पासवर्ड सेट करने के बाद एक जगह पर एडब्ल्यूएस-ग्राहक प्रारंभ में ले जाया हल किया गया था लागू कर रहा हूँ। मेरे कोड में, मैं बहुत जल्दी एडब्ल्यूएस-क्लाइंट बना रहा था।

1

कई घंटों के लिए डीबगिंग के बाद, यह मेरे मामले में एक दूषित कीस्टोर बन गया। जांचें कि क्या आप keytool कमांड का उपयोग कर कीस्टोर की सामग्री सूचीबद्ध कर सकते हैं।

संबंधित मुद्दे