Menyelesaikan "sijil yang ditandatangani oleh pihak berkuasa yang tidak diketahui" Ralat dalam Docker Container untuk GoLang HTTP Client
Apabila menjalankan bekas Docker untuk mengakses API Google menggunakan http.Client GoLang, anda mungkin menghadapi ralat "sijil yang ditandatangani oleh pihak berkuasa yang tidak diketahui." Isu ini timbul apabila bekas tidak mempunyai sijil dipercayai yang diperlukan untuk mengesahkan sijil pelayan API.
Bekas Gores
Dengan bekas SCRATCH, adalah penting untuk memasukkan sijil yang dipercayai dalam bekas di sebelah aplikasi anda. Untuk mencapai matlamat ini, tambahkan fail ca-certificates.crt terus ke bekas:
FROM scratch ADD ca-certificates.crt /etc/ssl/certs/ ADD main / CMD ["/main"]
Binaan Berbilang Peringkat
Jika menggunakan binaan berbilang peringkat, anda boleh memanfaatkan sijil yang dibungkus oleh vendor pengedaran dengan mengubah suai Dockerfile:
FROM golang:alpine as build RUN apk --no-cache add ca-certificates WORKDIR /go/src/app COPY . . RUN CGO_ENABLED=0 go-wrapper install -ldflags '-extldflags "-static"' FROM scratch COPY --from=build /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ COPY --from=build /go/bin/app /app ENTRYPOINT ["/app"]
Dengan memasukkan ini pengubahsuaian, anda menyediakan bekas dengan sijil yang diperlukan untuk mewujudkan sambungan selamat dan menghapuskan ralat "sijil yang ditandatangani oleh pihak berkuasa yang tidak diketahui", yang membolehkan interaksi klien HTTP GoLang yang berjaya dengan API Google.
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat 'sijil yang ditandatangani oleh pihak berkuasa yang tidak diketahui' dalam Bekas Docker GoLang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!