Docker - 通过IDEA和CA证书加密远程链接到服务器上的Docker
1、直接设置任意远程访问存在的问题
因为docker 默认是root 权限,允许所有人访问,直接把2375端口暴露在外网相当于直接把服务器的root 权限拱手送人,因此我们需要构建一个加密的TCP链接,以Https的方式连接到远程的docker 服务器
2、创建一个ca 的文件夹
mkdir -p /usr/local/ca
cd /usr/local/ca
3、创建一个key
openssl genrsa -aes256 -out ca-key.pem 4096
提示你需要输入密码和确认密码,请记住这个密码
4、填写一些基本的信息,国家啊,地区什么的
openssl req -new -x509 -days 365 -key ca-key.pem -sha256 -out ca.pem
你可以乱填,或者参考如下的填法
文字版
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:Hangzhou, Zhejiang Province, People's Republic of China
Locality Name (eg, city) [Default City]:XIACHENG
Organization Name (eg, company) [Default Company Ltd]:WRETCHANT.COM
Organizational Unit Name (eg, section) []:ONLINE ZUOZUO
Common Name (eg, your name or your server's hostname) []:wretchant
5、生成server-key.pem
openssl genrsa -out server-key.pem 4096
6、绑定IP或者域名
$HOST 这个值,填写你的服务器外网IP 或者服务器外网域名
openssl req -subj "/CN=$HOST" -sha256 -new -key server-key.pem -out server.csr
7、配置白名单
$HOST 就是你第六步设置的那个 $HOST
echo subjectAltName = DNS:$HOST,IP:0.0.0.0 >> extfile.cnf
这里如果你设置的IP ,则需要吧DNS 改为IP,如图
你如果希望只有指定的IP能够访问的话,请把0.0.0.0 改为指定IP,不过一般情况下,个人的网络是没有固定的公网IP的,所以建议设置成0.0.0.0,但是需要证书才能访问
8、生成ca-key
echo extendedKeyUsage = serverAuth >> extfile.cnf
// 执行这一句需要输入之前设置的密码
openssl x509 -req -days 365 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem \-CAcreateserial -out server-cert.pem -extfile extfile.cnf
openssl genrsa -out key.pem 4096
openssl req -subj '/CN=client' -new -key key.pem -out client.csr
echo extendedKeyUsage = clientAuth >> extfile.cnf
9、生成cert.pem
需要输入之前设置的密码
openssl x509 -req -days 365 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem \-CAcreateserial -out cert.pem -extfile extfile.cnf
10、修改权限
chmod -v 0400 ca-key.pem key.pem server-key.pem
chmod -v 0444 ca.pem server-cert.pem cert.pem
11、把证书复制过去
cp server-*.pem /etc/docker/
cp ca.pem /etc/docker/
12、修改docker 的配置
vi /lib/systemd/system/docker.service
把ExecStart 的值设置为如下
/usr/bin/dockerd --tlsverify --tlscacert=/etc/docker/ca.pem --tlscert=/etc/docker/server-cert.pem --tlskey=/etc/docker/server-key.pem -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock
13、重启docker
systemctl daemon-reload
systemctl restart docker
service docker restart
14、下载连接所需的证书文件
把这几个文件下载到你的电脑上,新建一个文件夹供着
15、通过IDEA 的docker 插件进行连接
1、默认是tcp 的,你要改成https,端口你之前设置的什么端口就是什么端口,第十二步
2、然后选择你放证书的那个文件夹
16、连接到远程docker
成功连接,连接不上的,查找如下原因
1、tcp连接没换
2、端口不对
3、服务器防火墙没放端口
4、云服务器防火墙没放端口
5、证书没弄好
一定要仔细,一步错,就连不上
点击查看更多内容
1人点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦