清远手机网站建设,网页模版是已经做好的,WordPress的简约博客主题,网站 外包方案Portainer.io安装并配置Docker远程访问及CA证书 文章目录 Portainer.io安装并配置Docker远程访问及CA证书一.安装 Portainer.io2.启动容器 二.docker API远程访问并配置CA安全认证1.配置安全(密钥)访问2.补全CA证书信息3.生成server-key.pem4.创建服务端签名请求证书文件5.创建…Portainer.io安装并配置Docker远程访问及CA证书 文章目录 Portainer.io安装并配置Docker远程访问及CA证书一.安装 Portainer.io2.启动容器 二.docker API远程访问并配置CA安全认证1.配置安全(密钥)访问2.补全CA证书信息3.生成server-key.pem4.创建服务端签名请求证书文件5.创建服务端扩展配置文件 extfile.cnf6.创建签名生效的服务端证书文件7.创建客户端私钥8.创建客户端签名请求证书文件7.创建客户端扩展配置文件 extfile-client.cnf8.创建签名生效的客户端证书文件9.删除临时文件10.设置文件权限11.配置docker服务端 三.Portainer配置使用客户端证书 一.安装 Portainer.io
version: 3.3
services:portainer:image: portainer/portainer-ce:latestcontainer_name: portainerports:- 8000:8000- 9443:9443- 9000:9000restart: alwaysvolumes:- /var/run/docker.sock:/var/run/docker.sock- ./portainer_data:/data2.启动容器
docker-compose up -d 查看是否启动成功
docker ps -a | grep portainer查看日志
docker logs -f portainer在浏览器输入我们部署服务的ipport 访问服务第一次访问需要设置管理员密码。
访问地址http://your ip:9000
登陆之后就是这样 二.docker API远程访问并配置CA安全认证
1.配置安全(密钥)访问 创建CA私钥和CA公钥 创建一个ca文件夹用来存放私钥跟公钥 mkdir -p /usr/local/ca
cd /usr/local/ca在Docker本机生成CA私钥和公钥
openssl genrsa -aes256 -out ca-key.pem 4096执行上述指令会输入密码。此密码需记住后面的步骤也需要。 可以看到已经生成ca-key.pem证书文件 2.补全CA证书信息
openssl req -new -x509 -days 365 -key ca-key.pem -sha256 -out ca.pem不切换目录继续执行上述指令会要求录入信息。
#输入上一步设置的密码
Enter pass phrase for ca-key.pemYou are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ., the field will be left blank.
# 国家CN
Country Name (2 letter code) [XX]: CN
# 省份: 可以不填直接回车
State or Province Name (full name) []:
# 地市可以不填直接回车
Locality Name (eg, city) [Default City]:
# 公司: 可以不填直接回车
Organization Name (eg, company) [Default Company Ltd]:
# 组织: 可以不填直接回车
Organizational Unit Name (eg, section) []:
# 服务器地址或域名按要求填写
Common Name (eg, your name or your servers hostname) []: 主机IP
# 邮箱联系方式可以不填直接回车
Email Address []:到这一步CA证书就创建完成了还需要去创建服务器密钥和证书签名请求(CSR)确保“通用名称”与Docker时使用的主机名相匹配。
3.生成server-key.pem
openssl genrsa -out server-key.pem 40964.创建服务端签名请求证书文件
openssl req -subj /CN$主机ip -sha256 -new -key server-key.pem -out server.csr5.创建服务端扩展配置文件 extfile.cnf
echo subjectAltName IP:$主机ip,IP:0.0.0.0 extfile.cnf
echo extendedKeyUsage serverAuth extfile.cnf6.创建签名生效的服务端证书文件
输入之前的密码
openssl x509 -req -days 3650 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem -extfile extfile.cnf7.创建客户端私钥
openssl genrsa -out key.pem 40968.创建客户端签名请求证书文件
openssl req -subj /CNclient -new -key key.pem -out client.csr7.创建客户端扩展配置文件 extfile-client.cnf
echo extendedKeyUsage clientAuth extfile-client.cnf8.创建签名生效的客户端证书文件
openssl x509 -req -days 3650 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out cert.pem -extfile extfile-client.cnf输入密码。
9.删除临时文件
rm -f client.csr server.csr extfile.cnf extfile-client.cnf10.设置文件权限
chmod 0400 ca-key.pem key.pem server-key.pem
chmod 0444 ca.pem server-cert.pem cert.pem11.配置docker服务端
修改vim /lib/systemd/system/docker.service文件中的ExecStart这一行如下
ExecStart/usr/bin/dockerd --tlsverify --tlscacert/usr/local/ca-new-1/ca.pem --tlscert/usr/local/ca-new-1/server-cert.pem --tlskey/usr/local/ca-new-1/server-key.pem -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock --containerd/run/containerd/containerd.sock其中/usr/local/ca-new-1/是刚才生产证书的目录。
修改之后重启docker服务
#重启
systemctl daemon-reload systemctl restart docker三.Portainer配置使用客户端证书
访问Portainer.io 此处的Docker API URL是二.11步骤中的-H tcp://0.0.0.0:2375这一段代码配置的端口号ip则是主机IP。
然后需要从服务器上下载生成的ca文件。
-r--r--r-- 1 root root 1952 Jun 20 11:11 ca.pem
-r--r--r-- 1 root root 1883 Jun 20 11:12 cert.pem
-r-------- 1 root root 3268 Jun 20 11:12 key.pem然后依次对应上图配置中的 配好之后点击如下按钮 显示连接成功则表示已经配好然后就可以在Portainer中看到目标主机的docker信息了 以下是一个快速生成ca证书的脚本 #!/bin/shipyour ip
password123456
dir/usr/local/ca-new-1 # 证书生成位置
validity_period3650 # 证书有效期10年单位是天# 如果目录不存在则创建目录否则删除重建
if [ ! -d $dir ]; thenecho $dir 不存在将创建目录mkdir -p $dir
elseecho $dir 存在将删除并重建rm -rf $dirmkdir -p $dir
ficd $dir || exit# 1. 创建根证书 RSA 私钥
openssl genrsa -aes256 -passout pass:$password -out ca-key.pem 4096# 2. 创建 CA 证书
openssl req -new -x509 -days $validity_period -key ca-key.pem -passin pass:$password -sha256 -out ca.pem -subj /CNL/ST./L./O./CN$ip# 3. 创建服务端私钥
openssl genrsa -out server-key.pem 4096# 4. 创建服务端签名请求证书文件
openssl req -subj /CN$ip -sha256 -new -key server-key.pem -out server.csr# 创建服务端扩展配置文件 extfile.cnf
echo subjectAltName IP:$ip,IP:0.0.0.0 extfile.cnf
echo extendedKeyUsage serverAuth extfile.cnf# 5. 创建签名生效的服务端证书文件
openssl x509 -req -days $validity_period -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem -passin pass:$password -CAcreateserial -out server-cert.pem -extfile extfile.cnf# 6. 创建客户端私钥
openssl genrsa -out key.pem 4096# 7. 创建客户端签名请求证书文件
openssl req -subj /CNclient -new -key key.pem -out client.csr# 创建客户端扩展配置文件 extfile-client.cnf
echo extendedKeyUsage clientAuth extfile-client.cnf# 8. 创建签名生效的客户端证书文件
openssl x509 -req -days $validity_period -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem -passin pass:$password -CAcreateserial -out cert.pem -extfile extfile-client.cnf# 删除临时文件
rm -f client.csr server.csr extfile.cnf extfile-client.cnf# 设置文件权限
chmod 0400 ca-key.pem key.pem server-key.pem
chmod 0444 ca.pem server-cert.pem cert.pemecho 证书生成完成