Изображение Docker go — не удается получить — x509: сертификат, подписанный неизвестным органом

# #docker #go #security #ssl-certificate #client-certificates

Вопрос:

внутри изображения docker golang я пытаюсь go install загрузить пакет и терплю неудачу из-за этой ошибки:

 go install google.golang.org/protobuf/cmd/protoc-gen-go@1.27.0: google.golang.org/protobuf/cmd/protoc-gen-go@1.27.0: invalid version: Get "https://proxy.golang.org/google.golang.org/protobuf/cmd/protoc-gen-go/@v/1.27.0.info": x509: certificate signed by unknown authority
 

я безуспешно пытался установить сертификаты ЦС

есть идеи, в чем может быть проблема ?

Ответ №1:

Итак, проблема заключалась в моем клиенте безопасности: Cisco AnyConnect «Зонт».

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

для того, чтобы клиент in-docker go доверял трафику, повторно подписанному Cisco Umbrella, в файл docker необходимо было добавить сертификат «Cisco Umbrella Root CA».:

Цепочка сертификатов Cisco Umbrella

поэтому, нажав на URI .cer, мы можем увидеть этот сертификат.

теперь внутри моего контейнера я мог:

 $ wget http://www.cisco.com/security/pki/certs/ciscoumbrellaroot.cer
 

затем преобразуйте его из .cer в .crt файл:

 $ openssl x509 -inform DER -in ciscoumbrellaroot.cer -out ciscoumbrellaroot.crt
 

затем скопируйте его в папку с сертификатом:

 $ cp ciscoumbrellaroot.crt /usr/local/share/ca-certificates/ciscoumbrellaroot.crt
 

и, наконец, обновите сертификаты:

 $ update-ca-certificates
 

который выводит это:

 Updating certificates in /etc/ssl/certs...
1 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...
done.
 

сделано! теперь мы можем пойти за любой посылкой:

 $ go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.27.1
go: downloading google.golang.org/protobuf v1.27.1
 

это было написано о клиенте cisco security, но может быть применено к любому существующему клиенту