代码改变世界

aspnet3.1 添加自定义签名证书 https

2022-04-17 17:09  qgbo  阅读(80)  评论(0编辑  收藏  举报

1. aspnet3.1 项目,自带的dockerfile 生成的容器,最后不能访问自定义签名的https

原因是自签名的证书,没有再docker 中。

aspnet3.1 项目自带dockerfile 生成的容器,添加了证书也不行。

consul 的镜像可以!

只需要 下载那个 pem 文件,然后 cat  xx.pem >> ssl/ca-certification.crt 

consul 内部就可以 curl  https://xxxxx.

2. consul 的镜像,是 FROM alpine:3.13 . 而 

 aspnet3.1的dockerfile 有很多

 应该看 Debian10 的。 基础镜像是  amd64/debian:buster-slim

 

追踪下去,会到这儿:

From amd64/debian:bullseye-slim

debian 是 Form scratch 的

apline 也是 Form scratch 的

 下面是比较这2个基础源 的不同。

 

写 如下dockerfile:

FROM alpine:3.13

# This is the release of Consul to pull in.
ARG CONSUL_VERSION=1.11.5


######################

进去镜像,是和上面下的包得内容一样的。

consul  执行了  apk add --no-cache ca-certificates。这个包在这里

debian 执行的是 apt-get ca-certificates源在这

3. 后来发现 nginx的镜像可以,表现和alpine 一样,基础镜像是 debian:bullseye-slim

.net6 的镜像是   amd64/debian:bullseye-slim 。这个可以。

.net3.1 的基础镜像是 debian 10(buster), .net6 的镜像基础镜像是 debian 11(bullseye).

这是版本代号

 

4. sonar cli 镜像, 访问自签名的服务器,执行scan, 也hi遇到类似的问题:

先拉取镜像,然后,加一层,dockerfile:

FROM my-nexus:443/sonarsource/sonar-scanner-cli:5
COPY jenkins_nexus-cn.crt /
RUN cat /jenkins_nexus-cn.crt >>/etc/ssl/cert.pem

docker build . -t  my-nexus:443/sonarsource/sonar-scanner-cli:5cert

sudo docker run -it -e SONAR_HOST_URL=https://mysonarqube/ -e SONAR_SCANNER_OPTS=-Dsonar.projectKey=ppp -v src:/usr/src my-nexus:443/sonarsource/sonar-scanner-cli:5cert 

5. dotnet 如果增加证书链

 cat aa.pem >> /etc/ssl/certs/ca-certificates.crt 

在线解码证书 (trustauth.cn)