Docker配置https证书案例

简介: 本文介绍了如何为Docker的Harbor服务配置HTTPS证书,包括安装Docker和Harbor、修改配置文件以使用证书、生成自签名证书、配置证书以及验证配置的步骤。

一.安装harbor

1.安装docker

参考链接:
    https://docs.docker.com/engine/install/

2.安装docker compose

参考链接:
    https://docs.docker.com/compose/install/

3.解压harbor软件包

    (1)创建harbor软件目录
# mkdir -p /yinzhengjie/softwares


    (2)解压软件包
# tar xf harbor-offline-installer-v1.10.10.tgz -C /yinzhengjie/softwares

二.配置harbor服务器配置https证书

1.修改harbor配置文件

vim harbor.yml 
...
hostname: www.yinzhengjie.com
...
https:
  ...
  certificate: /oldboyedu/softwares/harbor/shengchan/www.yinzhengjie.com_nginx/www.yinzhengjie.com.crt
  private_key: /oldboyedu/softwares/harbor/shengchan/www.yinzhengjie.com_nginx/www.yinzhengjie.com.key

2.使得配置生效

# ./prepare 

# docker-compose down -t 1

# docker-compose up -d

3.测试服务

# echo 10.0.0.101 www.yinzhengjie.com >> /etc/hosts

# docker login www.yinzhengjie.com

三.配置harbor服务器配置https自签证书

官方文档:
    https://goharbor.io/docs/1.10/install-config/configure-https/

1.生成harbor服务器证书

1.1 生成ca的证书

    (1)创建证书目录并进入到证书目录
# mkdir /yinzhengjie/softwares/harbor/certs && cd /yinzhengjie/softwares/harbor/certs/


    (2)生成ca的私钥
# openssl genrsa -out ca.key 4096


    (3)生成ca的自签名证书
# openssl req -x509 -new -nodes -sha512 -days 3650 \
 -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=yinzhengjie.com" \
 -key ca.key \
 -out ca.crt

1.2 生成harbor主机证书

    (1)生成harbor主机的私钥
# openssl genrsa -out harbor.yinzhengjie.com.key 4096


    (2)生成harbor主机的证书申请
# openssl req -sha512 -new \
    -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=harbor.yinzhengjie.com" \
    -key harbor.yinzhengjie.com.key \
    -out harbor.yinzhengjie.com.csr


    (3)生成x509 v3扩展文件
# cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names

[alt_names]
DNS.1=yinzhengjie.com
DNS.2=yinzhengjie
DNS.3=harbor.yinzhengjie.com
EOF


    (4)使用"v3.ext"给harbor主机签发证书
# openssl x509 -req -sha512 -days 3650 \
    -extfile v3.ext \
    -CA ca.crt -CAkey ca.key -CAcreateserial \
    -in harbor.yinzhengjie.com.csr \
    -out harbor.yinzhengjie.com.crt


    (5)将crt文件转换为cert客户端证书文件
# openssl x509 -inform PEM -in harbor.yinzhengjie.com.crt -out harbor.yinzhengjie.com.cert


温馨提示:
    docker程序认为"*.crt"文件是CA证书文件,"*.cert"客户端证书文件,于是上面第五步需要转换一下,其实使用cp一下也是可以的,内容并没有变化。

2. 配置harbor服务器使用证书

    (1)修改harbor的配置文件
# vim /yinzhengjie/softwares/harbor/harbor.yml     
...
hostname: harbor.yinzhengjie.com
...
https:
  ...
  certificate: /yinzhengjie/softwares/harbor/certs/harbor.yinzhengjie.com.crt
  private_key: /yinzhengjie/softwares/harbor/certs/harbor.yinzhengjie.com.key
...
harbor_admin_password: 1


    (2)安装harbor服务
# cd /yinzhengjie/softwares/harbor  && ./install.sh



温馨提示:
    如果已经安装harbor服务的话,就不需要重复执行"./install.sh"脚本,仅需执行"./prepare"并搭配"docker-compose down"和"docker-compose up -d"即可。

3.验证证书

3.1 Windows验证

如上图所示,Windows成功访问啦。只不过证书是不安全的而已。

3.2 Linux验证

    (1)配置地址解析
# echo 10.0.0.13 harbor.yinzhengjie.com >> /etc/hosts

    (2)在docker客户端节点创建自签证书域名存放路径
# mkdir -pv /etc/docker/certs.d/harbor.yinzhengjie.com

    (3)服务端将证书文件拷贝到客户端docker节点,若不执行该操作,则会报错如上图所示。
# scp /yinzhengjie/softwares/harbor/certs/{harbor.yinzhengjie.com.cert,harbor.yinzhengjie.com.key,ca.crt}  10.0.0.14:/etc/docker/certs.d/harbor.yinzhengjie.com

    (3)登录验证,如下图所示。
# docker login -u admin -p 1 harbor.yinzhengjie.com

目录
相关文章
|
2天前
|
安全 应用服务中间件 网络安全
49.3k star,本地 SSL 证书生成神器,轻松解决 HTTPS 配置痛点
mkcert是一款由Filippo Valsorda开发的免费开源工具,专为生成受信任的本地SSL/TLS证书而设计。它通过简单的命令自动生成并安装本地信任的证书,使本地环境中的HTTPS配置变得轻松无比。mkcert支持多个操作系统,已获得49.2K的GitHub Star,成为开发者首选的本地SSL工具。
|
25天前
|
Java jenkins 持续交付
Centos7下docker的jenkins下载并配置jdk与maven
通过上述步骤,您将成功在CentOS 7上的Docker容器中部署了Jenkins,并配置好了JDK与Maven,为持续集成和自动化构建打下了坚实基础。
77 1
|
30天前
|
网络协议 Docker 容器
docker中的DNS配置
【10月更文挑战第5天】
231 1
|
1月前
|
安全 应用服务中间件 Shell
nginx配置https的ssl证书和域名
nginx配置https的ssl证书和域名
|
1月前
|
Docker 容器
docker nginx-proxy 添加自定义https网站
docker nginx-proxy 添加自定义https网站
32 4
|
1月前
|
存储 Ubuntu JavaScript
如何使用Docker优化你的开发环境配置
如何使用Docker优化你的开发环境配置
|
1月前
|
Docker 容器
利用Docker Compose优化开发环境的配置
在现代软件开发中,环境一致性至关重要。开发人员常需在不同机器间复制环境配置,而Docker Compose提供了一种简便有效的方法来定义和运行多容器Docker应用程序,确保开发、测试和生产环境一致,简化团队协作,提高开发效率。通过YAML文件配置服务、网络和卷,使用简单命令即可启动和停止服务。本文将介绍Docker Compose的核心优势、基本使用方法及高级功能,帮助你更好地管理和优化开发环境。
|
2月前
|
应用服务中间件 nginx Docker
docker应用部署---nginx部署的配置
这篇文章介绍了如何使用Docker部署Nginx服务器,包括搜索和拉取Nginx镜像、创建容器并设置端口映射和目录映射,以及如何创建一个测试页面并使用外部机器访问Nginx服务器。
|
安全 算法 小程序
互联网并发与安全系列教程(17) - 生产环境配置HTTPS证书
互联网并发与安全系列教程(17) - 生产环境配置HTTPS证书
140 0
|
3月前
|
安全 Apache Windows
WAMP——配置HTTPS证书
WAMP——配置HTTPS证书
60 1
WAMP——配置HTTPS证书
下一篇
无影云桌面