Ho riscontrato anche questo problema. Ho letto questa discussione e la maggior parte delle risposte sono informative ma per me eccessivamente complesse. Non ho esperienza in argomenti di networking, quindi questa risposta è per persone come me.
Nel mio caso, questo errore si è verificato perché non includevo i certificati intermedi e root accanto al certificato che stavo usando nella mia applicazione.
Ecco cosa ho ottenuto dal fornitore del certificato SSL:
- abc.crt
- abc.pem
- abc-bunde.crt
Nel abc.crt
file c'era un solo certificato:
-----BEGIN CERTIFICATE-----
/*certificate content here*/
-----END CERTIFICATE-----
Se lo fornissi in questo formato, il browser non mostrerebbe alcun errore (Firefox) ma otterrei curl: (60) SSL certificate : unable to get local issuer certificate
errore quando ho fatto la richiesta di arricciatura.
Per correggere questo errore, controlla il tuo abc-bunde.crt
file. Molto probabilmente vedrai qualcosa del genere:
-----BEGIN CERTIFICATE-----
/*additional certificate content here*/
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
/*other certificate content here*/
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
/*different certificate content here*/
-----END CERTIFICATE-----
Questi sono i certificati intermedi e root. Si è verificato un errore perché mancano nel certificato SSL che stai fornendo alla tua applicazione.
Per correggere l'errore, combina il contenuto di entrambi questi file in questo formato:
-----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-----
Si noti che non ci sono spazi tra i certificati, alla fine o all'inizio del file. Dopo aver fornito questo certificato combinato all'applicazione, il problema dovrebbe essere risolto.