Итак, у меня есть простой GO сервер, работающий на порту 8080
с использованием самозаверяющего сертификата, который я создал с помощью следующей команды:
openssl req -new -newkey rsa:4096 -x509 -sha256 -days 365 -nodes -out local.crt -keyout local.key
При его создании я установил в поля следующие значения: 
Как видите, я пропустил все, кроме fully qualified host name
, которое я установил go-auth
Я запустил go сервер успешно использует файлы local.key
и local.crt
.
Я попытался cURLing , например:
➜ certs git:(master) ✗ curl --proxy-cacert local.crt https://go-auth/
curl: (6) Could not resolve host: go-auth
➜ certs git:(master) ✗ curl --proxy-cacert local.crt https://localhost:8080/
curl: (60) SSL certificate problem: self signed certificate
More details here: https://curl.haxx.se/docs/sslcerts.html
curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.
После этого я попытался получить сертификаты от работающий сервер и сохранив его в файл cacert.pem и повторив попытку:
➜ certs git:(master) ✗ echo quit | openssl s_client -showcerts -servername go-auth -connect localhost:8080 > cacert.pem
depth=0 CN = go-auth
verify error:num=18:self signed certificate
verify return:1
depth=0 CN = go-auth
verify return:1
DONE
➜ certs git:(master) ✗ curl --cacert cacert.pem https://go-auth/
curl: (6) Could not resolve host: go-auth
➜ certs git:(master) ✗ curl --proxy-cacert cacert.pem https://go-auth/
curl: (6) Could not resolve host: go-auth
На данный момент я не знаю, я пытался найти ответ на этот вопрос : Использовать самоподписанный сертификат с cURL? , но не получил желаемого результата.