2012-01-23 3 views
2

Я пытаюсь выполнить аутентификацию с помощью сервера через HTTPS. У меня проблемы с рукопожатием. Я думаю, это связано с тем, что когда я перехожу к URL-адресу в своем браузере, появляется всплывающее окно. Если я отменил это, я могу перейти к форме, которая позволит мне снова войти в систему. Безопасность сервера - TAM.Проверка подлинности Java по HTTPS

Его фактически в начале, где у меня проблемы. Когда я пытаюсь запустить этот код:

 HttpResponse response = httpclient.execute(httpget); 

я получаю IOException ошибка о том, что javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated. Пример кода, который я использую, - это документы Apache HTTPClient. Я также пытался использовать встроенные методы проверки подлинности Java, но у меня возникают другие проблемы с рукопожатием, говоря, что сертификату не доверяют.

В любом случае, я довольно застрял в данный момент, что разочаровывает, потому что я думал, что этот тип материала должен быть достаточно базовым.

Итак, может ли кто-нибудь быть таким добрым, чтобы направить меня на пример кода для аутентификации через HTTPS?

Спасибо.

EDIT: Просто, чтобы добавить еще одну ошибку, я получаю при использовании встроенной в Java HTTP AUTH, относящиеся к сертификату:

javax.net.ssl.SSLHandshakeException: com.ibm.jsse2.util.g: 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=XXX Internal Root CA, O=XXX Corporation, C=US is not trusted; internal cause is: 
java.security.cert.CertPathValidatorException: Certificate chaining error 

ответ

0

Проблема здесь Windows. Или, точнее, WinInet API.

Я могу создать обычай TrustManager, который принимает все сертификаты, и он может подключиться отлично. Кроме того, если я пробую свой код без взлома linux, то он отлично работает. Таким образом, любой способ, которым Windows обрабатывает хранилище ключей, создает проблемы.

0

Это кажется вам не хватает сервера SSL сертификаты в Jvm хранилище, вам необходимо импортировать сертификаты с помощью keytool. Вот один из link о том, как это сделать. Вот еще link (даже если это для Gmail, вы можете найти шаги, полезные)

+0

Я перешел на сайт с моим браузером и нашел сертификат. Я загрузил его и импортировал, используя keytool, но он все равно дал мне ту же ошибку. Я получаю «ошибку цепочки сертификатов», используя метод java по умолчанию для http auth, и я получаю «peer not authenticated» с помощью apache java auth. Есть идеи? – eoinzy