Rumah >pembangunan bahagian belakang >Golang >Mengapa Bekas Docker GoLang Saya Mendapat Ralat 'sijil yang ditandatangani oleh pihak berkuasa yang tidak diketahui'?

Mengapa Bekas Docker GoLang Saya Mendapat Ralat 'sijil yang ditandatangani oleh pihak berkuasa yang tidak diketahui'?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-01 02:43:10859semak imbas

Why Does My GoLang Docker Container Get a

Isu Kontena Docker: Sijil Ralat Ditandatangani oleh Pihak Berkuasa Tidak Diketahui

Menjalankan bekas Docker menggunakan http.Client GoLang boleh mengakibatkan mesej ralat " sijil yang ditandatangani oleh pihak berkuasa yang tidak diketahui." Isu ini telah dihadapi apabila mencipta bekas dari awal atau menggunakan imej Ubuntu/Alpine.

Untuk memahami masalah, adalah penting untuk ambil perhatian bahawa http.Client menggunakan konfigurasi TLS dalam stor sijil sistem. Apabila bekas dibuat dari awal, ia tidak mempunyai sebarang sijil yang dipercayai secara lalai.

Penyelesaian:

Penyelesaian kepada isu ini bergantung pada jenis Docker imej yang anda gunakan:

Calar Imej:

  1. Sertakan sijil yang dipercayai dalam imej anda. Sebagai contoh, anda boleh menambah fail ca-certificates.crt pada direktori /etc/ssl/certs:
FROM scratch
ADD ca-certificates.crt /etc/ssl/certs/
ADD main /
CMD ["/main"]

Imej Berbilang Peringkat:

  1. Tambahkan pakej sijil-ca semasa pembinaan peringkat:
FROM golang:alpine as build
RUN apk --no-cache add ca-certificates
  1. Salin sijil dari peringkat binaan ke imej akhir:
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 sijil yang dipercayai dalam imej Docker , http.Client anda akan dapat mengesahkan sijil pelayan dan berjaya membuat permintaan HTTPS ke API Google.

Atas ialah kandungan terperinci Mengapa Bekas Docker GoLang Saya Mendapat Ralat 'sijil yang ditandatangani oleh pihak berkuasa yang tidak diketahui'?. 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