2014-10-15 3 views
0

У меня есть небольшая проблема с разработкой запроса https с ManagedBean. Проблема заключается в том, что я получаю следующее исключение:HTTPS-запрос через Glassfish

javax.net.ssl.SSLPeerUnverifiedException: Host name 'bitpay.com' does not match the certificate subject provided by the peer (CN=bitpay.com, O="BitPay, Inc.", L=Atlanta, ST=Georgia, C=US, SERIALNUMBER=5163966, OID.2.5.4.15=Private Organization, OID.1.3.6.1.4.1.311.60.2.1.2=Delaware, OID.1.3.6.1.4.1.311.60.2.1.3=US) 

Но если я пытаюсь код в чистом Java клиент работает прекрасно. Кто-нибудь знает, где моя неудача?

Я использовал код repository.

свой код следующим образом:

import model.BitPay; 
import model.Invoice; 
import javax.inject.Named; 
import javax.enterprise.context.Dependent; 


@Named(value = "bitPayMBean") 
@Dependent 
public class BitPayMBean { 

    private static final String API_KEY = ""; 

    @Named(value = "returnUrl") 
    private String returnUrl = "URL"; 

    public void setReturnUrl(String returnUrl) { 
     this.returnUrl = returnUrl; 
    } 

    public String getReturnUrl() { 
     return returnUrl; 
    } 

    public BitPayMBean() { 
     System.setProperty("javax.net.ssl.trustStore", "cacerts.jks"); 
     System.setProperty("javax.net.ssl.trustStorePassword", "changeit"); 

    } 

    public void transaction(double value) { 
     BitPay bitpay = new BitPay(API_KEY, "USD"); 
     Invoice invoice = bitpay.createInvoice(value); 
     setReturnUrl(invoice.getUrl()); 
    } 

} 

Приветствия и спасибо за посоветуйте

+0

Неверное хранилище ключей. GlassFish использует свои собственные хранилища ключей, расположенные в $ GFHOME/domains/yourdomain/config. Взгляните на раздел SSL, Network config-> Protocols в GF Admin. – vzamanillo

+0

Сначала спасибо за ваш ответ @vzamanillo. Ваша точка была этой строкой кода 'System.setProperty (« javax.net.ssl.trustStore »,« cacerts.jks »);' right? Этот файл ссылается на мой файл сертификата в $ GFHOME/domains/yourdomain/config. Я также посмотрел на консоль администратора и настроен сертификат «s1as». И этот сертификат является действительным сертификатом в этом хранилище ключей. Какие-нибудь дополнительные идеи? – ZeusNet

ответ

0

Так что я решил мою проблему. Проблема заключалась в том, что в моем файле сертификатов JDK версии 8 не все интеридированные данные, где в моем файле cert версии JDK версии 6. Итак, я интегрировал отсутствующие сертификаты jdk6 в файле cert jdk8. Это решило мою проблему

Смежные вопросы