Получение всех сертификатов в цепочке; как промежуточный, так и корневой

Я работаю на Java с Apache » s HTTPClient и пытается подключиться к graph.facebook.com. Я получаю ошибку «SSLPeerUnverifiedException: Нет однорангового сертификата», поэтому я предполагаю, что ЦС Facebook не находится в хранилище ключей по умолчанию. Поэтому мне нужно создать собственное хранилище ключей со всеми сертификатами, которым я хочу доверять, да? Итак, я нашел следующую команду для получения сертификата:

echo | openssl s_client -connect graph.facebook.com:443 2>&1 | \
 sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > mycert.pem

Не знаю, что там происходит, но похоже, что она сработала. Я добавил сертификат в хранилище ключей в формате Bouncy Castle. Я создал SSLSocketFactory, используя новое хранилище ключей, но оно по-прежнему не работает.

Моим первым предположением было, что, возможно, у меня нет всех сертификатов в цепочке (очевидно, эти вещи входят в цепочки). Итак, как мне узнать, есть ли так называемые "промежуточные" Участвуют CA? И как мне получить эти сертификаты? Я даже на правильном пути?

10
задан Neil Traft 5 March 2011 в 14:19
поделиться