01
Предисловие
Недавно, в связи с истечением срока действия https в среде UAT, я позже обновил сертификат и обнаружил, что могу нормально получить к нему доступ через браузер, но при вызове адреса через интерфейс произошла ошибка.
unable to find valid certification path to requested target
Большинство Java-решений в Интернете можно разделить на следующие два типа:
1
Добавьте сертификат открытого ключа доменного имени в хранилище сертификатов jdk.
Примечание: Это решение относительно громоздкое. Кроме того, наш интерфейс предоставляется не только для языков на основе Java, но и для других языков, не основанных на Java. Во-вторых, потому что наш сертификат не является самоподписанным, а теоретически приобретается за реальные деньги. не должно быть. Есть проблема. Так что этот план с самого начала не входил в число моих приоритетов.
2
Игнорировать проверку подлинности сертификата и доверять всем ссылкам на запросы
На самом деле это решение не рекомендуется, поскольку существует потенциальная угроза безопасности, но оно действительно может решить проблему. Чтобы узнать о конкретных планах реализации двух вышеупомянутых решений, заинтересованные друзья могут проверить следующие ссылки.
https://yiyige.blog.csdn.net/article/details/116049218
02
Идеи по устранению неполадок
Мы позвонили через почтальона и обнаружили, что интерфейс не удалось настроить. Затем почтальон предложил нам отключить проверку SSL. После ее отключения мы действительно можем получить к нему доступ. Позже, когда мы получили доступ через Curl, появилось следующее приглашение:
Красный кружок означает, что эмитент сертификата не может быть идентифицирован, что обычно означает, что с нашим сертификатом действительно что-то не так.
Затем мы сделали что-то вроде этого. Мы сравнили сертификат https среды uat с сертификатом https, к которому можно получить обычный доступ.
Наш формат сертификата UAT следующий:
Сертификат для обычного доступа выглядит следующим образом:
Каждый может сразу увидеть проблему. В нашем сертификате UAT отсутствует часть содержимого. Фактически, добавление этой части содержимого образует цепочку сертификатов. Соответствующее научно-популярное введение в цепочку сертификатов вы можете просмотреть в следующей статье.
https://www.anxinssl.com/9801.html
03
решение
Потому что эксплуатация и обслуживание предоставили нам сертификаты, которые раньше образовывали полную цепочку сертификатов, но на этот раз я, вероятно, был слишком занят и забыл предоставить только сертификат доменного имени пользователя. Одного этого сертификата недостаточно. Позже мы пошли в отдел эксплуатации и технического обслуживания и запросили полную информацию о сертификате.
В файле ca-bundle.crt хранятся перекрестные файлы корневых сертификатов основных сертификатов, выдающих сертификаты. Нам нужно добавить содержимое ca-bundle.crt к содержимому сертификата пользователя (т. е. скриншот uat.crt). Пример
Если это среда Linux, вы можете выполнить команду операции слияния файлов.
cat uat.crt ca_bundle.crt >> uat.crt
После выполнения,Заменить сертификат,Проблема решена. Если нет ca_bundle.crt,Мы также можем пройти Браузер(Примечание: Мы можем получить полную цепочку сертификатов из браузера), загрузить соответствующий промежуточный сертификат и добавить его к нашему пользовательскому сертификату.
Конкретные шаги (в качестве примера возьмем браузер 360°, другие браузеры аналогичны)
01
Нажмите на маленький замок рядом с вашим браузером.
02
Нажмите на информацию о сертификате и выберите детали.
03
Экспортируйте промежуточный сертификат
04
Добавьте содержимое промежуточного сертификата в сертификат пользователя.
Примечание: Если после добавления промежуточного сертификата проблема с сертификатом по-прежнему сохраняется, выполните описанные выше действия, чтобы загрузить корневой сертификат и снова добавить его к сертификату пользователя.
04
Подвести итог
общее решение,То есть добавить корневой сертификат и промежуточный сертификат к сертификату пользователя.,Если это самоподписанный сертификат,Это решение нельзя использовать,Просто попробуйте другие варианты.
Также рекомендую АлиТонги Лингма,Это действительно потрясающе. Попробуем решить вышеописанную проблему
Решения, которые он предоставляет, в основном могут удовлетворить наши требования.