Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menyelesaikan Ralat 'sijil yang ditandatangani oleh pihak berkuasa yang tidak diketahui' Apabila Menggunakan HTTP.Client GoLang dalam Bekas Docker?

Bagaimana untuk Menyelesaikan Ralat 'sijil yang ditandatangani oleh pihak berkuasa yang tidak diketahui' Apabila Menggunakan HTTP.Client GoLang dalam Bekas Docker?

Barbara Streisand
Barbara Streisandasal
2024-12-06 12:10:251028semak imbas

How to Resolve

Bekas Docker dengan GoLang HTTP.Client Encounters Certificate Authority Error

Dalam percubaan untuk berkomunikasi dengan Google API, seorang individu membina Docker bekas menggunakan GoLang. Pada mulanya, bekas SCRATCH telah digunakan, mengakibatkan ralat "sijil yang ditandatangani oleh pihak berkuasa yang tidak diketahui." Apabila bertukar kepada ubuntu/alpine, ralat berterusan.

Isu ini timbul kerana ketiadaan sijil yang dipercayai dalam bekas. Untuk membetulkannya, dua pendekatan boleh diguna pakai:

Imej Gores

Sertakan sijil yang dipercayai bersama-sama dengan permohonan:

FROM scratch
ADD ca-certificates.crt /etc/ssl/certs/
ADD main /
CMD ["/main"]

Binaan Berbilang Peringkat

Gunakan sijil yang disediakan oleh pengedaran vendor:

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 menggunakan kaedah ini, kontena akan memiliki sijil yang diperlukan, membolehkan komunikasi lancar dengan API Google.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat 'sijil yang ditandatangani oleh pihak berkuasa yang tidak diketahui' Apabila Menggunakan HTTP.Client GoLang dalam Bekas Docker?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn