Я работаю в Java с HTTPClient Apache и пытаюсь подключиться к 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 с использованием нового хранилища ключей, но он все еще не работает.
Мое первое предположение состояло в том, что, возможно, у меня нет всех сертификатов в цепочке (по-видимому, эти вещи входят в цепочки). Итак, как мне узнать, существуют ли так называемые «промежуточные» центры сертификации? И как мне получить эти сертификаты? Я даже на правильном пути?