一般我们搭建的docker镜像都是使用alpine linux系统,默认是没有ca-certificates根证书,导致无法识别外部https携带的数字证书。访问时会抛出509:未知权限错误签名的证书,导致docker容器的接口服务返回错误。
为了解决证书验证的问题,我们需要在构建docker映像时安装ca-certificates根证书。将以下内容添加到Dockerfile:
运行apk --no-缓存添加ca-证书。& amp-CA-证书对于已经建立的镜像,如果我们想手动安装它,我们可以使用下面的方法。
# enter container docker exec -it ' container ID或container name' bash#安装根证书apk --no-cache addca -certificates & amp;Update-ca-certificates#如果出现如下警告,请忽略该警告:ca-certificates.crt不包含一个证书或CRL:跳过# restart container docker restart ' container ID或container name '。补充:我们来看docker访问外部https的数字证书验证。
我们在构建docker镜像时,一般使用alpine linux系统。默认情况下,我们没有ca-证书根证书,这使得无法识别外部https携带的数字证书。
然后访问时会抛出错误X509:certificate signed by unknown authority,导致docker容器的接口服务返回500。
为了解决证书验证的问题,我们需要在构建docker镜像时安装ca-certificates根证书,这样我们就可以从外部https中识别出数字证书。
编辑Dockerfile时,只需添加以下命令:
运行apk --no-缓存添加ca-证书。& amp-CA-证书如果你不想重建镜像,你可以直接进入容器:
$ docker exec -it' container ID或container name' bash,然后执行安装根证书命令:
apk --no-缓存添加ca-证书& amp& ampUpdate-ca-certificates有以下警告,可以忽略:
警告:ca-certificates.crt不包含一个证书或CRL:跳过
然后重新启动容器:
$ docker restart '容器ID或容器名称'在这里。本文介绍了docker对外部https数字证书的访问。关于docker访问https的更多信息,请搜索主机频道zhujipindao之前的文章。或者继续浏览下面的相关文章。希望大家支持主机频道zhujipindao。以后多来com!
评论前必须登录!
注册