Bagaimana untuk Membetulkan Ralat \'x509: Sijil Ditandatangani oleh Pihak Berkuasa Tidak Diketahui\' dalam Docker Multi-Stage Go Image Builds?

Mary-Kate Olsen
Lepaskan: 2024-11-04 10:57:30
asal
928 orang telah melayarinya

How to Fix

Menyelesaikan masalah "x509: Certificate Signed by Unknown Authority" Ralat dalam Docker Multi-Stage Go Image Build

Apabila cuba membina multi- Imej Docker peringkat untuk aplikasi Go dalam rangkaian peribadi, anda mungkin menghadapi perkara berikut ralat:

x509: certificate signed by unknown authority
Salin selepas log masuk

Ralat ini timbul kerana kesukaran dengan pengesahan sijil semasa memuat turun kebergantungan melalui muat turun mod go get atau go. Semasa menetapkan pembolehubah persekitaran GIT_SSL_NO_VERIFY boleh memintas isu ini untuk pembolehubah persekitaran Ejen, ia tidak berfungsi apabila menggunakan muat turun mod go get atau go.

Penyelesaian

Untuk menyelesaikan masalah ini mengeluarkan dan membolehkan pengesahan sijil selamat, anda boleh mengimport sijil yang diperlukan ke dalam stor CA sistem anda menggunakan openssl. Contohnya:

FROM golang:latest as builder

RUN apt-get update && apt-get install -y ca-certificates openssl

ARG cert_location=/usr/local/share/ca-certificates

# Get certificate from "github.com"
RUN openssl s_client -showcerts -connect github.com:443 </dev/null 2>/dev/null|openssl x509 -outform PEM > ${cert_location}/github.crt
# Get certificate from "proxy.golang.org"
RUN openssl s_client -showcerts -connect proxy.golang.org:443 </dev/null 2>/dev/null|openssl x509 -outform PEM >  ${cert_location}/proxy.golang.crt
# Update certificates
RUN update-ca-certificates

# Proceed with your build process...
Salin selepas log masuk

Dengan mengimport sijil ke dalam gedung CA, pengesahan sijil selamat didayakan untuk mendapatkan semula pergantungan git.

Contoh

Fail Docker berikut menunjukkan penyelesaiannya:

FROM golang:latest as builder

RUN apt-get update && apt-get install -y ca-certificates openssl

ARG cert_location=/usr/local/share/ca-certificates

# Get certificate from "github.com"
RUN openssl s_client -showcerts -connect github.com:443 </dev/null 2>/dev/null|openssl x509 -outform PEM > ${cert_location}/github.crt
# Get certificate from "proxy.golang.org"
RUN openssl s_client -showcerts -connect proxy.golang.org:443 </dev/null 2>/dev/null|openssl x509 -outform PEM >  ${cert_location}/proxy.golang.crt
# Update certificates
RUN update-ca-certificates

WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN  GO111MODULE="on" CGO_ENABLED=0 GOOS=linux go build -o main ${MAIN_PATH}

FROM alpine:latest
LABEL maintainer="Kozmo"
RUN apk add --no-cache bash
WORKDIR /app
COPY --from=builder /app/main .
EXPOSE 8080
CMD ["/main"]
Salin selepas log masuk

Fail Docker ini akan mengimport sijil yang diperlukan dan kemas kini stor CA, membenarkan pengesahan sijil selamat semasa mendapatkan semula pergantungan untuk binaan aplikasi Go anda dalam rangkaian peribadi.

Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat \'x509: Sijil Ditandatangani oleh Pihak Berkuasa Tidak Diketahui\' dalam Docker Multi-Stage Go Image Builds?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!