Запишите устранение неполадок «невозможно найти действительный путь сертификации к запрошенной цели».
Запишите устранение неполадок «невозможно найти действительный путь сертификации к запрошенной цели».

01

Предисловие

Недавно, в связи с истечением срока действия https в среде UAT, я позже обновил сертификат и обнаружил, что могу нормально получить к нему доступ через браузер, но при вызове адреса через интерфейс произошла ошибка.

Язык кода:javascript
копировать
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, вы можете выполнить команду операции слияния файлов.

Язык кода:javascript
копировать
cat uat.crt ca_bundle.crt >> uat.crt

После выполнения,Заменить сертификат,Проблема решена. Если нет ca_bundle.crt,Мы также можем пройти Браузер(Примечание: Мы можем получить полную цепочку сертификатов из браузера), загрузить соответствующий промежуточный сертификат и добавить его к нашему пользовательскому сертификату.

Конкретные шаги (в качестве примера возьмем браузер 360°, другие браузеры аналогичны)

01

Нажмите на маленький замок рядом с вашим браузером.

02

Нажмите на информацию о сертификате и выберите детали.

03

Экспортируйте промежуточный сертификат

04

Добавьте содержимое промежуточного сертификата в сертификат пользователя.

Примечание: Если после добавления промежуточного сертификата проблема с сертификатом по-прежнему сохраняется, выполните описанные выше действия, чтобы загрузить корневой сертификат и снова добавить его к сертификату пользователя.

04

Подвести итог

общее решение,То есть добавить корневой сертификат и промежуточный сертификат к сертификату пользователя.,Если это самоподписанный сертификат,Это решение нельзя использовать,Просто попробуйте другие варианты.

Также рекомендую АлиТонги Лингма,Это действительно потрясающе. Попробуем решить вышеописанную проблему

Решения, которые он предоставляет, в основном могут удовлетворить наши требования.

boy illustration
[Спецификация] Результаты и исключения возврата интерфейса SpringBoot обрабатываются единообразно, поэтому инкапсуляция является элегантной.
boy illustration
Интерпретация каталога веб-проекта Flask
boy illustration
Что такое подробное объяснение файла WSDL_wsdl
boy illustration
Как запустить большую модель ИИ локально
boy illustration
Подведение итогов десяти самых популярных веб-фреймворков для Go
boy illustration
5 рекомендуемых проектов CMS с открытым исходным кодом на базе .Net Core
boy illustration
Java использует httpclient для отправки запросов HttpPost (отправка формы, загрузка файлов и передача данных Json)
boy illustration
Руководство по развертыванию Nginx в Linux (Centos)
boy illustration
Интервью с Alibaba по Java: можно ли использовать @Transactional и @Async вместе?
boy illustration
Облачный шлюз Spring реализует примеры балансировки нагрузки и проверки входа в систему.
boy illustration
Используйте Nginx для решения междоменных проблем
boy illustration
Произошла ошибка, когда сервер веб-сайта установил соединение с базой данных. WordPress предложил решение проблемы с установкой соединения с базой данных... [Легко понять]
boy illustration
Новый адрес java-библиотеки_16 топовых Java-проектов с открытым исходным кодом, достойных вашего внимания! Обязательно к просмотру новичкам
boy illustration
Лучшие практики Kubernetes для устранения несоответствий часовых поясов внутри контейнеров
boy illustration
Введение в проект удаления водяных знаков из коротких видео на GitHub Douyin_TikTok_Download_API
boy illustration
Весенние аннотации: подробное объяснение @Service!
boy illustration
Пожалуйста, не используйте foreach для пакетной вставки в MyBatis. Для 5000 фрагментов данных потребовалось 14 минут. .
boy illustration
Как создать проект Node.js с помощью npm?
boy illustration
Mybatis-plus использует typeHandler для преобразования объединенных строк String в списки списков.
boy illustration
Не удалось установить программное обеспечение Mitsubishi. Возможно, возникла проблема с реестром.
boy illustration
Разрешение ошибок проекта SpringBoot 3 mybatis-plus: org.apache.ibatis.binding.BindingException: неверный оператор привязки
boy illustration
Более краткая проверка параметров. Для проверки параметров используйте SpringBoot Validation.
boy illustration
Поиграйтесь с интеграцией Spring Boot (платформа запланированных задач Quartz)
boy illustration
Несколько популярных режимов интерфейса API: RESTful, GraphQL, gRPC, WebSocket, Webhook.
boy illustration
Redis: практика публикации (pub) и подписки (sub)
boy illustration
Подробное объяснение пакета Golang Context
boy illustration
Краткое руководство: создайте свое первое приложение .NET Aspire
boy illustration
Краткое обсуждение метода пакетной вставки MyBatis: обработка 100 000 фрагментов данных занимает всего 2 секунды.
boy illustration
[Инструмент] Используйте nvm для управления переключением версий nodejs, это так здорово!
boy illustration
HTML можно преобразовать в word_html для отображения текстовых документов.