Я також стикався з цією проблемою. Я прочитав цю тему, і більшість відповідей для мене інформативні, але надмірно складні. Я не маю досвіду роботи в мережі, тому ця відповідь призначена для таких людей, як я.
У моєму випадку ця помилка сталася, оскільки я не включав проміжні та кореневі сертифікати поруч із сертифікатом, який я використовував у своїй програмі.
Ось що я отримав від постачальника сертифікатів SSL:
- abc.crt
- abc.pem
- abc-bunde.crt
У abc.crt
файлі був лише один сертифікат:
-----BEGIN CERTIFICATE-----
/*certificate content here*/
-----END CERTIFICATE-----
Якби я поставив його в такому форматі, браузер не показав би жодних помилок (Firefox), але я отримав би curl: (60) SSL certificate : unable to get local issuer certificate
помилку, коли я зробив запит на згортання.
Щоб виправити цю помилку, перевірте свій abc-bunde.crt
файл. Ви, швидше за все, побачите щось подібне:
-----BEGIN CERTIFICATE-----
/*additional certificate content here*/
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
/*other certificate content here*/
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
/*different certificate content here*/
-----END CERTIFICATE-----
Це ваші проміжні та кореневі сертифікати. Помилка відбувається через те, що вони відсутні у сертифікаті SSL, який ви постачаєте до своєї програми.
Щоб виправити помилку, комбінуйте вміст обох цих файлів у такому форматі:
-----BEGIN CERTIFICATE-----
/*certificate content here*/
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
/*additional certificate content here*/
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
/*other certificate content here*/
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
/*different certificate content here*/
-----END CERTIFICATE-----
Зауважте, що між сертифікатами немає пробілів в кінці або на початку файлу. Після того, як ви поставите цей комбінований сертифікат у вашу заявку, вашу проблему слід вирішити.