Если вы хотите сделать это правильно и / или вам нужно иметь дело только с одним сайтом, то вам, в основном, нужно получить сертификат SSL соответствующего веб-сайта и импортировать его в хранилище ключей Java. Это приведет к созданию файла JKS, который вы в свою очередь установите в качестве хранилища доверенных сертификатов SSL перед использованием Jsoup (или java.net.URLConnection
).
Вы можете получить сертификат в магазине вашего веб-браузера. Давайте предположим, что вы используете Firefox.
- Перейдите на указанный сайт с помощью Firefox, который в вашем случае https://web2.uconn.edu/driver/old/timepoints.php?stopid=10
- Слева в адресной строке вы увидите "uconn.edu" синим цветом (это указывает на действительный сертификат SSL)
- Нажмите на него для получения подробной информации, а затем нажмите на кнопку Дополнительная информация .
- В появившемся диалоговом окне безопасности нажмите кнопку Просмотр сертификата .
- В появившейся панели сертификатов перейдите на вкладку Подробно .
- Щелкните самый глубокий элемент иерархии сертификатов, в данном случае это «web2.uconn.edu», и, наконец, нажмите кнопку Export .
Теперь у вас есть web2.uconn.edu.crt
файл.
Затем откройте командную строку и импортируйте ее в хранилище ключей Java с помощью команды keytool
(это часть JRE):
keytool -import -v -file /path/to/web2.uconn.edu.crt -keystore /path/to/web2.uconn.edu.jks -storepass drowssap
-file
должен указывать на местоположение файла .crt
, который вы только что загрузили. -keystore
должен указывать на местоположение сгенерированного файла .jks
(который вы, в свою очередь, хотите установить в качестве хранилища доверенных сертификатов SSL). -storepass
требуется, вы можете просто ввести любой пароль, который вы хотите, если он не менее 6 символов.
Теперь у вас есть web2.uconn.edu.jks
файл. Наконец, вы можете установить его как хранилище доверенных сертификатов SSL перед подключением следующим образом:
System.setProperty("javax.net.ssl.trustStore", "/path/to/web2.uconn.edu.jks");
Document document = Jsoup.connect("https://web2.uconn.edu/driver/old/timepoints.php?stopid=10").get();
// ...
В качестве совершенно другой альтернативы, особенно когда вам нужно иметь дело с несколькими сайтами (т. Е. Вы создаете сканер для всемирной паутины), вы также можете указать Jsoup (в основном, java.net.URLConnection
) слепо доверять всем SSL-сертификатам. , См. Также раздел «Работа с ненадежными или неправильно настроенными HTTPS-сайтами» в самом конце этого ответа: Использование java.net.URLConnection для запуска и обработки HTTP-запросов