# #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».:
поэтому, нажав на 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, но может быть применено к любому существующему клиенту