Отсутствующее звено
Ошибка «unable to get local issuer certificate» почти всегда про одно: сервер не отдал промежуточный сертификат, и клиенту нечем проверить подпись.
Почему браузеры молчат
Браузер умеет достроить цепочку сам. Он кэширует промежуточные сертификаты и может скачать недостающий по ссылке AIA прямо из листового. Строгие клиенты так не делают и хотят получить цепочку целиком от сервера.
Отсюда знакомая картина: у вас в браузере всё зелёное, а бот, платёжный шлюз или мобильное приложение отказываются работать.
Как убедиться
openssl s_client -connect example.com:443 -servername example.com -showcerts # строгая проверка openssl s_client -connect example.com:443 -servername example.com -verify_return_error
Один сертификат в выводе означает, что промежуточного нет. Если их два и больше, но ошибка осталась, смотрим порядок и сроки: возможно, отдано не то звено или цепочка обрывается раньше корня.
Что делать
Отдавать полный файл. В nginx это ssl_certificate с fullchain.pem. Если настроен стейплинг OCSP, промежуточные нужны ещё раз, в ssl_trusted_certificate. Это другой файл, и подменять его листовым сертификатом нельзя.
Проверять лучше снаружи. Изнутри машины видно локальные файлы, а не то, что реально получает клиент.